Ansible для начинающих: автоматизация настройки серверов
Ansible — инструмент автоматизации без агентов: он подключается к серверам по SSH и выполняет задачи, описанные в YAML. Это идеальный старт для тех, кто хочет избавиться от ручной настройки десятков машин.
Установка и первый инвентарь
sudo apt install ansible
mkdir -p ~/ansible && cd ~/ansible
cat > inventory.ini <<'EOF'
[web]
server1 ansible_host=192.168.1.10 ansible_user=ubuntu
server2 ansible_host=192.168.1.11 ansible_user=ubuntu
EOF
Первый playbook
---
- name: Базовая настройка веб-серверов
hosts: web
become: true
tasks:
- name: Обновить кэш пакетов
apt:
update_cache: yes
- name: Установить nginx
apt:
name: nginx
state: present
- name: Запустить и включить nginx
service:
name: nginx
state: started
enabled: yes
Запуск: ansible-playbook -i inventory.ini site.yml.
Переменные и шаблоны
Ansible использует Jinja2 для шаблонов. Создайте templates/nginx.conf.j2 и примените через модуль template. Переменные задавайте в group_vars/web.yml. Это позволяет использовать один playbook для разных окружений.
Роли и переиспользование
Когда playbook растёт, разбейте его на роли: ansible-galaxy init roles/nginx. Роли содержат tasks, handlers, templates, defaults. Сообщество уже написало тысячи готовых ролей — используйте их как отправную точку, но всегда проверяйте код перед применением.
Советы для production
- Храните секреты в ansible-vault.
- Используйте --check для пробного прогона.
- Включайте fact gathering только при необходимости.
- Версионируйте playbook в Git.
Ansible снижает человеческий фактор и делает инфраструктуру воспроизводимой.




