(Ansibleロールのコールバックまたはフック、および再利用可能な一連のタスクに関連):
jina2テンプレート式を使用する(ab)よりも、リストに追加するか、Ansibleの辞書にキーを追加するより良い方法はありますか?
私はあなたが次のようなことができることを知っています:
- name: this is a hack
shell: echo "{% originalvar.append('x') %}New value of originalvar is {{originalvar}}"
しかし、これを行うためのメタタスクやヘルパーは実際にはありませんか?
それは壊れやすく、文書化されていないようで、Ansibleでの変数の動作に関する多くの仮定に依存しています。
私のユースケースは複数のロール(データベースサーバー拡張機能)で、それぞれが基本ロール(データベースサーバー)に何らかの構成を提供する必要があります。dbサーバーの設定ファイルに行を追加するほど簡単ではありません。各変更は同じ行に適用されます。たとえば、内線番号bdr
でpg_stat_statements
あり、両方がターゲット行に表示される必要があります。
shared_preload_libaries = 'bdr, pg_stat_statements'
これを行うAnsibleの方法は、現在の値を抽出して解析してから書き換える正規表現を使用して、構成ファイルを複数回(拡張子ごとに1回)処理するだけですか?もしそうなら、どのようにして複数の実行にわたってそのべき等を行いますか?
構成の解析がこれより難しく、別のコンマ区切り値を追加するほど簡単ではない場合はどうなりますか?XML構成ファイルを考えてください。