複数のホストで異なる時間に実行するように cron ジョブを構成する必要があります。理想的には、現在変更しているホストを識別してオフセットするインデックスが必要です。
したがって、次に対して ansible を実行すると:
HOSTA
HOSTB
HOSTC
cronをこのように設定したい
0 1 * * * #HOSTA
0 2 * * * #HOSTB
0 3 * * * #HOSTC
ホストごとに変数をハードコーディングせずにそれを達成する方法を知っていますか?
辞書の配列に対して loop with_items を使用できます。次に、inventory_hostname または ansible_hostname を使用して適切なアイテムをフィルター処理します。
- name: cron jobs
cron: min=0 hour={{ item.h }} job="echo server {{ item.s }} cron job started" state=present
when: inventory_hostname == item.s
with_items:
- { s: 'hosta', h: 1 }
- { s: 'hostb', h: 2 }
- { s: 'hostc', h: 3 }