実現したいこと
Unixコマンドを実行して、実行結果からAAAAAをgrepした結果をcheck_imageという変数でlist型の情報として取得しています。
ここからkeyである AAAAA.BBBBB-CCCCC を指定して値である hoge.co.jp:8080/hoge/image:yyyymmdd-mmssss だけを取得したいです。
AAAAA.BBBBB-CCCCC の文字列にはドット(.)とハイフン(-)が含まれています。
list型の操作方法を調べているのですが、VARIABLE IS NOT DEFINEDや構文エラーとなってしまい値が取得出来ません。
やり方をご存じの方がいらっしゃいましたらご教授頂けないでしょうか。
宜しくお願い致します。
発生している問題・エラーメッセージ
"check_image.AAAAA.BBBBB-CCCCC": "VARIABLE IS NOT DEFINED!"
または
fatal: [localhost]: FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: 'dict object' has no attribute 'jp'. 'dict object' has no attribute 'jp'\n\nThe error appears to be in '/check_image.yml': line ?, column 3, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n# changed_when: true\n- name: Echo\n ^ here\n"}
該当のソースコード
check_image.yml
1- name: Check image 2 ansible.builtin.shell: hoge command | grep AAAAA 3 register: check_image 4- name: Echo 5 ansible.builtin.debug: 6 var: check_image.stdout_lines.AAAAA.BBBBB-CCCCC
check_image.stdout_linesの中身
1ok: [localhost] => { 2 "check_image.stdout_lines": [ 3 " \"AAAAA.BBBBB-CCCCC\": \"hoge.co.jp:8080/hoge/image:yyyymmdd-mmssss\"," 4 ] 5}
試したこと
申し訳ございません。
こちらlist配列0番目に情報が収まっており、個別に内容を取り出せないことが分かりました。
変数の型を確認
msg: "{{ check_image.stdout_lines | type_debug }}" "msg": "list"
msg: "{{ check_image.stdout_lines[0] }}"
上記の結果
"msg": " \"AAAAA.BBBBB-CCCCC\": \"hoge.co.jp:8080/hoge/image:yyyymmdd-mmssss\"," }

回答1件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
2023/05/26 11:25
2023/05/29 04:44