icinga2

Ansible Роль: icinga2

Ansible роль для настройки мастера или спутника Icinga2.


Я сейчас в процессе переноса этой роли в коллекцию и поэтому больше не буду обрабатывать никаких вопросов или запросов на слияние здесь.
Тем не менее, я включу их в коллекцию!
Пожалуйста, проявите терпение, пока я завершу работу!


Статус рабочего процесса на GitHub Вопросы GitHub Последний релиз GitHub Оценка качества Ansible

Требования и зависимости

Ansible Коллекции

ansible-galaxy collection install bodsch.core

или

ansible-galaxy collection install --requirements-file collections.yml

Python Модуль

  • dnspython

Операционные системы

Проверено на

  • ArchLinux
  • На базе Debian
    • Debian 10 / 11
    • Ubuntu 20.04
  • На базе RedHat
    • Alma Linux 8
    • Rocky Linux 8
    • OracleLinux 8

Вклад

Пожалуйста, прочитайте Вклад

Разработка, Ветви (Git Теги)

Ветка master – это мой Рабочий Конь, включает "последние новшества" и может быть полностью нестабильна!

Если вы хотите использовать что-то стабильное, пожалуйста, используйте Тегированную Версию!

Благодарности


Пожалуйста, прочитайте следующую документацию для конфигурационных точек.

Документация


Примеры

Полная тестовая настройка доступна в GitLab под названием icinga2-infrastructure.

Icinga2 Мастер

одиночный мастер

---
- host: icinga-master
  vars:
    icinga2_ido:
      user: icinga2_ido
      password: icinga2_ido
      host: localhost
      cleanup:
        acknowledgements_age: 72h

    icinga2_api:
      user:
        icinga2:
          password: S0mh1TuFJI
          permissions: '*'

    icinga2_salt: 42T2fYT7bIxj5v291ajAW6kK0njvNMww8eWinBdEO5vh02xwC5qaNMMx77qNkYFE

    icinga2_masters:
      master-1.icinga.local:

    icinga2_host_object:
      master-1.icinga.local:
        endpoint_name: master-1.icinga.local
        zone: master
        display_name: master-1.icinga.local
        import: generic-host
        address: '{{ ansible_default_ipv4.address }}'
        vars: |
          os = "Linux"
          dist = "{{ ansible_distribution }}"
          dist_ver = "{{ ansible_distribution_version }}"
          disks = {
            "disk /" = {
              disk_partitions = "/"
            }
          }
          services = [ "uptime", "memory" ]

  roles:
    - role: icinga2

многомастеров

---
- host: icinga-master
  vars:
    icinga2_ido:
      user: icinga2_ido
      password: icinga2_ido
      host: localhost
      cleanup:
        acknowledgements_age: 72h

    icinga2_api:
      user:
        icinga2:
          password: S0mh1TuFJI
          permissions: '*'

    icinga2_salt: 42T2fYT7bIxj5v291ajAW6kK0njvNMww8eWinBdEO5vh02xwC5qaNMMx77qNkYFE

    icinga2_ha: true

    icinga2_masters:
      master-1.icinga.local:
        # type: primary
        ip: 192.168.130.20
        port: 5665
      master-2.icinga.local:
        ip: 192.168.130.21

  roles:
    - role: icinga2

Icinga спутник

простой

---
- host: icinga-master
  vars:
    icinga2_mode: satellite

    icinga2_salt: 42T2fYT7bIxj5v291ajAW6kK0njvNMww8eWinBdEO5vh02xwC5qaNMMx77qNkYFE

    icinga2_masters:
      master-1.icinga.local:

    icinga2_host_object:

      satellite-1.icinga.local:
        endpoint_name: satellite-1.icinga.local
        zone: "{{ icinga2_satellite_zone }}"
        display_name: satellite-1.icinga.local
        import: generic-host
        address: '{{ ansible_default_ipv4.address }}'
        vars: |
          os = "Linux"
          dist = "{{ ansible_distribution }}"
          dist_ver = "{{ ansible_distribution_version }}"
          satellite = true
          disks = {
            "disk /" = {
              disk_partitions = "/"
            }
          }
          services = [ "uptime" ]

  roles:
    - role: icinga2

многоспутников с зонами

---
- host: icinga-master
  vars:
    icinga2_mode: satellite

    icinga2_salt: 42T2fYT7bIxj5v291ajAW6kK0njvNMww8eWinBdEO5vh02xwC5qaNMMx77qNkYFE

    icinga2_masters:
      master-1.icinga.local:

    icinga2_satellites:
      zone1:
        satellite-1.icinga.local:
          ip: 192.168.130.30
        satellite-2.icinga.local:
          ip: 192.168.130.31

  roles:
    - role: icinga2

тесты

для тестирования

tox -e py38-ansible29 -- molecule

tox -e py38-ansible29 -- molecule -s icinga2-satellite

Устранение неисправностей и известные проблемы

API

export CURL_OPTS="--silent --insecure"
export ICINGA_CREDS="--user icinga2:S0mh1TuFJI"
export ICINGA_API_URL="https://master-1.icinga.local:5665/v1"
$ curl ${ICINGA_CREDS} ${CURL_OPTS} --header 'Accept: application/json' ${ICINGA_API_URL}/status/ApiListener | jq --raw-output ".results[].status.api.zones"
$ curl ${ICINGA_CREDS} ${CURL_OPTS} --header 'Accept: application/json' ${ICINGA_API_URL}/status/CIB | jq --raw-output '.results[].status.uptime'
$ curl ${ICINGA_CREDS} ${CURL_OPTS} --header 'Accept: application/json' ${ICINGA_API_URL}/status/ApiListener | jq --raw-output ".results[].status.api"
$ curl ${ICINGA_CREDS} ${CURL_OPTS} ${ICINGA_API_URL}/objects/hosts | jq
$ curl ${ICINGA_CREDS} ${CURL_OPTS} --header 'Accept: application/json' --header 'X-HTTP-Method-Override: GET' --request POST --data '{ "attrs": [ "name" ], "type": "Host", "filter": "host.name==\"master-1.icinga.local\"" }' ${ICINGA_API_URL}/objects/hosts

Лицензия

BSD 2-clause

О проекте

ansible role for handling icinga2 as master or satellite

Установить
ansible-galaxy install bodsch/ansible-icinga2
Лицензия
bsd-2-clause
Загрузки
1484
Владелец
ex-developer (c, c++, php), ex-system administrator / engineer, keep-it-simple, monitoring, automation, system architect