让 Ansible 模块使用 /etc/ansible/hosts 而不是 IP 地址

让 Ansible 模块使用 /etc/ansible/hosts 而不是 IP 地址

我有这个 Dell iDRAC 管理模块,正在尝试使用。

由于某些奇怪的原因,它似乎要求提供 IP 地址,而不是遵守 hosts: 指令。以下是我得到的示例:

- hosts: idracs
  connection: local
  name: Check LC Ready Status
  gather_facts: False

  tasks:
  - name: Check LC Ready Status
    dellemc_get_lcstatus:
       idrac_ip:   "{{ idrac_ip }}"
       idrac_user: "{{ idrac_user }}"
       idrac_pwd:  "{{ idrac_pwd }}"

我看不出如何将 idrac_ip 变成变量。我应该使用 /etc/ansible/hosts 还是应该创建另一个(不同的)库存对象?

答案1

据我所知,您需要自己为每个主机定义这些事实。

看来您正在使用Dell EMC OpenManage Ansible 模块。这些示例的设计方式似乎期望变量来自主机事实。因此,您只需host_vars为每个主机定义即可。例如,您可以创建host_vars/myserver.example.com/idrac.yml

idrac_ip: 10.208.35.6
idrac_user: root
idrac_pw: calvin

当然,您可以从其他地方获取您可能执行的其他某些操作的变量,例如从每个主机上设置的静态事实或从动态库存脚本中获取变量,但这应该可以帮助您入门。

相关内容