Какой у вас опыт работы с Ansible?

«Какой у вас опыт работы с Ansible?» — вопрос из категории DevOps, который задают на 26% собеседований Data Scientist / ML Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Я использовал Ansible для автоматизации настройки инфраструктуры под ML-ворклоады. Основной опыт — подготовка однородных окружений на множестве воркер-нод для распределенного обучения моделей.

Например, плейбук для базовой настройки сервера под Python-стек данных:

# setup_ml_server.yml
- name: Configure ML server
  hosts: ml_workers
  become: yes
  tasks:
    - name: Install system dependencies
      apt:
        name:
          - python3-pip
          - python3-venv
          - git
        state: present
        update_cache: yes

    - name: Create a virtual environment
      command: python3 -m venv /opt/ml_env

    - name: Install Python packages
      pip:
        requirements: /tmp/requirements.txt
        virtualenv: /opt/ml_env
        executable: /opt/ml_env/bin/pip

Я структурировал код с помощью ролей (roles) для разных компонентов (nginx, docker, monitoring), использовал Jinja2-шаблоны для генерации конфигурационных файлов и Ansible Vault для управления секретами. Интеграция в пайплайн осуществлялась через запуск плейбуков из GitLab CI.