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 снижает человеческий фактор и делает инфраструктуру воспроизводимой.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 0 / 5. Количество оценок: 0

Оценок пока нет. Поставьте оценку первым.