Был ли у вас опыт написания Ansible Playbook?

«Был ли у вас опыт написания Ansible Playbook?» — вопрос из категории Ansible, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, я активно использовал Ansible Playbooks для идемпотентной автоматизации инфраструктуры. Основные сценарии: базовая настройка ОС ( hardening, users), деплой и конфигурация middleware (Nginx, PostgreSQL, Redis), управление пользователями и правами.

Пример Playbook для подготовки веб-сервера:

---
- name: Configure production web server
  hosts: webservers
  become: yes
  vars:
    app_user: "myapp"
  tasks:
    - name: Ensure system packages are updated
      apt:
        update_cache: yes
        upgrade: 'dist'
        cache_valid_time: 3600

    - name: Install required packages (Nginx, Python)
      apt:
        name:
          - nginx
          - python3-pip
        state: present

    - name: Create application user
      user:
        name: "{{ app_user }}"
        system: yes
        create_home: no

    - name: Deploy Nginx configuration template
      template:
        src: templates/nginx.conf.j2
        dest: /etc/nginx/sites-available/myapp
        owner: root
        group: root
        mode: '0644'
      notify: Reload Nginx

  handlers:
    - name: Reload Nginx
      service:
        name: nginx
        state: reloaded

Я структурировал код с использованием ролей (roles) для повторного использования, применял Jinja2 шаблоны для динамических конфигов, использовал Ansible Vault для шифрования секретов и работал с динамическим инвентарем, генерируемым из облачных провайдеров (AWS EC2).