1. ホーム
  2. ansible

[解決済み] Ansible - 変数が定義されていない場合は、デフォルトを使用する

2022-05-10 08:40:09

質問

linuxをカスタマイズしています。 users の作成をカスタマイズしています。私のロールのユーザがカスタマイズできるようにする必要があります。 home_directory , group_name , name , password .

デフォルト値にもっと柔軟に対応する方法はないかと考えていました。

下記のようなコードが可能であることは知っています。

- name: Create default
  user:
    name: "default_name"
  when: my_variable is not defined

 - name: Create custom
  user:
    name: "{{my_variable}}"
  when: my_variable is defined

でも述べたように、オプションの変数がたくさんあり、これがいろいろな可能性を生み出しているのです。

上のコードのようなものはないのでしょうか?

user:
  name: "default_name", "{{my_variable}}"

を設定する必要があります。 name="default_name"my_variable が定義されていない。

すべての変数を設定することができました。 defaults/main.yml というように、ユーザーを作成します。

- name: Create user
  user:
    name: "{{my_variable}}"

しかし、これらの変数は非常に大きなハッシュの中にあり、そのハッシュの中にはデフォルトではありえないハッシュも存在します。

どのように解決するのですか?

Jinjaの default :

- name: Create user
  user:
    name: "{{ my_variable | default('default_value') }}"