Создатель Ansible Playbook для автоматизации
Профессиональный шаблон для генерации идемпотентных Ansible playbook с ролями, безопасностью и инструкциями по запуску.
// промпт
Ты — старший инженер по автоматизации инфраструктуры (DevOps) с многолетней экспертизой в Ansible. Создай готовый к продакшену, идемпотентный Ansible playbook для задачи: **{{zadaca_avtomatizacii}}**.
## Контекст
- **Целевая ОС / дистрибутив:** {{celevaia_os}}
- **Группа хостов (inventory):** {{gruppa_xostov}}
- **Окружение:** {{okruzenie}} (dev / staging / production)
- **Сервис или стек для настройки:** {{servis_ili_stek}}
Текущий inventory или конфигурация (если есть):
```
[Текущая Конфигурация Или Inventory]
```
## Что нужно сделать
1. **Спроектируй структуру** — разбей логику на роли (`roles/`), вынеси переменные в `defaults`/`vars`, шаблоны в `templates`, секреты в Ansible Vault.
2. **Напиши playbook** — задачи с понятными `name`, корректным `become`, тегами и условным выполнением (`when`).
3. **Обеспечь надёжность** — `handlers` для перезапуска сервисов, `block`/`rescue`/`always` для обработки ошибок и отката, проверки `assert`/`failed_when`.
4. **Опиши запуск** — пример `inventory`, команду `ansible-playbook` с нужными флагами и проверку через `--check`/`--diff`.
## Требования и лучшие практики
- Идемпотентность: повторный запуск не должен менять состояние.
- Правильная область видимости и именование переменных, без хардкода.
- Усиление безопасности по умолчанию (минимум привилегий, SSH, файрвол).
- Совместимость с указанной версией Ansible и целевой ОС.
## Формат ответа
- **Структура каталогов** — дерево файлов проекта.
- **Код playbook и ролей** — в блоках YAML с краткими комментариями к нетривиальным шагам.
- **Переменные** — таблица: имя, назначение, значение по умолчанию.
- **Запуск и проверка** — команды и ожидаемый результат.
- **Заметки** — потенциальные риски, требования к привилегиям и идеи по расширению.
Если деталей не хватает, задай уточняющие вопросы перед генерацией кода.
Заполните переменные
Пример ответа
Полный Ansible Playbook для настройки веб-сервера
---
- name: Настройка LAMP стека
hosts: webservers
become: yes
vars:
mysql_root_password: "{{ vault_mysql_password }}"
tasks:
- name: Установить Apache, MySQL, PHP
apt:
name:
- apache2
- mysql-server
- php
- libapache2-mod-php
state: present
update_cache: yes
- name: Запустить и включить сервисы
systemd:
name: "{{ item }}"
state: started
enabled: yes
loop:
- apache2
- mysql
- name: Настроить виртуальный хост Apache
template:
src: vhost.conf.j2
dest: /etc/apache2/sites-available/mysite.conf
notify: restart apache
- name: Включить сайт и отключить по умолчанию
shell: |
a2ensite mysite
a2dissite 000-default
notify: restart apache
handlers:
- name: restart apache
systemd:
name: apache2
state: restarted
Расширенные функции
- Интеграция Vault: Шифрованное управление паролями
- Система шаблонов: Динамические файлы конфигурации
- Обработка ошибок: Откат при сбое
- Идемпотентность: Безопасно запускать несколько раз
Команды выполнения
ansible-playbook -i inventory lamp-setup.yml --ask-vault-pass
ansible-playbook lamp-setup.yml --check # Сухой запуск
Похожие промпты
IT и Администрирование
Архитектор облачной инфраструктуры
Проектирует масштабируемую, безопасную и экономичную облачную архитектуру в AWS, Azure или GCP с IaC и дорожной картой.
IT и Администрирование
Диагностика ресурсов Kubernetes
Профессиональная пошаговая диагностика и устранение неполадок ресурсов Kubernetes с готовыми kubectl-командами и исправлениями.
IT и Администрирование
Настройка мониторинга и оповещений сервера
Проектирует комплексную систему мониторинга, оповещений и дашбордов для заданной серверной инфраструктуры.
IT и Администрирование
Анализатор сетевой безопасности
Экспертный аудит сетевой безопасности: анализ файрвола, сегментации, VPN и уязвимостей с приоритизированным планом усиления.