Назад | Перейти на главную страницу

Сделайте так, чтобы модуль 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 или создать другой (другой) объект инвентаризации?

Насколько я могу судить, вам нужно определить эти факты для каждого хоста самостоятельно.

Похоже, вы используете Модули 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

Конечно, вы можете получить переменные в другом месте для некоторых других операций, которые вы можете выполнять, например из статических фактов, установленных на каждом хосте, или из сценария динамической инвентаризации, но это должно помочь вам начать работу.