Prepare an Ansible testing environment
We will have 2 Centos 8 hosts: controller and host1
On controller add to the /etc/hosts file:
192.168.122.y controller.example.com controller
192.168.122.x node1.example.com node1
Copy the hosts file to node1:
scp /etc/hosts node1:/etc/
On both nodes install EPEL and python3:
yum install -y python3 epel-release
On controller install Ansible:
yum install ansible
On both nodes add Ansible user to wheel group to allow elevating privileges:
usermod -aG wheel dmitritelinov
On both nodes create a sudoers snap-in file to allow sudo without password. /etc/sudoers.d/dmitritelinov:
dmitritelinov ALL=(ALL) NOPASSWD: ALL
On controller node as user dmitritelinov:
ssh-keygen
ssh-copy-id node1
ssh-copy-id controller
mkdir testproject
cd testproject
Create a inventory file inside testproject directory on controller host:
[all]
controller
node1
(Optional) Create an ansible.cfg file inside testproject directory on controller host:
[privilege_escalation]
become=True
become_method=sudo
become_user=root
become_ask_pass=False
Test Ansible configuration from controller host:
ansible all -i inventory -m command -a id
To add another host (node2 for example):
- modify /etc/hosts file and copy it on all servers
- install python3 and epel-release on the node2
- add Ansible user to the wheel group
- add sudo snap-in file for Ansible user
- copy public key of Ansible user to node2 with ssh-copy-id