実現したいこと
main.ymlに「tokyo」「osaka」「nagoya」のキーでホストを2台ずつ紐づけしています。
3つのグループ配下のホストに対して、さらに個別の変数を紐づけしたいです。
現在下記のようなコマンドにて、グループを指定して対象ホストを取り込んでいます。
playbook.yml
1 vars_files: 2 - ../roles/hoge/vars/main.yml 3 4 tasks: 5 - name: "Check" 6 ansible.builtin.command: check_hoge_status "{{ item }}" 7 with_items: 8 - "{{ host_list[server_group] }}"
vars/main.yml
1host_list: 2 tokyo: 3 - tokyo01.co.jp 4 - tokyo02.co.jp 5 osaka: 6 - osaka03.co.jp 7 - osaka04.co.jp 8 nagoya: 9 - nagoya05.co.jp 10 - nagoya06.co.jp
実行するコマンド
$ ansible-playbook playbook.yml -e "server_group=tokyo"
上記の場合、 {{ item }} には「tokyo01.co.jp」と「tokyo02.co.jp」が代入されます。
実現したい事ですが、extra-varsで引数に指定した値(server_group=tokyo)を元に別の変数を自動的に読み出したいです。
自動的に紐づけする変数ですが、仮に「area」という変数を用意してserver_groupで指定した値から「area」に代入したいです。
例えば下記のように「area」という変数を設定しておいて、
ansible.builtin.command: check_hoge_status "{{ item }}" "{{ area }}"
「server_group=tokyo」の場合「area」に「kanto」代入する
「server_group=osaka」の場合「area」に「kansai」代入する
「server_group=osaka」の場合「area」に「cyubu」代入する
with_itemsの機能を利用すれば可能な気がするのですが、色々試しても上手くいきませんでした。
同じmain.ymlに変数を設定して可能となる方法をご存知でしたらご教授頂けないでしょうか。
宜しくお願い致します。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/08/18 13:30
2023/08/18 13:31
2023/08/18 13:35
2023/08/18 13:36
2023/08/18 13:39 編集
2023/08/19 03:45 編集