**************************************************************************
* Description: Ansible installation on Linux, and create AWS EC2 instance
* Date: 04:06 PM EST, 04/18/2019
**************************************************************************
<1> Install Ansible Package:
|
|__ $ yum install -y ansible
Loaded plugins: amazon-id, rhui-lb, search-disabled-repos
rhui-REGION-client-config-server-7 | 2.9 kB 00:00:00
rhui-REGION-rhel-server-extras | 3.4 kB 00:00:00
rhui-REGION-rhel-server-optional | 3.2 kB 00:00:00
rhui-REGION-rhel-server-releases | 3.4 kB 00:00:00
rhui-REGION-rhel-server-rh-common | 3.8 kB 00:00:00
(1/6): rhui-REGION-rhel-server-extras/7Server/x86_64/updateinfo | 169 kB 00:00:00
(2/6): rhui-REGION-rhel-server-extras/7Server/x86_64/primary_db | 519 kB 00:00:00
(3/6): rhui-REGION-rhel-server-optional/7Server/x86_64/updateinfo | 2.1 MB 00:00:00
(4/6): rhui-REGION-rhel-server-optional/7Server/x86_64/primary_db | 7.5 MB 00:00:00
(5/6): rhui-REGION-rhel-server-releases/7Server/x86_64/updateinfo | 3.0 MB 00:00:00
(6/6): rhui-REGION-rhel-server-releases/7Server/x86_64/primary_db | 54 MB 00:00:01
Resolving Dependencies
--> Running transaction check
---> Package ansible.noarch 0:2.4.2.0-2.el7 will be installed
--> Processing Dependency: python-cryptography for package: ansible-2.4.2.0-2.el7.noarch
--> Processing Dependency: python-httplib2 for package: ansible-2.4.2.0-2.el7.noarch
--> Processing Dependency: python-paramiko for package: ansible-2.4.2.0-2.el7.noarch
--> Processing Dependency: python-passlib for package: ansible-2.4.2.0-2.el7.noarch
--> Processing Dependency: python2-jmespath for package: ansible-2.4.2.0-2.el7.noarch
--> Processing Dependency: sshpass for package: ansible-2.4.2.0-2.el7.noarch
--> Running transaction check
---> Package python-httplib2.noarch 0:0.9.2-1.el7 will be installed
---> Package python-paramiko.noarch 0:2.1.1-9.el7 will be installed
--> Processing Dependency: python2-pyasn1 for package: python-paramiko-2.1.1-9.el7.noarch
---> Package python-passlib.noarch 0:1.6.5-2.el7 will be installed
---> Package python2-cryptography.x86_64 0:1.7.2-2.el7 will be installed
--> Processing Dependency: python-cffi >= 1.4.1 for package: python2-cryptography-1.7.2-2.el7.x86_64
--> Processing Dependency: python-idna >= 2.0 for package: python2-cryptography-1.7.2-2.el7.x86_64
--> Processing Dependency: python-enum34 for package: python2-cryptography-1.7.2-2.el7.x86_64
---> Package python2-jmespath.noarch 0:0.9.0-3.el7 will be installed
---> Package sshpass.x86_64 0:1.06-2.el7 will be installed
--> Running transaction check
---> Package python-cffi.x86_64 0:1.6.0-5.el7 will be installed
--> Processing Dependency: python-pycparser for package: python-cffi-1.6.0-5.el7.x86_64
---> Package python-enum34.noarch 0:1.0.4-1.el7 will be installed
---> Package python-idna.noarch 0:2.4-1.el7 will be installed
---> Package python2-pyasn1.noarch 0:0.1.9-7.el7 will be installed
--> Running transaction check
---> Package python-pycparser.noarch 0:2.14-1.el7 will be installed
--> Processing Dependency: python-ply for package: python-pycparser-2.14-1.el7.noarch
--> Running transaction check
---> Package python-ply.noarch 0:3.4-11.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
==============================================================================================================================
Package Arch Version Repository Size
==============================================================================================================================
Installing:
ansible noarch 2.4.2.0-2.el7 rhui-REGION-rhel-server-extras 7.6 M
Installing for dependencies:
python-cffi x86_64 1.6.0-5.el7 rhui-REGION-rhel-server-releases 218 k
python-enum34 noarch 1.0.4-1.el7 rhui-REGION-rhel-server-releases 52 k
python-httplib2 noarch 0.9.2-1.el7 rhui-REGION-rhel-server-extras 115 k
python-idna noarch 2.4-1.el7 rhui-REGION-rhel-server-releases 94 k
python-paramiko noarch 2.1.1-9.el7 rhui-REGION-rhel-server-releases 269 k
python-passlib noarch 1.6.5-2.el7 rhui-REGION-rhel-server-extras 488 k
python-ply noarch 3.4-11.el7 rhui-REGION-rhel-server-releases 123 k
python-pycparser noarch 2.14-1.el7 rhui-REGION-rhel-server-releases 105 k
python2-cryptography x86_64 1.7.2-2.el7 rhui-REGION-rhel-server-releases 503 k
python2-jmespath noarch 0.9.0-3.el7 rhui-REGION-rhel-server-extras 39 k
python2-pyasn1 noarch 0.1.9-7.el7 rhui-REGION-rhel-server-releases 100 k
sshpass x86_64 1.06-2.el7 rhui-REGION-rhel-server-extras 21 k
Transaction Summary
==============================================================================================================================
Install 1 Package (+12 Dependent packages)
Total download size: 9.7 M
Installed size: 49 M
Downloading packages:
(1/13): python-cffi-1.6.0-5.el7.x86_64.rpm | 218 kB 00:00:00
(2/13): python-httplib2-0.9.2-1.el7.noarch.rpm | 115 kB 00:00:00
(3/13): python-idna-2.4-1.el7.noarch.rpm | 94 kB 00:00:00
(4/13): python-enum34-1.0.4-1.el7.noarch.rpm | 52 kB 00:00:00
(5/13): python-paramiko-2.1.1-9.el7.noarch.rpm | 269 kB 00:00:00
(6/13): python-passlib-1.6.5-2.el7.noarch.rpm | 488 kB 00:00:00
(7/13): python-ply-3.4-11.el7.noarch.rpm | 123 kB 00:00:00
(8/13): python-pycparser-2.14-1.el7.noarch.rpm | 105 kB 00:00:00
(9/13): python2-cryptography-1.7.2-2.el7.x86_64.rpm | 503 kB 00:00:00
(10/13): python2-jmespath-0.9.0-3.el7.noarch.rpm | 39 kB 00:00:00
(11/13): python2-pyasn1-0.1.9-7.el7.noarch.rpm | 100 kB 00:00:00
(12/13): ansible-2.4.2.0-2.el7.noarch.rpm | 7.6 MB 00:00:00
(13/13): sshpass-1.06-2.el7.x86_64.rpm | 21 kB 00:00:00
-----------------------------------------------------------------------------------------------------------------------------------
Total 14 MB/s | 9.7 MB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Warning: RPMDB altered outside of yum.
Installing : python2-pyasn1-0.1.9-7.el7.noarch 1/13
Installing : python-enum34-1.0.4-1.el7.noarch 2/13
Installing : python-httplib2-0.9.2-1.el7.noarch 3/13
Installing : sshpass-1.06-2.el7.x86_64 4/13
Installing : python2-jmespath-0.9.0-3.el7.noarch 5/13
Installing : python-passlib-1.6.5-2.el7.noarch 6/13
Installing : python-ply-3.4-11.el7.noarch 7/13
Installing : python-pycparser-2.14-1.el7.noarch 8/13
Installing : python-cffi-1.6.0-5.el7.x86_64 9/13
Installing : python-idna-2.4-1.el7.noarch 10/13
Installing : python2-cryptography-1.7.2-2.el7.x86_64 11/13
Installing : python-paramiko-2.1.1-9.el7.noarch 12/13
Installing : ansible-2.4.2.0-2.el7.noarch 13/13
Verifying : python-idna-2.4-1.el7.noarch 1/13
Verifying : python-pycparser-2.14-1.el7.noarch 2/13
Verifying : python-ply-3.4-11.el7.noarch 3/13
Verifying : python-passlib-1.6.5-2.el7.noarch 4/13
Verifying : python-paramiko-2.1.1-9.el7.noarch 5/13
Verifying : python2-jmespath-0.9.0-3.el7.noarch 6/13
Verifying : ansible-2.4.2.0-2.el7.noarch 7/13
Verifying : python-cffi-1.6.0-5.el7.x86_64 8/13
Verifying : sshpass-1.06-2.el7.x86_64 9/13
Verifying : python-httplib2-0.9.2-1.el7.noarch 10/13
Verifying : python2-pyasn1-0.1.9-7.el7.noarch 11/13
Verifying : python-enum34-1.0.4-1.el7.noarch 12/13
Verifying : python2-cryptography-1.7.2-2.el7.x86_64 13/13
Installed:
ansible.noarch 0:2.4.2.0-2.el7
Dependency Installed:
python-cffi.x86_64 0:1.6.0-5.el7 python-enum34.noarch 0:1.0.4-1.el7
python-paramiko.noarch 0:2.1.1-9.el7 python-passlib.noarch 0:1.6.5-2.el7
python2-cryptography.x86_64 0:1.7.2-2.el7 python2-jmespath.noarch 0:0.9.0-3.el7
python-idna.noarch 0:2.4-1.el7 python-httplib2.noarch 0:0.9.2-1.el7
python-pycparser.noarch 0:2.14-1.el7 python-ply.noarch 0:3.4-11.el7
sshpass.x86_64 0:1.06-2.el7 python2-pyasn1.noarch 0:0.1.9-7.el7
Complete!
<2> Verify Ansible Installation by Checking Version:
|
|__ $ ansible --version
ansible 2.4.2.0
config file = /etc/ansible/ansible.cfg
configured module search path = [u'/home/ec2-user/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2.7/site-packages/ansible
executable location = /usr/bin/ansible
python version = 2.7.5 (default, Sep 12 2018, 05:31:16) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)]
<3> Install Extra Package for Enterprise Linux, which would be needed by BOTO:
|
|__ $ yum install http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
Loaded plugins: amazon-id, rhui-lb, search-disabled-repos
epel-release-latest-7.noarch.rpm | 15 kB 00:00:00
Examining /var/tmp/yum-root-fHWhSU/epel-release-latest-7.noarch.rpm: epel-release-7-11.noarch
Marking /var/tmp/yum-root-fHWhSU/epel-release-latest-7.noarch.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package epel-release.noarch 0:7-11 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
======================================================================================================
Package Arch Version Repository Size
======================================================================================================
Installing:
epel-release noarch 7-11 /epel-release-latest-7.noarch 24 k
Transaction Summary
======================================================================================================
Install 1 Package
Total size: 24 k
Installed size: 24 k
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : epel-release-7-11.noarch 1/1
Verifying : epel-release-7-11.noarch 1/1
Installed:
epel-release.noarch 0:7-11
Complete!
<4> Ensure EPEL got enbled:
|
|__ $ yum repolist
Loaded plugins: amazon-id, rhui-lb, search-disabled-repos
epel/x86_64/metalink | 16 kB 00:00:00
epel | 4.7 kB 00:00:00
(1/3): epel/x86_64/group_gz | 88 kB 00:00:00
(2/3): epel/x86_64/updateinfo | 986 kB 00:00:00
(3/3): epel/x86_64/primary_db | 6.7 MB 00:00:00
repo id repo name status
epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 13,051
rhui-REGION-client-config-server-7/x86_64 Red Hat Update Infrastructure 2.0 Client Configuration Server 7 2
rhui-REGION-rhel-server-extras/7Server/x86_64 Red Hat Enterprise Linux Server 7 Extra(RPMs) 1,076
rhui-REGION-rhel-server-optional/7Server/x86_64 Red Hat Enterprise Linux Server 7 Optional (RPMs) 17,543
rhui-REGION-rhel-server-releases/7Server/x86_64 Red Hat Enterprise Linux Server 7 (RPMs) 23,934
rhui-REGION-rhel-server-rh-common/7Server/x86_64 Red Hat Enterprise Linux Server 7 RH Common (RPMs) 235
repolist: 55,841
<5> Install python-pip, and it would be used to mount BOTO as command "pip":
|
|__ $ yum install python-pip
Loaded plugins: amazon-id, rhui-lb, search-disabled-repos
Resolving Dependencies
--> Running transaction check
---> Package python2-pip.noarch 0:8.1.2-8.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
=========================================================================================================
Package Arch Version Repository Size
=========================================================================================================
Installing:
python2-pip noarch 8.1.2-8.el7 epel 1.7 M
Transaction Summary
=========================================================================================================
Install 1 Package
Total download size: 1.7 M
Installed size: 7.2 M
Is this ok [y/d/N]: y
\Downloading packages:
warning: python2-pip-8.1.2-8.el7.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 352c64e5: NOKEYs | 349 kB --:--:-- ETA
Public key for python2-pip-8.1.2-8.el7.noarch.rpm is not installed
python2-pip-8.1.2-8.el7.noarch.rpm | 1.7 MB 00:00:00
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
Importing GPG key 0x352C64E5:
Userid : "Fedora EPEL (7) "
Fingerprint: 91e9 7d7c 4a5e 96f1 7f3e 888f 6a2f aea2 352c 64e5
Package : epel-release-7-11.noarch (installed)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
Is this ok [y/N]: y
Is this ok [y/N]: y
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : python2-pip-8.1.2-8.el7.noarch 1/1
Verifying : python2-pip-8.1.2-8.el7.noarch 1/1
Installed:
python2-pip.noarch 0:8.1.2-8.el7
Complete!
<6> Install BOTO - Boto is a Python package that provides interfaces to Amazon Web Services:
|
|__ $ pip install boto
Collecting boto
Downloading https://files.pythonhosted.org/packages/23/10/boto-2.49.0-py2.py3-none-any.whl (1.4MB)
100% |███████████████████████████████| 1.4MB 857kB/s
Installing collected packages: boto
Successfully installed boto-2.49.0
You are using pip version 8.1.2, however version 19.0.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
<7> Edit BOTO key file, and change permission:
|
|__ $ vi /home/ec2-user/.boto
|
| [Credentials]
| aws_access_key_id = AKIAUAXOL8REPKDQANHZ
| aws_secret_access_key = JbPDK3jp6kFMi1TX8rlehIhdlasdfHx7UFK1djtvH
|
|
|__ $ chmod 400 /home/ec2-user/boto
<8> Edit Ansible Playbook
|
|__ $ vi task_playboot.yml
- name: ec2_launcher
hosts: localhost
connection: local
tasks:
- name: launching_ec2
ec2:
instance_type: t2.micro
key_name: FMW12C
image: ami-011b3ccf1bd6db744
region: us-east-1
group: default
count: 2
vpc_subnet_id: subnet-12605c48
wait: yes
assign_public_ip: no
<9> Create EC2 Instances according to Playbook:
|
|__ $ ansible-playbook /home/ec2-user/task_playbook.yml
[WARNING]: Could not match supplied host pattern, ignoring: all
[WARNING]: provided hosts list is empty, only localhost is available
PLAY [ec2_launcher] ************************************************************
TASK [Gathering Facts] *********************************************************
ok: [localhost]
TASK [launching_ec2] ***********************************************************
changed: [localhost]
PLAY RECAP *********************************************************************
localhost : ok=2 changed=1 unreachable=0 failed=0
<10> Reference:
|
|__ o. Youtube tutorial part 1 - https://www.youtube.com/watch?v=gEX1HbM4KSM
|
|__ o. Youtube tutorial part 2 - https://www.youtube.com/watch?v=zXp5PJ-xCGQ
|
|__ o. Enable EPEL for Linux - https://www.tecmint.com/how-to-enable-epel-repository-for-rhel-centos-6-5/
|
|__ o. Install Python Pip - https://www.tecmint.com/install-pip-in-linux/
Your Comments