Mirandy Opsbookчерновик

Автоматизация без сюрпризов

Ansible и CI/CD должны делать изменения повторяемыми, проверяемыми и ограниченными по области воздействия.

Начать с inventory

Убедитесь, что группа содержит ожидаемые хосты, SSH-пользователь верный, а повышение привилегий работает.

inventory
ansible-inventory -i inventory.ini --graph
ansible all -i inventory.ini -m ping

Check mode и diff

Перед применением запускайте playbook с --check --diff, но помните: не все модули полностью поддерживают симуляцию.

dry-run
ansible-playbook -i inventory.ini site.yml --check --diff

Ограничить запуск

Используйте --limit и теги, чтобы сначала проверить изменение на одном узле или небольшой группе.

canary
ansible-playbook -i inventory.ini site.yml --limit web-01 --tags nginx --diff

CI/CD

Разделяйте валидацию, сборку и развёртывание. Не храните секреты в репозитории и делайте deployment явным этапом.

pipeline.yml
stages:
  - validate
  - test
  - build
  - deploy

validate:
  script:
    - nginx -t
    - ansible-playbook site.yml --syntax-check