TGViewer
NetworkAdmin.ru NetworkAdmin.ru @networkadminru · 4.7K subscribers
Post #581 2.36K
🛡 Как корректно отслеживать и логировать выполнение Ansible-плейбуков

Если вы регулярно работаете с Ansible - важно не только писать рабочие плейбуки, но и контролировать, когда, кем и как они были запущены. Особенно, если в вашей инфраструктуре Ansible используется как часть CI/CD или централизованного управления.

1️⃣ Включаем логирование в конфиге Ansible. В файле /etc/ansible/ansible.cfg (или в локальной копии ansible.cfg) пропишите:


[defaults]
log_path = /var/log/ansible.log


Ansible начнет писать все свои действия в указанный файл. Убедитесь, что у пользователя, запускающего Ansible, есть права на запись.

2️⃣ Используйте теги и переменные для понятности. Добавляйте теги к задачам:


- name: Установка nginx
apt:
name: nginx
state: present
tags:
- web
- nginx


Это поможет фильтровать задачи в логах, запускать только нужные части и документировать назначение.

3️⃣ Логируйте переменные, хосты, результаты. Для отладки - полезно писать значения переменных в лог:


- name: Показываем значение переменной
debug:
var: some_variable


Также можно логировать hostname, пользователя и дату запуска, добавляя кастомную задачу:


- name: Логируем запуск
shell: echo "{{ ansible_date_time.iso8601 }}: {{ inventory_hostname }} - {{ ansible_user }}" >> /var/log/ansible_run.log


4️⃣ Используйте Ansible Callback Plugins. Для более глубокого логирования можно подключить callback-плагины.

Например, json или yaml:


[defaults]
stdout_callback = yaml


А если хотите логировать в файл в формате JSON, можно использовать:


[defaults]
callback_whitelist = json
stdout_callback = json
log_path = /var/log/ansible-json.log


5️⃣ Храните вывод выполнения с ansible-playbook. При запуске:


ansible-playbook site.yml | tee -a /var/log/ansible-run-$(date +%F-%T).log


Так у вас будет отдельный лог под каждое выполнение.

6️⃣ Интеграция с CI/CD и мониторингом. Если Ansible запускается через GitLab, Jenkins, Drone и прочее - обязательно сохраняйте артефакты выполнения и возвращайте статус завершения. Также можно отправлять результаты выполнения в телегу через webhook после ansible-playbook.

#ansible #security

🧑‍💻 NetworkAdmin
  • 👍 8
More from @networkadminru
  1. Oct 1, 2026✨ Systemd-команды, которые быстро дают информацию о системе У systemd есть несколько коман…
  2. Oct 1, 2026CENTI CONF: DevOps Day — митап по разработке и инженерным решениям ⚡️ 6 ноября Centicore G…
  3. Sep 30, 2026🖥 Get-ADUser: полезные примеры для работы с пользователями Active Directory Get-ADUser -…
  4. Sep 30, 2026👁‍🗨 Хочешь разбираться в информационной безопасности, а не просто копировать чужие коман…
  5. Sep 29, 2026🥱 Как быстро разобраться с дисками и маунтами Когда на сервере несколько дисков, LVM, отд…
  6. Sep 28, 2026🔎 TCP keepalive: как находить мертвые соединения до того, как они создадут проблему Иногд…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →