[解決済み] Ansible: 属性でリストをフィルタリングする
2023-01-26 23:20:02
質問
Ansibleに"network"という変数が登録されているのですが、これは何ですか?
{
"addresses": {
"private_ext": [
{
"type": "fixed",
"addr": "172.16.2.100"
}
],
"private_man": [
{
"type": "fixed",
"addr": "172.16.1.100"
},
{
"type": "floating",
"addr": "10.90.80.10"
}
]
}
}
このようにtype="floating"でIPアドレス("addr")を取得することは可能でしょうか?
- debug: var={{ network.addresses.private_man | filter type="fixed" | get "addr" }}
構文がおかしいですが、イメージはつかめると思います。
どのように解決するのですか?
私は プルリクエスト (Ansible 2.2+ で利用可能) を提出し、この種の状況をより簡単にするために jmespath クエリのサポートを追加することで、この種の状況を容易にします。あなたの場合、次のように動作します。
- debug: msg="{{ addresses | json_query(\"private_man[?type=='fixed'].addr\") }}"
は返すだろう。
ok: [localhost] => {
"msg": [
"172.16.1.100"
]
}
最新
-
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 実装 サイバーパンク風ボタン