8.4. インベントリーファイルで変数を宣言するためのルール
文字列変数の値は、引用符で囲んで宣言します。以下に例を示します。
pg_database='awx' pg_username='awx' pg_password='<password>'
:vars
セクションで宣言すると、INI 値は文字列として解釈されます。たとえば、var=FALSE
は FALSE
に等しい文字列を作成します。ホスト行とは異なり、:vars
セクションは行ごとに 1 つのエントリーのみを受け入れるため、=
の後のすべてがエントリーの値である必要があります。ホスト行は、行ごとに複数の key=value
パラメーターを受け入れます。したがって、スペースがセパレーターではなく値の一部であることを示す方法が必要です。空白を含む値は引用符で囲むことができます (一重または二重)。詳細は、Python shlex の解析ルール を参照してください。
INI インベントリーに設定された変数値が特定の型 (文字列やブール値など) でなければならない場合は、常にタスクでフィルターを使用して型を指定します。変数を使用するときは、INI インベントリーで設定されたタイプに依存しないでください。
変数の実際の型に関する混乱を避けるために、インベントリーソースに YAML 形式を使用することを検討してください。YAML インベントリープラグインは、変数値を一貫して正しく処理します。
Ansible インベントリーファイルのパラメーター値に、#、{ または } などの特殊文字が含まれている場合は、値をダブルエスケープ (double-escape) する必要があります (値を単一と二重引用符で囲みます)。
たとえば、mypasswordwith#hashsigns
を変数 pg_password
の値として使用するには、Ansible ホストインベントリーファイルで pg_password='"mypasswordwith#hashsigns"'
として宣言します。