#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