Как получить доступ к имени хоста из нового модуля Python в Ansible

#ansible #ansible-playbook #ansible-awx

#ansible #ansible-playbook #ansible-awx

Вопрос:

Я планирую реализовать новый модуль Ansible, который будет запускаться через локальное соединение и выполнять удаленные вызовы API для хоста. Есть ли какой-либо способ, которым я мог бы получить доступ к имени хоста / IP-адресу из модуля? Я хотел бы принять решение о том, какой API использовать на основе этого.

Комментарии:

1. Можете ли вы поделиться более подробной информацией. Если вы записываете все вызовы API host в файл host. вызовите этот хост динамически и используйте фасеты сбора, чтобы получить ip-адрес этого хоста. переменная {{ ansible_all_ipv4_addresses.0 }} дает вам IP-адрес хоста

Ответ №1:

Я предполагаю, что вы делаете что-то вроде, скажем, работы с сетевым устройством с узла перехода.

Прямо сейчас я не вижу, где вы получаете inventory_host в базовом классе модуля ansiable, но в этом случае я часто делаю:

 ansible_connection: local
tasks: 
  - name: config net app
    myconfig: action=create_rule host={{inventory_host}}
 

Затем сделайте host параметром вашего модуля.

Тогда мой файл инвентаризации может быть чем-то вроде:

 [firewalls]
host123
host456
host789