Ansibleでcronに環境変数を設定する

USERすら定義されてなかったりと環境で大幅に変わるので確認する。

*/1 * * * * user env > /tmp/cron-script.env

そんなわけでcronモジュールを使って環境変数の定義も含めたい。 cronファイル毎にblockでまとめると読みやすいと思う。 envyesの時はnameで指定した環境変数を設定することになる。 それ以外の時はjobnameにひも付けて管理される。 ansibleは指定の名前以外のジョブは触らないように動く。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
- name: setup cron tasks for XXX
  block:
    - cron:
        name: note-env
        job: "env > /tmp/manage-xxx-env"
        minute: "*/1"
        user: "{{ role_user }}"
        cron_file: "manage-xxx"
    - cron:
        env: yes
        name: USER
        value: "{{ rule_user }}"
        user: "{{ role_user }}"
        cron_file: "manage-xxx"
  become: yes
  become_user: "root"
comments powered by Disqus