Ansibleのset_factモジュールとvars、vars_file、include_varの違い


  1. set_factモジュール: set_factモジュールは、タスク内で変数を定義するために使用されます。このモジュールを使用すると、他のモジュールやタスク内で使用するための変数を設定することができます。以下はset_factモジュールの使用例です。

    - name: 変数の定義
     set_fact:
       my_variable: "Value"

    上記の例では、my_variableという変数を定義し、「Value」という値を割り当てています。この変数は、同じプレイブック内の他のタスクやモジュールで使用することができます。

  2. vars: varsキーワードを使用して、プレイブック内の変数を定義することもできます。varsキーワードを使用すると、プレイブック全体で使用する変数を定義することができます。以下はvarsキーワードの使用例です。

    - name: 変数の定義
     vars:
       my_variable: "Value"

    set_factモジュールとの違いは、varsキーワードを使用すると、プレイブック全体で使用する変数を定義できる点です。

  3. vars_file: vars_fileディレクティブを使用すると、外部ファイルに定義された変数を読み込むことができます。vars_fileディレクティブは、プレイブック内の特定の場所で使用されます。以下はvars_fileディレクティブの使用例です。

    - name: 外部ファイルから変数を読み込む
     vars_files:
       - vars.yml

    上記の例では、「vars.yml」というファイルに定義された変数を読み込んでいます。この方法を使用すると、変数の値をプレイブック内で再利用することができます。

  4. include_var: include_varディレクティブは、別のファイルに定義された変数を含む変数ファイルをインクルードします。include_varディレクティブは、プレイブック内の特定の場所で使用されます。以下はinclude_varディレクティブの使用例です。

    - name: 変数ファイルをインクルードする
     include_vars:
       file: vars.yml

    上記の例では、「vars.yml」というファイルに定義された変数をインクルードしています。この方法を使用すると、変数ファイル内の変数をプレイブック内で使用することができます。

以上が、Ansibleのset_factモジュールとvars、vars_file、include_varの違いです。これらの方法を使って、プレイブック内で変数を定義し、他のタスクやモジュールで使用することができます。