Практическое руководство с нуля по установке Ansible, организации файлов инвентаря, написанию первого YAML-плейбука и оркестрации серверных задач.
🔗 Related: Основная шпаргалка по Ansible · Шпаргалка по ролям Ansible · Примеры плейбуков Ansible
Установка
# macOS (Homebrew)
brew install ansible
# Ubuntu / Debian
sudo apt update && sudo apt install -y ansible
# Python Pip (Universal)
pip install ansible
См.: Официальная документация по установке Ansible: Ansible Installation Docs
Настройка проекта
mkdir -p ~/ansible-setup
cd ~/ansible-setup
Создайте рабочую директорию для файлов инвентаря, плейбуков и переменных.
Конфигурационные файлы
Файл инвентаря (Inventory)
hosts
[webservers]
192.168.0.10
192.168.0.11
[databases]
192.168.0.20
[local]
localhost ansible_connection=local
Инвентарь определяет целевые узлы, сгруппированные логически. Можно указать localhost с ansible_connection=local для локального тестирования без SSH.
См.: Руководство по созданию инвентаря в Ansible: Ansible How to build your inventory
Определение плейбука (Playbook)
playbook.yml
---
- name: Basic Server Provisioning
hosts: webservers
become: true
tasks:
- name: Update apt package cache
apt:
update_cache: yes
cache_valid_time: 3600
- name: Ensure Nginx is installed
apt:
name: nginx
state: present
- name: Start Nginx and enable on boot
service:
name: nginx
state: started
enabled: yes
- name: Create hello world banner
shell: echo "Managed by Ansible" > /tmp/motd.txt
Выполнение
Проверка и запуск
Проверка доступности с помощью ad-hoc команды ping:
ansible -i hosts all -m ping
Запуск полного плейбука на указанном инвентаре:
ansible-playbook -i hosts playbook.yml
Тестовый запуск (Режим проверки Check Mode)
Предварительный просмотр возможных изменений без применения на удаленных узлах:
ansible-playbook -i hosts playbook.yml --check --diff