Popular Posts

Monday, April 29, 2019

Install Ansible on control node

To install Ansible on the control node, run sudo yum install ansible.

Configure the 'ansible' user on the control node for ssh shared key access to managed nodes. 

Do not use a passphrase for the key pair.

  1. To create a keypair for the ansible user on the control host, run the following:
    • sudo su - ansible
    • ssh-keygen (accept all defaults: press enter for each prompt)
  2. Copy the public key to both node1 and node2.
  3. As the ansible user on the control host:
    • ssh-copy-id node1 (accept the host key if prompted, authenticate as ansible user)
    • ssh-copy-id node2 (accept the host key if prompted, authenticate as ansible user)


Create a simple Ansible inventory on the control node in /home/ansible/inventory containing node1 and node2.

  • On the control host: 
    1. sudo su - ansible (if not already ansible user)
    2. touch /home/ansible/inventory
    3. echo "node1" >> /home/ansible/inventory
    4. echo "node2" >> /home/ansible/inventory


Configure sudo access for Ansible on node1 and node2 such that Ansible may use sudo for any command with no password prompt.

  • Log in to node1 and edit the sudoers file to contain appropriate access for the ansible user:
    • sudo visudo
    • Add the following line to the file and save:
      ansible    ALL=(ALL)       NOPASSWD: ALL
  • Repeate these steps for node2.


Verify each managed node is able to be accessed by Ansible from the control node using the ping module. Redirect the output of a successful command to /home/ansible/output.

  • To verify each node, run the following as the ansible user from the control host:
    • ansible -i /home/ansible/inventory node1 -m ping
    • ansible -i /home/ansible/inventory node2 -m ping
  • To redirect output of a successful command to /home/ansible/output:
    • ansible -i /home/ansible/inventory node1 -m ping > /home/ansible/output