2014-12-04 4 views
2

Могу ли я запустить Ansible для управления моими хостами как демон? Например, я иногда меняю свои плейбуки, и я не хочу запускать «ansible-playbook main.yml» вручную. Пожалуйста, не предлагайте crontab. Существует определенная точка, и я не могу использовать crontab на рабочем сервере.Не удается запустить Ansible в режиме демона

Спасибо

+1

Башня спроектирована с обратными вызовами. В противном случае вы, вероятно, могли бы установить что-то с помощью git hooks или 'supervisord' и скрипта, но .. в конечном счете, вы пытаетесь сделать что-то за пределами стандартного операционного конверта Ansible. – tedder42

+0

Благодарим за ответ. Я думал, я могу использовать Ansible как Chef (режим сервера Daemon), когда он работает все время и всегда разбирается в плей-листах. Это неправильно? – Jade

+0

Да, @jade, это неправильно. Башня может выполнять обратные вызовы и запланированные задачи, но, вообще говоря, это не та же модель, что и шеф-повар. – tedder42

ответ

3

Что вы говорите здесь называется режим тянуть. Architectically Ansible предназначен для работы в режиме push - вы нажимаете изменения на сервер с управляющей машины.

Если вы действительно хотели бы сделать анзибль работы в режиме тяги, то вы можете сделать это с анзибль-Pull сценарием, см документации здесь: http://docs.ansible.com/playbooks_intro.html#ansible-pull

анзибль-вытяжная скрипт, который может принести вашу конфигурацию playbooks от удаленного репозиторий и запустить их против localhost. Однако Ansible-pull не решает проблему проверки новых изменений конфигурации - вам нужно решить ее самостоятельно с помощью cron.

Другая альтернатива - использование Ansible Tower (для этого вам нужна платная лицензия). Ansible Tower поддерживает обратные вызовы через API, поэтому сервер, который вы хотите настроить, должен выполнить запрос API к серверу Ansible Tower. Башня, в свою очередь, проверяет, находится ли хост, который отправил запрос API, в свой инвентарь. Если он находится в инвентаре, Tower начнет его настраивать.