Обратите внимание: меня не интересуют какие-либо корпоративные/платные (Tower) решения здесь, а только решения, доступные через предложение Ansible OSS.
Итак, мой проект Ansible настроен и отлично работает, о-о-о! Выглядит примерно так:
myansible01.example.com:/opt/ansible/
site.yml
fizz.yml
buzz.yml
group_vars/
roles/
common/
tasks/
main.yml
handlers
main.yml
foos/
tasks/
main.yml
handlers/
main.yml
Есть несколько вещей, которые мне нужно выполнить, чтобы заставить это работать в производственной среде:
- Мне нужно иметь возможность автоматизировать развертывание изменений в этом проекте
- Мне нужно запланировать запуск плейбуков, скажем, каждые 30 секунд (чтобы все управляемые узлы всегда соответствовали требованиям)
Итак, мои опасения:
- Как обычно развертываются изменения в действующих проектах Ansible? Скажем, проект находится по адресу
myansible01.example.com:/opt/ansible
(мой сервер Ansible). Достаточно ли просто удалить корень проекта Ansible (rm -rf /opt/ansible
), а затем скопировать последний (содержащий изменения) проект Ansible обратно в то же место? Что произойдет, если Ansible в настоящее время запускает какие-либо воспроизведения, пока я выполняю эту команду «drop-n-swap»? - Похоже, что коммерческое предложение (Ansible Tower) имеет встроенную функцию планирования, но не предложение OSS. Как я могу запланировать Ansible OSS для запуска игр в определенное время? Например, я могу захотеть, чтобы определенные игры запускались каждые 30 секунд, чтобы узлы всегда соответствовали требованиям. Достаточно ли для этого
cron
или есть более стандартный подход?