This commit is contained in:
ROTTLER Tamas 2023-06-10 22:57:03 +02:00
commit 3df7239eef
3 changed files with 72 additions and 0 deletions

6
handlers/main.yml Normal file
View File

@ -0,0 +1,6 @@
---
- name: reload icinga2
become: yes
service: name=icinga2 state=reloaded
# vim: set tabstop=2 shiftwidth=2 expandtab smarttab:

19
tasks/main.yml Normal file
View File

@ -0,0 +1,19 @@
---
- name: "list previous host configs"
shell: ls -1 /etc/icinga2/conf.d/ansible_routeros/ | sed -e 's/\.[^\.]*$//'
register: previous_hosts
changed_when: false
- name: "create conf file for each host"
template: src="host" dest="/etc/icinga2/conf.d/ansible_routeros/{{ item }}.conf"
with_items: "{{ hostlist }}"
notify:
- reload icinga2
- name: "remove stale hosts"
file: path="/etc/icinga2/conf.d/ansible_routeros/{{ item }}.conf" state=absent
with_items: "{{ previous_hosts.stdout_lines }}"
when: hostvars[item] is undefined
notify:
- reload icinga2

47
templates/host Normal file
View File

@ -0,0 +1,47 @@
# {{ ansible_managed }}
{% set c = icinga_contact_default %}
{% if icinga_contact is defined %}
{% set c = icinga_contact %}
{% endif %}
object Host "{{ hostvars[item].inventory_hostname }}" {
import "generic-host"
address = "{{ hostvars[item].ansible_host }}"
vars.os = "routeros"
vars.notification["mail"] = {
groups = [ {{ c }} ]
}
icon_image = "routeros.png"
icon_image_alt = "MikroTik RouterOS"
}
object Service "mikrotik" {
import "generic-service"
host_name = "{{ hostvars[item].inventory_hostname }}"
check_command = "mikrotik"
vars.snmpuser = "{{ hostvars[item].snmpuser }}"
vars.snmppasswd = "{{ hostvars[item].snmppasswd }}"
}
{% if 'check_ltebackup' in hostvars[item].group_names %}
object Service "ltebackup" {
import "generic-service"
host_name = "{{ hostvars[item].inventory_hostname }}"
check_command = "mikrotik_ltebackup"
vars.user = "{{ hostvars[item].apiuser }}"
vars.password = "{{ hostvars[item].apipasswd }}"
vars.ca = "{{ hostvars[item].apica }}"
}
{% endif %}
{% if hostvars[item].ov_backup_ip is defined %}
object Service "ping_ov_backup_ip" {
import "generic-service"
host_name = "{{ hostvars[item].inventory_hostname }}"
check_command = "ping"
vars.ping_address = "{{ hostvars[item].ov_backup_ip }}"
}
{% endif %}
# vim: set tabstop=4 shiftwidth=4 expandtab smarttab: