#Ansible
Agentless automation for configuration management.
#Installation
bash
pip install ansible#Inventory
ini
1# inventory.ini
2[webservers]
3web1.example.com
4web2.example.com
5
6[databases]
7db1.example.com
8
9[all:vars]
10ansible_user=ubuntu#Playbook Example
yaml
1# playbook.yml
2- name: Configure web servers
3 hosts: webservers
4 become: yes
5
6 tasks:
7 - name: Install nginx
8 apt:
9 name: nginx
10 state: present
11 update_cache: yes
12
13 - name: Start nginx
14 service:
15 name: nginx
16 state: started
17 enabled: yes
18
19 - name: Copy config
20 template:
21 src: nginx.conf.j2
22 dest: /etc/nginx/nginx.conf
23 notify: Restart nginx
24
25 handlers:
26 - name: Restart nginx
27 service:
28 name: nginx
29 state: restarted#Commands
bash
1# Run playbook
2ansible-playbook -i inventory.ini playbook.yml
3
4# Check mode (dry run)
5ansible-playbook -i inventory.ini playbook.yml --check
6
7# Ad-hoc commands
8ansible webservers -i inventory.ini -m ping
9ansible webservers -i inventory.ini -a "uptime"[!TIP] Pro Tip: Use Ansible roles for reusable, shareable configurations!