[解決済み] テンプレートモジュールを異なる変数セットで使用するには?
2022-11-15 02:32:30
質問
私のユースケースは次のようなものです。
私はテンプレートファイルを持っていて、そのテンプレートから2つの異なるファイルを作成したいのですが、それぞれのファイルに対して異なる変数のセットによって変数が埋められます。
例えば、私が行を含むファイルをテンプレート化したいとします。
mkdir -p {{myTemplateVariable}}
この変数に "File1" と "File2" が入るようにする適切な方法を見つけたいのですが、どうすればよいでしょうか?何かそのようなもの。
- name: template test 1
template:
src=myTemplateFile
dest=result1
- name: template test 2
template:
src=myTemplateFile
dest=result2
ここで、最初のテンプレートで使用する変数を a = "File1" と指定し、2番目のテンプレートで b = "File2" と指定することができます。
どのように解決するのですか?
Ansible 2.xの場合。
- name: template test
template:
src: myTemplateFile
dest: result1
vars:
myTemplateVariable: File1
- name: template test
template:
src: myTemplateFile
dest: result2
vars:
myTemplateVariable: File2
Ansible 1.xの場合。
残念ながら
template
モジュールはテンプレート内部で使用できる変数の受け渡しをサポートしていません。そこには
機能要求
がありましたが、拒否されました。
2つの回避策を思いつく。
1. インクルードする
以下の
include
文は変数の受け渡しをサポートしています。ですから
template
タスクを追加ファイルの中に置き、適切なパラメータを付けて2回インクルードすることができます。
my_include.yml。
- name: template test
template:
src=myTemplateFile
dest=destination
main.ymlです。
- include: my_include.yml destination=result1 myTemplateVariable=File1
- include: my_include.yml destination=result2 myTemplateVariable=File2
2. myTemplateVariableを再定義する。
もう一つの方法は、単純に myTemplateVariable をすべての
template
タスクの直前に定義します。
- set_fact:
myTemplateVariable: File1
- name: template test 1
template:
src=myTemplateFile
dest=result1
- set_fact:
myTemplateVariable: File2
- name: template test 2
template:
src=myTemplateFile
dest=result2
関連
-
ansible共通モジュール
-
[解決済み] Ansibleのロールのdefaultsとvarsの違いは何ですか?
-
[解決済み] タスクまたはタスクのセットごとにユーザーを切り替えるには?
-
[解決済み] Ansible hosts ファイルに定義されている現在のマシンのホスト名を取得する方法は?
-
[解決済み] Ansible - 変数が定義されていない場合は、デフォルトを使用する
-
[解決済み] ansibleのインベントリファイルでhost_key_checking=falseを設定するには?
-
[解決済み] Ansible playbook の hosts 変数をコマンドラインからオーバーライドする
-
[解決済み] Ansible: 現在のターゲットホストの IP アドレスを取得する
-
[解決済み] Ansible PlaybooksとRolesの比較
-
[解決済み] ホストがグループに属していない場合のみ、タスクを実行する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Ansible はエラー 'module' オブジェクトに属性 'SSL_ST_INIT' ソリューションがないことに気づきました。
-
[解決済み] Ansibleの定義済み変数の一覧はどこで手に入りますか?
-
[解決済み] タスクまたはタスクのセットごとにユーザーを切り替えるには?
-
[解決済み] Ansible hosts ファイルに定義されている現在のマシンのホスト名を取得する方法は?
-
[解決済み] ansibleで変数が未定義のときにタスクを実行するには?
-
[解決済み] 現在実行中の ansible-playbook へのパスを持つ変数?
-
[解決済み] Ansible playbook の hosts 変数をコマンドラインからオーバーライドする
-
[解決済み] Ansible: 現在のターゲットホストの IP アドレスを取得する
-
[解決済み] Ansible PlaybooksとRolesの比較
-
[解決済み] ホストがグループに属していない場合のみ、タスクを実行する