実現したいこと
VIPアドレスを共通のvip_ipaddressという変数で管理をして
1stグループのサーバに対しては111.111.111.111、
2ndグループのサーバに対しては222.222.222.222、
3rdグループのサーバに対しては333.333.333.333のアドレスを設定したいです。
gourp_vars 配下にサーバグループ名と同じ名前のファイルを置けば
自動的に変数がサーバグループに紐付けされる認識です。
何かお気づきの方がいらっしゃいましたらご教授頂けないでしょうか。
宜しくお願い致します。
前提
下記のようなファイル構成でAnsibleを管理しています。
inventory ├── hosts playbook ├── playbook.yml └── roles └── hoge ├── defaults │ └── main.yml |── gourp_vars | ├── 1st.yml | ├── 2nd.yml | ├── 3rd.yml ├── tasks │ ├── main.yml │ ├── vip_set.yml └── vars └── main.yml
発生している問題・エラーメッセージ
Ansibleを実行すると変数(vip_ipaddress)が未定義でエラーとなります。
gourp_vars配下の変数用のファイルが反映されていない様子です。
fatal: [dev01]: FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: 'vip_ipaddress' is undefined. 'vip_ipaddress' is undefined\n\nThe error appears to be in '/home/user/playbook/roles/hoge/tasks/vip_set.yml': line 2, column 3, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n---\n- name: make /hoge/vip.conf\n ^ here\n"}
該当のソースコード
hostsは下記のような3種類のグループに分けています。
hosts
1[1st] 2dev01 ansible_ssh_host=www.tokyo.co.jp 3 4[2nd] 5dev02 ansible_ssh_host=www.osaka.co.jp 6 7[3rd] 8dev03 ansible_ssh_host=www.kobe.co.jp
playbook.yml
1--- 2- hosts: 1st 3 gather_facts: no 4 roles: 5 - hoge
main.yml
1--- 2 - include_tasks: vip_set.yml
vip_set.yml
1--- 2- name: make vip.conf 3 lineinfile: 4 dest: /etc/vip.conf 5 line: "{{ vip_ipaddress }}"
gourp_vars配下のファイル
1st.yml
1--- 2 vip_ipaddress: "111.111.111.111"
2nd.yml
1--- 2 vip_ipaddress: "222.222.222.222"
3rd.yml
1--- 2 vip_ipaddress: "333.333.333.333"
試したこと
gourp_vars配下のファイルから .yml を取り、1st、2nd、3rdにしましたが
同エラーは解消しませんでした。
気づいたこと
playbook.ymlにはhostsとして1stを設定していますが、エラー内容を見ますとdev01になっていました。
エラーメッセージの抜萃
fatal: [dev01]: FAILED! => {"msg": "The task includes an option with an undefined variable.
そこでhostsを以下のように修正して実行しました。
[1st] www.tokyo.co.jp [2nd] www.osaka.co.jp [3rd] www.kobe.co.jp
しかし、同エラーとなりました。
fatal: [www.tokyo.co.jp]: FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: 'vip_ipaddress' is undefined. 'vip_ipaddress' is undefined\n\nThe error appears to be in ‘/home/user/playbook/roles/hoge/tasks/vip_set.yml': line 2, column 3, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n---\n- name: make /etc/vip.conf\n ^ here\n"}

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