Ansible:在playbook中使用hosts.ini的主机地址

Ansible:在playbook中使用hosts.ini的主机地址,ansible,ansible-inventory,Ansible,Ansible Inventory,我必须向ansible发出一个发帖请求 我的hosts.ini文件是: [workers] worker1 ansible_host=111.111.111.111 worker2 ansible_host=222.222.222.222 我必须连接的url需要worker1的ip地址,因此我将我的剧本写为: - hosts: worker1 tasks: - name: inizialize worker

我必须向ansible发出一个发帖请求

我的
hosts.ini
文件是:

[workers]
worker1 ansible_host=111.111.111.111 
worker2 ansible_host=222.222.222.222 
我必须连接的url需要worker1的ip地址,因此我将我的剧本写为:

- hosts: worker1

  tasks:
  - name: inizialize worker                                          
    uri:
      url: "http://{{ worker1 }}:8080/xxx/yyy"
      method: POST
      user: admin
      password: password
      force_basic_auth: yes
      return_content: yes
      body: "field=myfield"
但是运行它,我得到:

字段“args”的值无效,似乎包含未定义的变量。错误是:“worker1”未定义


问题出在哪里?

您没有定义名为
worker1
的变量

如果要将该值替换为
111.111.111.111
,应使用:

但考虑到你的整个剧本,你最好:

url: "http://{{ ansible_host }}:8080/xxx/yyy"

请注意,您的清单文件定义了一个名为
workers
的主机组,您的剧本引用了一个名为
worker1
的主机组——这完全没有意义

url: "http://{{ ansible_host }}:8080/xxx/yyy"