File tree 8 files changed +213
-0
lines changed
icinga2-ansible-add-zones
8 files changed +213
-0
lines changed Original file line number Diff line number Diff line change
1
+ ---
2
+ # defaults file for icinga2-ansible-add-zones
3
+
4
+ icinga2_zones_dir : " /etc/icinga2/zones.d/"
5
+ icinga_master_zone : " master"
6
+ icinga_merged_zones : ' {{icinga_zones|combine({ icinga_master_zone : {} })}}'
Original file line number Diff line number Diff line change
1
+ ---
2
+ # handlers file for icinga2-ansible-add-zones
3
+
4
+ - name : restart icinga2
5
+ service : name=icinga2
6
+ state=restarted
7
+ enabled=yes
8
+
9
+ - name : reload icinga2
10
+ service : name=icinga2
11
+ state=reloaded
12
+ enabled=yes
Original file line number Diff line number Diff line change
1
+ ---
2
+ galaxy_info :
3
+ author : your name
4
+ description :
5
+ company : your company (optional)
6
+ # Some suggested licenses:
7
+ # - BSD (default)
8
+ # - MIT
9
+ # - GPLv2
10
+ # - GPLv3
11
+ # - Apache
12
+ # - CC-BY
13
+ license : license (GPLv2, CC-BY, etc)
14
+ min_ansible_version : 1.2
15
+ #
16
+ # Below are all platforms currently available. Just uncomment
17
+ # the ones that apply to your role. If you don't see your
18
+ # platform on this list, let us know and we'll get it added!
19
+ #
20
+ platforms :
21
+ - name : EL
22
+ versions :
23
+ # - all
24
+ # - 5
25
+ - 6
26
+ - 7
27
+ # - name: GenericUNIX
28
+ # versions:
29
+ # - all
30
+ # - any
31
+ - name : Fedora
32
+ versions :
33
+ # - all
34
+ # - 16
35
+ # - 17
36
+ # - 18
37
+ # - 19
38
+ - 20
39
+ - 21
40
+ - 22
41
+ - 23
42
+ - 24
43
+ # - name: opensuse
44
+ # versions:
45
+ # - all
46
+ # - 12.1
47
+ # - 12.2
48
+ # - 12.3
49
+ # - 13.1
50
+ # - 13.2
51
+ # - name: Amazon
52
+ # versions:
53
+ # - all
54
+ # - 2013.03
55
+ # - 2013.09
56
+ # - name: GenericBSD
57
+ # versions:
58
+ # - all
59
+ # - any
60
+ # - name: FreeBSD
61
+ # versions:
62
+ # - all
63
+ # - 8.0
64
+ # - 8.1
65
+ # - 8.2
66
+ # - 8.3
67
+ # - 8.4
68
+ # - 9.0
69
+ # - 9.1
70
+ # - 9.1
71
+ # - 9.2
72
+ # - name: Ubuntu
73
+ # versions:
74
+ # - all
75
+ # - lucid
76
+ # - maverick
77
+ # - natty
78
+ # - oneiric
79
+ # - precise
80
+ # - quantal
81
+ # - raring
82
+ # - saucy
83
+ # - trusty
84
+ # - name: SLES
85
+ # versions:
86
+ # - all
87
+ # - 10SP3
88
+ # - 10SP4
89
+ # - 11
90
+ # - 11SP1
91
+ # - 11SP2
92
+ # - 11SP3
93
+ # - name: GenericLinux
94
+ # versions:
95
+ # - all
96
+ # - any
97
+ # - name: Debian
98
+ # versions:
99
+ # - all
100
+ # - etch
101
+ # - lenny
102
+ # - squeeze
103
+ # - wheezy
104
+ #
105
+ # Below are all categories currently available. Just as with
106
+ # the platforms above, uncomment those that apply to your role.
107
+ #
108
+ # categories:
109
+ # - cloud
110
+ # - cloud:ec2
111
+ # - cloud:gce
112
+ # - cloud:rax
113
+ # - clustering
114
+ # - database
115
+ # - database:nosql
116
+ # - database:sql
117
+ # - development
118
+ # - monitoring
119
+ # - networking
120
+ # - packaging
121
+ # - system
122
+ # - web
123
+ dependencies : []
124
+ # List your role dependencies here, one per line. Only
125
+ # dependencies available via galaxy should be listed here.
126
+ # Be sure to remove the '[]' above if you add dependencies
127
+ # to this list.
128
+
Original file line number Diff line number Diff line change
1
+ ---
2
+ - name : Copy Endpoint Zone Definitions
3
+ template : src=endpoint_zones.j2
4
+ dest={{ icinga2_zones_dir }}/{{ hostvars[item]['ansible_fqdn'] }}.conf
5
+ owner=icinga
6
+ group=icinga
7
+ mode=0640
8
+ with_items : " {{ groups['all'] }}"
9
+ notify :
10
+ - reload icinga2
11
+
12
+ - name : Copy Zone Definitions
13
+ template :
14
+ src : zone.j2
15
+ dest : " {{ icinga2_zones_dir }}/{{ item }}.conf"
16
+ owner : icinga
17
+ group : icinga
18
+ mode : 0640
19
+ with_items : " {{ icinga_merged_zones }}"
20
+ notify :
21
+ - reload icinga2
22
+
23
+ - name : Copy zones.conf
24
+ template :
25
+ src : zones.conf
26
+ dest : /etc/icinga2/zones.conf
27
+ owner : icinga
28
+ group : icinga
29
+ mode : 0640
Original file line number Diff line number Diff line change
1
+ ---
2
+ # tasks file for icinga2-ansible-add-zones
3
+
4
+ - name : Ensure existance of {{ icinga2_zones_dir }}
5
+ file :
6
+ name : " {{ icinga2_zones_dir }}"
7
+ state : directory
8
+ owner : icinga
9
+ group : icinga
10
+
11
+ - include : icinga2_add_zones.yml
Original file line number Diff line number Diff line change
1
+ object Endpoint "{{ hostvars[item] ['ansible_fqdn'] }}" {
2
+ host = "{{ hostvars[item] ['ansible_fqdn'] }}"
3
+ }
4
+
5
+ {% if 'icinga_zone' in hostvars [item ] %}
6
+ object Zone "{{ hostvars[item] ['ansible_fqdn'] }}" {
7
+ endpoints = [ "{{ hostvars[item] ['ansible_fqdn'] }}" ]
8
+ {% if 'icinga_zone' in hostvars [item ] %}
9
+ parent = "{{ hostvars[item] ['icinga_zone'] }}"
10
+ {% else %}
11
+ parent = "{{ icinga_master_zone }}"
12
+ {% endif %}
13
+ }
14
+ {% endif %}
Original file line number Diff line number Diff line change
1
+ object Zone "{{ item }}" {
2
+ {% if 'parent' in icinga_merged_zones [item ] %}
3
+ parent = "{{ icinga_merged_zones[item] .parent }}"
4
+ {% endif %}
5
+
6
+ endpoints = [
7
+ {% for host , params in hostvars .iteritems () %}
8
+ {% if item == icinga_master_zone and 'icinga_zone' not in params %}
9
+ "{{ host }}",
10
+ {% endif %}{% endfor %}
11
+ ]
12
+ }
Original file line number Diff line number Diff line change
1
+ include_recursive "zones.d"
You can’t perform that action at this time.
0 commit comments