【发布时间】:2019-08-29 02:27:36
【问题描述】:
发生了什么
我有带有以下代码的 ansible jinja2 模板
nodes:
{% for host in abc_masters %}
- address: "{{ abc_ip_address }}"
port: "22"
role:
- controlplane
- etcd
hostname_override: "{{ inventory_hostname }}"
user: {{ admin_user }}
docker_socket: /var/run/docker.sock
ssh_key_path: {{ ssh_key_path }}
labels: {}
{% endfor %}
有什么问题
当我运行 ansible-playbook 命令时,出现以下错误。
致命:[abc-worker-3]:失败! => { “改变”:错误, "msg": "AnsibleUndefinedVariable: 'abc_masters' 未定义" }
现在,没有找到在哪里定义“abc_masters”变量?? 此外,在inventory文件夹的hosts文件中,已经提到了abc_masters ...
[abc_masters]
abc-master-0 ansible_ssh_user=administrator ansible_host=192.168.160.101 ansible_port=22 abc_ip_address=192.168.160.101
abc-master-1 ansible_ssh_user=administrator ansible_host=192.168.160.102 ansible_port=22 abc_ip_address=192.168.160.102
预期结果
我的理解是,jinja2 模板应该从 hosts 文件中获取这个变量并遍历数组以获取每个主机的详细信息...是否正确?
请建议我在哪里失踪。我需要在其他地方定义这个变量吗?那是什么位置呢?
【问题讨论】: