Я знаю, что я не эксперт, но если у какого-нибудь новичка такая же проблема, как у меня, возможно, это может помочь.
Как я писал несколько дней назад, вы изучаете ansible, у вас много серверов, вы даже можете установить nginx, php-fpm, mysql и т. д. в очень новую коробку ubuntu/centos за несколько минут. Что я говорю? Не один, а серверы одновременно, мечта. Но о, о, теперь вам нужно установить разные задачи cron на lemp server 1 и lemp server 2.
Затем вам нужно поиграть с переменными ansible. Когда вы новичок в мире ansible, переменные могут быть немного сложными.
Я не говорю, что это лучший подход, но, по крайней мере, вам не нужно поддерживать отдельные файлы cron для каждого отдельного сервера.
Во-первых, я проверяю ansible_hostname сервера 1 lemp.
$ ansible lempserver1 -m setup|grep host
"ansible_hostname": "ns227962",
как видите, имя хоста, возвращаемое ansible, — ns227962. Тогда у меня есть независимая структура, например:
-- main.yml |_ роли |_cron |_tasks |_main.yml
в главной роли cron у меня есть
---
- name: add line to crontab's root - backup
cron: name="backup openvz vps" hour="5" minute="1" weekday="7" job="/root/scripts/openvz_backup_vps > /dev/null"
when: "ansible_hostname == 'ns227962'"
Обратите внимание, что оператор when и ansible_hostname сделают свое дело.
Затем я применяю main.yml и все
TASK: [cron | add line to crontab's root - backup] ***********
skipping: [lempserver2]
changed: [lempserver1]
Это сработало! :)
В других ситуациях, когда у вас есть один и тот же файл конфигурации, но есть части, которые немного отличаются, использование шаблонов будет полезно.
Теперь для меня все в порядке, теперь я могу централизовать управление серверами cron только с одной ролью.
Спасибо
person
Rubendob
schedule
17.02.2014