DYNAMIC INVENTORY IN ANSIBLE (PART-2)

Updated: Aug 9, 2020



This is the second part of the series of articles on dynamic inventory in ansible In the last part we had just launched 3 ec2 instances in AWS and now we will move forward.





Ansible Installation


  • Now let us login to ansible1 with the default user i.e. ec2-user

  • Copy the contents of kops.pem ( the pem file that we used while creating ec2-instances) to /home/ec2-user/.ssh/id_rsa

  • Give appropriate permissions to id_rsa


chmod 400 id_rsa

  • Now do the same on other two ec2 instances as well ( ansible2 and ansible3). This is done to enable pass-wordless authentication between ansible1 and other 2 servers.


  • Install ansible rpm on ansible1 ec2 instance.


sudo amazon-linux-extras install ansible2 -y

  • Configure aws cli credentials .


[ec2-user@ip-172-31-15-28 ~]$ aws configure
AWS Access Key ID [None]: XXXXXXXXXXX
AWS Secret Access Key [None]: XXXXXXXXXXXXXX
Default region name [None]: ap-south-1
Default output format [None]: json
[ec2-user@ip-172-31-15-28 ~]$

  • Download ec2.py and ec2.ini files on the path /etc/ansible/ and make them executable.

ec2.py

ec2.ini

[ec2-user@ip-172-31-15-28 ansible]$ chmod +x ec2.py
[ec2-user@ip-172-31-15-28 ansible]$ pwd
/etc/ansible
[ec2-user@ip-172-31-15-28 ansible]$ ls -lrt
total 108
drwxr-xr-x 2 root root 6 May 21 17:00 roles
-rw-r--r-- 1 root root 1016 May 21 17:00 hosts
-rw-r--r-- 1 root root 19985 May 21 17:00 ansible.cfg
-rwxrwxr-x 1 ec2-user ec2-user 73130 Jul 23 04:34 ec2.py
-rw-rw-r-- 1 ec2-user ec2-user 9529 Jul 23 04:36 ec2.ini

  • Install pip and boto3 ( boto 3 is a python module required for dynamic inventory script to work)


sudo yum install python-pip -y
sudo pip install boto

  • Now test the script



  • Let us test the settings by running a simple ping module


 ansible -i ec2.py ap-south-1 -m ping



Alright people we have successfully configured dynamic inventory in our lab setup.







159 views0 comments

Recent Posts

See All