Автоматизация без сюрпризов
Ansible и CI/CD должны делать изменения повторяемыми, проверяемыми и ограниченными по области воздействия.
Начать с inventory
Убедитесь, что группа содержит ожидаемые хосты, SSH-пользователь верный, а повышение привилегий работает.
ansible-inventory -i inventory.ini --graph ansible all -i inventory.ini -m ping
Check mode и diff
Перед применением запускайте playbook с --check --diff, но помните: не все модули полностью поддерживают симуляцию.
ansible-playbook -i inventory.ini site.yml --check --diff
Ограничить запуск
Используйте --limit и теги, чтобы сначала проверить изменение на одном узле или небольшой группе.
ansible-playbook -i inventory.ini site.yml --limit web-01 --tags nginx --diff
CI/CD
Разделяйте валидацию, сборку и развёртывание. Не храните секреты в репозитории и делайте deployment явным этапом.
stages:
- validate
- test
- build
- deploy
validate:
script:
- nginx -t
- ansible-playbook site.yml --syntax-check