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

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

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

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

 1 2 3 4 5 6 7 8 910111213141516
- 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