В настоящее время я столкнулся с проблемой с моей ролью ansible, на самом деле моя роль ansible установила сервер NRPE в Linux.
В некоторых случаях эти серверы имеют несколько сетевых карт и должны привязать сервер NRPE к одному конкретному сетевому адаптеру (выделенному для сети мониторинга).
Моя цель - получить IP-адрес названной сетевой карты (который является переменной, поскольку время от времени это может быть другой сетевой адаптер) и установить для этого IP-адреса параметр server_address в моем nrpe.cfg.
После некоторых исследований, попыток и ошибок, ansible_fact кажется способом собрать эту информацию. Думаю, мне придется зарегистрировать переменную для использования с моим шаблоном jinja2.
Моя основная проблема - как получить IP-адрес от именованной сетевой карты (enp0s8).
Спасибо за советы.
С Уважением,
Никос
Если в вашем учебнике есть gather_facts: yes или если вы запустите setup задача в вашей пьесе должна быть доступна такая переменная.
- debug:
var: ansible_enp0s8.ipv4.address
Если вы хотите увидеть все возможные переменные, которые обычно обнаруживаются, запустите такую команду ansible some-hostname -m setup.
Я пытаюсь создать следующую переменную {{ansible _ {{nrpe_address_server}}. Ipv4.address}} это не работает
Вы не используете {{}} внутри выражения или, говоря иначе, вы не можете вложить их.
Вероятно, вам понадобится что-то вроде этого.
- debug:
var: vars['ansible_'~nrpe_address_server].ipv4.address
Использование синтаксиса [] позволяет получить доступ к конкретной переменной с помощью динамических данных. В ~ объединяет строки.