我的Ansible计划中有一个这样设置的变量-
NavGuard
在我的主机文件中,我有一个像这样的条目-
pre_tasks:
- name: Hosts
debug:
msg: "dev_web"
register: web_server_group
在我的Ansible计划中,我有一个[dev_web]
1.1.1.6
命令,该命令试图通过使用为组名定义的delegate_to
变量在该dev_web组内的主机上运行。 / p>
web_server_group
这给了我这个错误-
- name: Folder creation
file:
path: /tmp/dummy
owner: apache
group: apache
mode: 0770
state: directory
delegate_to: "{{ web_server_group }}"
是否可以通过将我设置为预任务的web_server_group变量中的主机填充下来,来使用proxy_to命令?
我尝试以此替换UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: ssh: Could not resolve hostname web_server_group: Name or service not known", "unreachable": true}
命令-
delegate_to
但我收到此错误-
delegate_to: '{{ item }}'
with_items: "{{ groups['web_server_group'] }}"
还有另一种方法可以完成此任务或与此类似的事情吗?
谢谢。
答案 0 :(得分:1)
我不确定您要做什么。具体来说,我不知道您要如何完成此任务:
- name: Hosts
debug:
msg: "dev_web"
register: web_server_group
这将创建一个名为web_server_group
的变量,其内容如下:
{
"changed": false,
"failed": false,
"msg": "dev_web"
}
您已经已经有一个名为dev_web
的组,该组似乎完全包含您要定位的主机。
如果要在特定主机组上运行任务,只需创建针对该主机组的播放即可。例如:
- hosts: dev_web
tasks:
- name: Folder creation
file:
path: /tmp/dummy
owner: apache
group: apache
mode: 0770
state: directory
这将在/tmp/dummy
组中的所有主机上创建dev_web
目录。真的没有任何理由在这里使用委派。