前提・実現したいこと
moleculeでテスト可能な状態でFQDNをtemplateで使いたい。
改善ポイントがあれば教えて下さい!
実行環境
molecule 3.2.3 using python 3.8 ansible:2.9.17 docker:0.2.4 from molecule_docker
状況
task中にtemplateで以下の様にFQDNを補完するようにしています。
GF_SERVER_ROOT_URL=http://{{ ansible_facts['hostname'] }}.{{ ansible_dns['domain'] }}:{{ grafana_port }}
また、moleculeでfactsを以下の様にmolecule.ymlで改変しています。
YAML
1driver: 2 name: docker 3 : 4provisioner: 5 name: ansible 6 : 7 inventory: 8 hosts: 9 all: 10 vars: 11 ansible_dns['domain']: example.com
結果
以下の様にどうやらセットされていないようです。
fatal: [instance]: FAILED! => {"changed": false, "msg": "AnsibleUndefinedVariable: 'dict object' has no attribute 'domain'"}
マネージドノード側でキャッシュしているfactsを見たら以下の様にセットされているので実際には実行できるのかなぁって考えてます。
YAML
1ansible_dns: 2 domain: example.com
補足情報
FQDNは以下の通り
$ hostname -f grafana.example.com
また、キャッシュしている ansible_fqdn
は、grafana となっている
追記
set_factsモジュールを以下の様につかって試してみたんですがダメでした。
YAML
1 - name: ansible_dns.domainを変更 2 set_fact: 3 ansible_dns['domain']: .internal
とか
YAML
1 - name: ansible_dns.domainを変更 2 set_fact: 3 ansible_dns: '{ "domain": ".internal" }'
とか試してみたんですけど、ダメでした。。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。