ansible, jinja2, nag ios определение хоста с переменными для каждого хоста - PullRequest
0 голосов
/ 06 апреля 2020

Я немного растерялся из-за того, как создать 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 шоу Я использую, чтобы достичь этого? У меня очень мало опыта, поэтому я совершенно заблудился, потому что даже начать достигать этого.

...