サーバ内でのcron/crontabの設定ももちろんansibleで可能なので、今回はAnsible公式を元に解説していきたいと思います。(しっかりっと)
■Synopsis/概要
- Use this module to manage crontab and environment variables entries. This module allows you to create environment variables and named crontab entries, update, or delete them.
- When crontab jobs are managed: the module includes one line with the description of the crontab entry
"#Ansible: <name>"
corresponding to the “name” passed to the module, which is used by future ansible/module calls to find/check the state. The “name” parameter should be unique, and changing the “name” value will result in a new cron task being created (or a different one being removed). - When environment variables are managed: no comment line is added, but, when the module needs to find/check the state, it uses the “name” parameter to find the environment variable definition line.
- When using symbols such as %, they must be properly escaped.
(訳)
- このモジュールを使用してcrontabおよび環境変数を管理します。 このモジュールでは環境変数と名前付きcrontabを作成、更新、または削除することができます。
- crontabジョブが管理されている場合、モジュールに渡された “name”に対応するcrontabエントリ “#Ansible:<name>”の記述を含む1行がモジュールに含まれます。”name”パラメータは 値を変更すると新しいcronタスクが作成されます。(または別のものが削除されます)
- 環境変数が管理されている場合、コメント行は追加されませんが、モジュールが状態の検索/確認が必要な場合は”name”パラメータを使用して環境変数を検索します。
- %などの記号を使用する場合は適切にエスケープする必要があります。
長い。
■Options
■やりたいこと
DBバックアップスクリプトを毎日AM3:30にcronで発動させる。なので上記のOptionでminuteとhourでいけるはず。
■ansibleタスク
1 2 3 4 5 6 7 8 9 10 |
- name: move script become: True template: src=roles/mysql/templates/dump_db.sh. dest=/usr/local/bin/dump_db.sh - name: cron dump.db cron: name: "dump db" minute: "30" hour: "3" job: "sudo sh /usr/local/bin/dump_db.sh" |
・確認
1 2 3 |
$ crontab -l #Ansible: dump db 30 3 * * * sudo sh /usr/local/bin/dump_db.sh |
■まとめ
オプション意外とあるのね。。。毎時5分だったら minute=”*/5″でOK。
参考
http://docs.ansible.com/ansible/cron_module.html
0件のコメント