なんとな~くしあわせ?の日記

「そしてそれゆえ、知識そのものが力である」 (Nam et ipsa scientia potestas est.) 〜 フランシス・ベーコン

Ansibleでデフォルト値を使わせたい場合はdefault(omit)を使う

表題通りだけの話、このサイトに書いてありました。

www.netassist.ne.jp

公式ドキュメントにも探せば…

https://docs.ansible.com/ansible/2.9_ja/user_guide/playbooks_filters.html#omitting-undefined-variables

あったけどこんなんわからんね、RedHatが悪い。私は何も悪くない。

これを使えばこんなことができる。

  • shellを指定した場合だけデフォルトシェルを設定し、そうでない場合はAnsibleのデフォルト値を作らせる
  user:
    name: "{{ item.name }}"
    home: "{{ item.home | default(omit) }}"
    shell: "{{ item.shell | default(omit) }}"