Я немного растерялся из-за того, как создать ansible playbook, который генерирует nag ios конфигурационные файлы для серии хостов, для каждого хоста должны быть установлены свои собственные переменные.
Я думаю, что проблема в том, что я не понимаю, как назначить значение переменных хостам, которые уже определены как переменные.
вот очень простой файл основной задачи ansible playbook, который я использую
- name: Generate the nagios monitoring templates
template: src={{ item + ".j2" }}
dest=nagiosdir/{{ item }}
force=yes
owner=nagios
group=nagios
mode=660
with_items:
- linuxservers.cfg
become: true
вот очень простой рабочий ansible файл vars, который я сделал
hosts: [host1_fqdn, host2_fqdn]
вот мой файл шаблона linuxserver.cfg.j2
{% for hosts in hosts %}
define host{
use linux-server ; Name of host template to use
; This host definition will inherit all variables that are defined
; in (or inherited by) the linux-server host template definition.
host_name {{ hosts }}
alias {{ hosts }}
address {{ hosts }}
action_url /grafici/index.php/graph?host={{ hosts }}
}
define service{
use generic-service ; Name of service template to use
host_name {{ hosts }}
service_description Current Load
check_command check_by_ssh_remote_load!5.0,4.0,3.0!10.0,6.0,4.0
notifications_enabled 1
}
{% endfor %}
, и это чрезвычайно просто для l oop работ .
в файле linuxserver.cfg Я хочу иметь возможность добавлять переменные, которые должны быть определены для каждого хоста, например,
check_command check_by_ssh_remote_load!{host1_var1}!{host1_var1}
и так далее для каждого хоста, чтобы иметь возможность иметь файл var в ansible, где я определяю каждый хост и для каждого хоста, я должен иметь возможность определять различные значения для использования в моих определениях nag ios check_commands.
какие инструменты доступны в ansible / jinja2 шоу Я использую, чтобы достичь этого? У меня очень мало опыта, поэтому я совершенно заблудился, потому что даже начать достигать этого.