Ansible Setup on AWS
Step 1: Launch Instances
Launch Amazon Linux instances on AWS:
- Control Node: The server to install Ansible.
- Managed Nodes: Servers managed by Ansible.
Step 2: Install Ansible on the Control Node
Update the system:
sudo yum update -y
Install EPEL Repository:
sudo amazon-linux-extras install epel -y
Install Ansible:
sudo yum install ansible -y
Step 3: Create a User on All Servers
Create a user, for example, ansibleuser:
sudo useradd ansibleuser
sudo passwd ansibleuser
Step 4: Grant Sudo Permission to the User
Edit the sudoers file:
sudo visudo
Add this line:
ansibleuser ALL=(ALL) NOPASSWD: ALL
Step 5: Setup Passwordless Authentication on All Servers
Edit SSH configuration:
sudo vim /etc/ssh/sshd_config
Set PasswordAuthentication to yes and restart SSH:
sudo service sshd restart
Generate SSH Key on Control Node:
ssh-keygen -t rsa
Copy the SSH Key to Managed Nodes:
ssh-copy-id ansibleuser@<managed_node_ip>
Step 6: Uncomment Hosts Entry in Ansible Configuration
Edit the Ansible config file:
sudo vim /etc/ansible/ansible.cfg
Uncomment the line:
inventory = /etc/ansible/hosts
Step 7: Configure the Hosts File
Edit the hosts file and add Managed Nodes:
[web-server]
managed_node1_pvt_ip
managed_node2_pvt_ip
[db-server]
managed_node3_pvt_ip
managed_node4_pvt_ip
Step 8: Run Ad-hoc Commands
Test connectivity with:
ansible all -m ping
Step 9: Common Ad-hoc Commands
List all hosts:
ansible all --list-hosts
Ping all hosts:
ansible all -m ping
Note:
To avoid receiving a warning, add the line interpreter_python=auto_silent to the file /etc/ansible/ansible.cfg at any location.Run the uptime command:
ansible all -m command -a "uptime"
Step 10: Ansible Playbook
A Playbook is a YAML configuration file that defines tasks for remote servers. Run a Playbook with:
ansible-playbook <playbook_name>.yaml
Step 11: Ansible Playbook Commands
Check for syntax errors:
ansible-playbook <playbook_name>.yaml --syntax-check
Perform a dry run:
ansible-playbook <playbook_name>.yaml --check

Comments
Post a Comment