command
のコマンドを使用して、APIにクエリを実行しています。 APIは、ネットワーク情報を持つJSONオブジェクトを返します。AnsibleでJSONデータをフィルタリングする方法は?
パブリックIPに基づいてサーバーのプライベートIPを取得したいと考えています。私はこれがJSON query filterで可能であることを知っていますが、私はどのように理解できません。
コード:
TASK [debug] ****************************************************************************************
ok: [ps1] => {
"changed": false,
"msg": [
{
"id": 7406,
"members": [
{
"id": 0000,
"ip": "x.x.x.x",
"owner": "buzut",
"private_ip": "10.91.154.39",
"speed": 100,
"status": "active"
},
{
"id": 1111,
"ip": "y.y.y.y",
"owner": "buzut",
"private_ip": "10.91.120.148",
"speed": 100,
"status": "active"
},
{
"id": 2222,
"ip": "z.z.z.z",
"owner": "buzut",
"private_ip": "10.91.165.215",
"speed": 1000,
"status": "active"
}
],
"name": "MySQL",
"owner": "buzut",
"shared": false,
"status": "updating"
}
]
}
質問:どのように私はその公共のいずれかに基づいて、サーバのプライベートIPを得るのですが
- name: Get RPN topology
command: 'curl -X GET -H "Authorization: Bearer {{ onlineApiToken }}" "https://api.online.net/api/v1/rpn/group"'
register: RPN
delegate_to: 127.0.0.1
これはRPN.stdout
出力がどのように見えるのですか?
回答ありがとうございますが、それでも動作しません:( 'RPN' varにはネストされたオブジェクトが含まれている可能性があります:' RPN.stdout'が投稿に表示されています。あなたが提供したものの代わりに 'with_items:" {{RPN.stdout [0] ... 'を使ってみましたが、これまで成功していませんでした。 – Buzut