Ansible 动态主机跳过
Ansible dynamic hosts skips
我正在尝试使用 ansible 1.9.4 为我的家庭办公室设置一个非常 hacky 的 vm 部署环境。
我已经很远了,但最后一步就是行不通。我有一个编写的 10loc 插件,它为暂存 vlan 生成临时 dns 名称,我想将该值作为主机传递给下一个剧本角色。
TASK: [localhost-eval | debug msg="{{ hostvars['127.0.0.1'].dns_record.stdout_lines }}"] ***
ok: [127.0.0.1] => {
"msg": "['vm103.local', 'vm-tmp103.local']"
}
它可以通过主机变量在全局剧本范围内访问:
{{ hostvars['127.0.0.1'].dns_record.stdout_lines[1] }}
并应传递给:
- name: configure vm template
hosts: "{{ hostvars['127.0.0.1'].dns_record.stdout_lines[1] }}"
gather_facts: no
roles:
- template-vm-configure
这导致:
PLAY [configure vm template] **************************************************
skipping: no hosts matched
我的库存看起来像这样并且似乎有效。硬编码 'vm-tmp103.local'
获得角色 运行.
[vm]
vm[001:200].local
[vm-tmp]
vm-tmp[001:200].local
提前谢谢你,希望有人能指出我正确的方向。 B 计划包括将 dns 记录传递给 bash 脚本以完成配置,因为我只想在将虚拟机添加到监控之前配置网络接口。
编辑:
修改了 play 以使用添加主机并将它们添加到临时组
- add_host: name={{ hostvars['127.0.0.1'].dns_record.stdout_lines[1] }} groups=just_vm
但还是不匹配。
我认为这不是有意为之的行为。
#9733 引导我找到解决方案。
添加此任务让我可以作为一个小组使用暂存。
tasks:
- set_fact: hostname_next="{{ hostvars['127.0.0.1'].dns_record.stdout_lines[1] }}"
- add_host: group=staging name='{{ hostname_next }}'
我正在尝试使用 ansible 1.9.4 为我的家庭办公室设置一个非常 hacky 的 vm 部署环境。
我已经很远了,但最后一步就是行不通。我有一个编写的 10loc 插件,它为暂存 vlan 生成临时 dns 名称,我想将该值作为主机传递给下一个剧本角色。
TASK: [localhost-eval | debug msg="{{ hostvars['127.0.0.1'].dns_record.stdout_lines }}"] *** ok: [127.0.0.1] => { "msg": "['vm103.local', 'vm-tmp103.local']" }
它可以通过主机变量在全局剧本范围内访问:
{{ hostvars['127.0.0.1'].dns_record.stdout_lines[1] }}
并应传递给:
- name: configure vm template hosts: "{{ hostvars['127.0.0.1'].dns_record.stdout_lines[1] }}" gather_facts: no roles: - template-vm-configure
这导致:
PLAY [configure vm template] **************************************************
skipping: no hosts matched
我的库存看起来像这样并且似乎有效。硬编码 'vm-tmp103.local' 获得角色 运行.
[vm]
vm[001:200].local
[vm-tmp]
vm-tmp[001:200].local
提前谢谢你,希望有人能指出我正确的方向。 B 计划包括将 dns 记录传递给 bash 脚本以完成配置,因为我只想在将虚拟机添加到监控之前配置网络接口。
编辑: 修改了 play 以使用添加主机并将它们添加到临时组 - add_host: name={{ hostvars['127.0.0.1'].dns_record.stdout_lines[1] }} groups=just_vm
但还是不匹配。
我认为这不是有意为之的行为。 #9733 引导我找到解决方案。
添加此任务让我可以作为一个小组使用暂存。
tasks:
- set_fact: hostname_next="{{ hostvars['127.0.0.1'].dns_record.stdout_lines[1] }}"
- add_host: group=staging name='{{ hostname_next }}'