icinga2
Ansible Роль: icinga2
Ansible роль для настройки мастера или спутника Icinga2.
Я сейчас в процессе переноса этой роли в коллекцию и поэтому больше не буду обрабатывать никаких вопросов или запросов на слияние здесь.
Тем не менее, я включу их в коллекцию!
Пожалуйста, проявите терпение, пока я завершу работу!
Требования и зависимости
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
– это мой Рабочий Конь, включает "последние новшества" и может быть полностью нестабильна!
Если вы хотите использовать что-то стабильное, пожалуйста, используйте Тегированную Версию!
Благодарности
- Michael Friedrich
- Nicolai Buchwitz
- Julien Tognazzi
- Carsten Köbke
- Jo. Fiedler
- и многие другие, которые сделали Icinga2 тем, чем он является
Пожалуйста, прочитайте следующую документацию для конфигурационных точек.
Документация
- Особенности
- Пользователи API
- группы
- правила применения
- время простоя
- команды проверки
- мастер
- спутник
- Резервное копирование и восстановление
Примеры
Полная тестовая настройка доступна в 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