Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pratikshinde55/ansible-setup-onaws
Ansible-Master & Target node Configuration on AWS Cloud using ssh-key Authentication.
https://github.com/pratikshinde55/ansible-setup-onaws
ansible ansible-setup aws-ec2
Last synced: about 1 month ago
JSON representation
Ansible-Master & Target node Configuration on AWS Cloud using ssh-key Authentication.
- Host: GitHub
- URL: https://github.com/pratikshinde55/ansible-setup-onaws
- Owner: Pratikshinde55
- Created: 2024-03-01T12:10:30.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2025-01-09T08:57:16.000Z (about 1 month ago)
- Last Synced: 2025-01-09T09:57:05.149Z (about 1 month ago)
- Topics: ansible, ansible-setup, aws-ec2
- Homepage:
- Size: 101 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Ansible-Master and target node configuration on AWS cloud using ssh-key Authentication
- About set-up:
I have installed ansible on the top of AWS Cloud EC2 Insatnce, Setup is like I take Three EC2 amazon linux Instances, One of these make Master-node(Ansible-master) and other remaining Two make
Target-node.
(Ansible-node-1,Ansible-node-2).## On three(master & target) Instances Following set-up do as it is:

### Step-1: [Create New/General User I create "psadmin" general user for Master-node & set password]
Command for create new user:useradd psadmin
Command for Set password to user:
passwd psadmin
### Step-2: [Give Sudo power to general user "psadmin"]
The general user don't have so much power like root, So I give the root level power/permission to the general user. The file location is **/etc/sudoers**.
vi /etc/sudoers
### Step-3: [Allow Authentication in sshd config file]
To access the EC2 by SSH then we need to change some settings in SSH Config file, The Location of SSH Config file is **/etc/ssh/sshd_config**.
vi /etc/ssh/sshd_config
### Step-4: [Restart sshd service]
After change in the ssh config file then we need to restart that file to apply the new changes.systemctl restart sshd
- NOTE: for Target-node 1 & 2 i use general user is "pratik" after created user above four steps do as it is in each target nodes.
## On Ansible Master-Node:-
After do 1st four steps then create Key in general user in my case psadmin is general user of my Ansible master nodesu - psadmin
Go inside general user (psadmin) and create key for ssh Authentication:
ssh-keygen- Note: **Create ssh key at general user on which we want run ansible command.**

ssh-key created in **.ssh/** folder:
cd .ssh/
Show hidden file:ls -l
After Key created then need to copy my "psadmin" key to host nodes , use follw command to copy key to Target node:
Format of ssh key copy to the target:ssh-copy-id @
Command for Copy ssh key:
ssh-copy-id [email protected]

- After key add we also check bye using following Command:To add EC2 1st time with SSH we need to do manual, While adding they ask password.
ssh [email protected]- NOTE: Do same Key-copy method to all target nodes .
**........Here our instances is successfully connected by "ssh"........**
## On master node: [Install Ansible on master node]
### Method 1st for installing Ansible: (AMI- Amazon-linux-2)
NOTE:**If Amazon linux 2 ami use then use following command for download Ansible (/etc/ansible/ansible.cfg this config file provide).**
sudo amazon-linux-extras install ansible2
### Method 2nd for Install Ansible: (AMI- Amazon-linux)
Install ansible-core, but in this ansible do not provide config file, generally ansible-config file loaction = **/etc/ansible/ansible.cfg**sudo yum install ansible-core -y
Command for check ansible version:
ansible --version
- We can create ansible config file manually:
NOTE: Fom General user we can't create config file so we need to go root or use sudo.
exit <<-- this helps to exit from General user
On master Root user:
Go inside **/etc/ansible** folder and create config file(ansible.cfg) use follw commands:cd /etc/ansible
Create ansible.cfg file:touch ansible.cfg
After we created ansible config file it is empty, So we pull file and copy in it for this use following command:
ansible-config init
Copy to destination **/etc/ansible/ansible.cfg**:ansible-config init --disabled > /etc/ansible/ansible.cfg

### Method 3rd for installing Ansible with download extra package for yum:(AMI- Amazon-linux-2/Amazon-linux)
sudo yum update -y
sudo amazon-linux-extras install epel -ysudo yum install ansible -y
Command for check ansible version and /etc/ansible/ansible.cfg location:
ansible --version
**In this way we give pre-created ansible config file**

## Ansible Config file settings: [ansible.cfg]
In Ansible config file we do following changes:
Command for open ansible.cfg
vi /etc/ansible/ansible.cfg**1st In this file we Add privilege escalation this give become method:**

**2nd In this file we also uncomment ansible Inventory (remove semi colon):**

**3rd Making host_key_checking is False:** (This is because while connecting to target by ssh the target node password ask, So deactive Host_key_checking)

become=True: Enables privilege escalation (e.g., running tasks as root).
become_method=sudo: Specifies that the sudo command is used for privilege escalation.
become_user=root: Defines that the tasks will be executed as the root user (or any other user you specify).
become_ask_pass=False: Prevents Ansible from prompting for the password when escalating privileges (assuming passwordless sudo or other configuration).
- Now ansible config file set-up:
Create ansible inventory, Location is **/etc/ansible/host**:
vi /etc/ansible/host
On "psadmin" general user (Master Node):
Command for checking all hosts are connected or not:
ansible all -m ping

Create & Run Ansible-Playbook:
vi web.yml
Command for Run ansible-playbook:ansible-playbook web.yml

Check on target node httpd install or not:
rpm -q httpd
