Ansibleに少しずつ慣れてきた

Ansibleを使い始めてしばらく経ちました

数週間前のroleを久しぶりに見ると、

軽くめまいがするくらいには書きなれてきました

 

最近は、lineinfileをcronに対して使おうとして、

何度も追記されてしまう事象を見つけました

こいつに対しては、事前に/etc/crontabの中身をgrepして、

該当の行の有無でそのあとのタスクを動かすかどうか判定することにしました

 

その際、registerを使うのですが、

最初registerの中身をうまく取り出せなくて、誤判定を頻発させていました・・・

-vvオプションをつけることで、出力を表示させることができ、

.stdoutを判定させることで判別できるとわかりました

 

- name: 判定

  shell: "cat /etc/crontab | grep 'xxxxxxxx' | wc -l"

  register: flag

 

- name: 実行

   when: flag.stdout == "0"

   fineinfile:

     line: {{ item }}

   with_items:

     - xxxxxx

     - uuuuu

 

といった具合です

冪等性を意識して少しずつかけるようになってきてよかった

次はhandlerとかも意識して書けるようになっていきたいところ・・・

 

以上