かべぎわブログ

技術的なことについてかけたらいいな…

Ansibleでcronを設定してみる

概要

Ansibleのcronモジュールを利用してcrontabを設定してみようと思います。

playbook例

以下のように設定しています。
minutehourなどにcronで実行したい時間を設定します。
省略すると*扱いとなります。

jobは実行したいコマンドです。

実行してみる

$  ansible-playbook cron.yml -v

PLAY [localhost] *********************************************************************************************************************************************

TASK [set crontab] *******************************************************************************************************************************************
changed: [localhost] => {"changed": true, "envs": [], "jobs": ["test_execute"]}

PLAY RECAP ***************************************************************************************************************************************************
localhost                  : ok=1    changed=1    unreachable=0    failed=0   

cronが設定されていることがわかります。

$ crontab -l
#Ansible: test_execute
0 1,3 10 5 1-5 /home/ec2-user/wawawa.sh

おわりに

cronを設定することができました。
cronモジュールを利用することでcrontab = playbookにすることが可能なのでcrontabのコード化(?)が可能かと思います。
(cronもコードやんけというかんじもありけり)

Ansible実践ガイド 第2版 (impress top gear)

Ansible実践ガイド 第2版 (impress top gear)