CoffeeITWorks.ansible_nagios4_server_config
Rollenname
Rolle, die Nagios konfiguriert und die Konfiguration von Nagios aus Git-Repositories synchronisiert. Diese Rolle ist vorbereitet und kompatibel mit anderen AnsibleCoffee Nagios Rollenerweiterungen, Thruk-Interface, PNP4Nagios usw.
Anforderungen
Es sind keine speziellen Anforderungen nötig, halten Sie einfach Ihr System aktuell. Bisher wurde es nur auf Ubuntu 14.04 getestet.
Unterstützung für Rollenverteilung
Ubuntu: in Ordnung
RedHat: Noch nicht bereit
Rollenvariablen
Siehe alle in defaults/main.yml
Fügen Sie zu Ihren host_vars oder group_vars hinzu:
Zusätzliche Nagios-Konfigurationsoptionen
Und fügen Sie zu readonly hinzu:
nagios_cgi_authorized_for_read_only: user1, user2
Oder ändern Sie die angegebenen Berechtigungen:
nagios_cgi_authorized_for_system_information: nagiosadmin
nagios_cgi_authorized_for_configuration_information: nagiosadmin
nagios_cgi_authorized_for_system_commands: nagiosadmin
nagios_cgi_authorized_for_all_services: nagiosadmin,user1,user2
nagios_cgi_authorized_for_all_hosts: nagiosadmin,user1,user2
nagios_cgi_authorized_for_all_service_commands: nagiosadmin
nagios_cgi_authorized_for_all_host_commands: nagiosadmin
Deaktivieren Sie Benachrichtigungen für Hosts, die nicht benötigt werden, indem Sie host_vars/hostname verwenden.
nagios_config_enable_notifications: 0
Funktion zum Klonen von Repositories
Wenn Sie möchten, können Sie ein Git-Repository einrichten, um die Konfiguration im angegebenen Unterverzeichnis zu klonen. Diese Funktion ist ein hervorragendes Merkmal dieser Rolle. Sie können beispielsweise mehrere Repositories haben:
- Netzwerk-Repository, Verzeichnis: "net"
- Server-Repository, Verzeichnis: "servers"
- Serverservices-Repository, Verzeichnis: "services"
Sie können dann nur einige dieser Repositories wiederverwenden oder zusätzliche unterschiedliche Konfigurationen für diese Variable auf anderen Hosts hinzufügen, zum Beispiel:
- Remote-Host ohne Dienstüberprüfung
- Testserver mit Test-Repository, Verzeichnis: "testing" und all den vorherigen Repos.
Sie können dann das Tag: "config_nagios" in Ihrer Ansible-Playbook-Aufgabe verwenden, um alle Ihre Server jedes Mal zu synchronisieren, wenn Sie die Repositories aktualisieren.
Noch besser: Verwenden Sie etwas wie Jenkins Githook, um automatisch die Aufgabe auszuführen, die das Tag: config_nagios aufruft, und alle Ihre Server werden jedes Mal automatisch synchronisiert, wenn Sie etwas Neues in Ihre Nagios-Repositories mit neuer Konfiguration pushen.
Beispiel:
nagios_config_cfg_dirs_git:
- { repo: "http://server/user/repo.git", version: "master", dir: "repo"}
- { repo: "http://users:password@server/user/repo2.git", version: "master", dir: "repo2"}
Sie können auch eine andere Variable mit SSH-Schlüssel verwenden:
Zuerst das Verzeichnis für Schlüssel auf dem entfernten Server für den Ansible-Remote-Benutzer erstellen:
cd
mkdir keys
Dann die Schlüssel generieren und als nagios_key_rsa speichern:
nagios_config_cfg_dirs_git_rsa:
- { repo: "git@server:user/repo.git", version: "master", dir: "repo"}
Wenn die Variable nagios_config_cfg_dirs_git_rsa existiert, sucht die Rolle nach /home/remoteuser/keys/nagios_key_rsa, um ihn zu verwenden.
Abhängigkeiten
Hier sollte eine Liste anderer Rollen, die auf Galaxy gehostet werden, sowie Details zu Parametern, die für andere Rollen festgelegt werden müssen, oder Variablen, die von anderen Rollen verwendet werden, hinzugefügt werden.
Beispiel-Playbook
Vollständige Liste der Rollen:
- name: Nagios-Einstellungen anwenden
hosts: nagios4_servers
become: yes
become_method: sudo
roles:
- { role: nagios4_server, tags: ["install", "nagios4_server_all", "nagios4_server"] }
- { role: nagios4_server_plugins, tags: ["install", "nagios4_server_all", "nagios4_server_plugins"] }
- { role: nagios4_server_pnp4nagios, tags: ["install", "nagios4_server_all", "nagios4_server_pnp4nagios"] }
- { role: nagios4_server_snmptrap, tags: ["install", "nagios4_server_all", "nagios4_server_snmptrap"] }
- { role: ANXS.mysql, tags: ["install", "nagios4_server_all", "nagios4_server_thruk", "ANXS.mysql"] }
- { role: nagios4_server_thruk, tags: ["install", "nagios4_server_all", "nagios4_server_thruk"] }
- { role: postfix_client, tags: ["install", "nagios4_server_all", "postfix_client"] }
# Zusätzliche Tags: Rolle/Tag
# nagios4_server - config_nagios
# nagios4_server - nagios4_server_main_config
# nagios4_server - config_nagios_cron
# nagios4_server_plugins - config_nagios_plugins
# nagios4_server_plugins - test_nagios_plugins
# nagios4_server_pnp4nagios - test_nagios_pnp4nagios
# nagios4_server_thruk - config_nagios_thruk_cron
# nagios4_server_thruk - test_nagios_thruk
# nagios4_server_thruk_git - config_nagios_thruk_git_cron
Tags:
nagios4_server_main_config
nagios_config
config_nagios_cron
Hinter Firewalls
Für Clients, die auf gefilterte Hosts zugreifen, müssen Sie diese Ports öffnen:
TCP:
- Ping: host-alive
- 5666: nrpe (Windows und Linux)
- 1248: nsclient (nur Windows)
- 9666: für benutzerdefiniertes nrpe, wenn 5666 verwendet wird
- 22: SSH-Prüfungen
- 80,443: HTTP, HTTPS-Prüfungen
UDP:
- 161: SNMP-Prüfungen
Lizenz
BSD
Autoreninformationen
Hauptautoren: Diego Daguerre, Pablo Estigarribia.
Website: https://github.com/ansiblecoffee
Configure nagios, prepared to be compatible with thruk, pnp4nagios, nagios_plugins. Has feature to clone nagios config from git repos.
ansible-galaxy install CoffeeITWorks.ansible_nagios4_server_config