質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Ansible

Ansibleは、Python で書かれたサーバーの設定を管理するための 構成管理ツールです。

Q&A

解決済

1回答

2780閲覧

Ansible リスト型の配列から特定の要素を幾つか取り出したい

khaii21

総合スコア67

Ansible

Ansibleは、Python で書かれたサーバーの設定を管理するための 構成管理ツールです。

0グッド

0クリップ

投稿2023/08/30 02:40

編集2023/08/30 02:51

実現したいこと

変数(set_echo)はリスト型であり、下記の実行結果の様に6つの要素があります。
インデックスを複数指定して変数(set_echo)から配列の1番目(blue)、3番目(pink)、5番目(white)だけを選択して1行で出力させたいです。
set_echo[1]の様に1つだけインデックスを指定した場合には想定通りに1行に「blue」が出力されますが
set_echo[1, 3, 5] の様に複数指定するとエラーになります。

複数のインデックスを指定して下記の様に
一行に出力する方法をご教授頂けないでしょうか。
宜しくお願い致します。

期待する結果 ok: [localhost] => { "msg": [ "blue pink white" ]

発生している問題・エラーメッセージ

fatal: [localhost]: FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: list object has no element (1, 3, 5). list object has no element (1, 3, 5)\n\nThe error appears to be in '/hoge.yml': line ?, column ?, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n with_sequence: start=0 end=1\n ^ here\n\nThere appears to be both 'k=v' shorthand syntax and YAML in this task. Only one syntax may be used.\n"}

該当のソースコード

hohe.yml

1 - name: Echo 2 ansible.builtin.debug: 3 msg: "{{ set_echo }}"
ok: [localhost] => { "msg": [ "red", "blue", "black, "pink", "green", "white", "yellow" ] }

試したこと

msg: "{{ set_echo[1] }}"
ok: [localhost] => { "msg": "blue"
set_echo[1, 3, 5]
fatal: [localhost]: FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: list object has no element (1, 3, 5). list object has no element (1, 3, 5)\n\nThe error appears to be in '/hoge.yml': line ?, column ?, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n with_sequence: start=0 end=1\n ^ here\n\nThere appears to be both 'k=v' shorthand syntax and YAML in this task. Only one syntax may be used.\n"}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

こちらでいかがでしょうか。

yaml

1 tasks: 2 - name: Echo 3 ansible.builtin.debug: 4 msg: "{{ ' '.join([set_echo[1], set_echo[3], set_echo[5]]) }}"

投稿2023/08/30 04:05

yabusakadeny

総合スコア186

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

khaii21

2023/08/30 04:50

ご確認ありがとうございました。 まさに期待通りの結果です。 大変助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問