ansibleでshellコマンドを使うとき、
リスト変数に対してできるだけ簡単にできないかをやってみた。
以下備忘録です。
[ シナリオ ]
複数ユーザのbashrcに同じ情報(ここではumask)を書き込む
[ コード ]
- name: change umask shell: dummy=`sudo cat /home/{{ item }}/.bashrc | grep -F "umask"` && [[ -n $dummy ]] || echo "umask 002" >> /home/{{ item }}/.bashrc && source /home/{{ item }}/.bashrc with_items: - hoge - fuga failed_when: false tags: common, users
ちょっと長いが、.bashrcからumaskをgrepして、
結果がなければ、umaskを書き込んで、
sourceで反映している。
本来ならregisterとか使ってやるべきだが、
リスト変数に対して書くと冗長になるので、
このようなやり方にした。
Dict型でregisterできればよいのだけど、
そんな方法あるのかな?
set_factとかでもやれそうな気がするんだけど、
一時的な変数をあまり維持するのも微妙だしな。。
コメントがあればどうぞ