blob: cb6a281533ef9ef3302ca7068cec7979105a3529 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
|
---
################################################################################
################################################################################
- name: Simple deploy
hosts: application
pre_tasks:
- name: Create targets
ansible.builtin.file:
path: '{{ item }}'
state: touch
modification_time: preserve
access_time: preserve
mode: '0644'
become: true
delegate_to: '{{ prometheus_target_host }}'
loop:
- /opt/simple_target1.yml
- /opt/simple_target2.yml
- /opt/simple_target3.yml
- /opt/simple_target4.yml
vars:
prometheus_target_host: prometheus
prometheus_target_exporter_defaults:
node_exporter:
path: /opt/simple_target1.yml
host: '{{ inventory_hostname }}'
blackbox_exporter:
path: /opt/simple_target2.yml
host: '{{ inventory_hostname }}_AA'
roles:
- role: kliwniloc.prometheus_target
prometheus_target_exporter:
- id: node_exporter
- { id: blackbox_exporter, host: test1 }
- { id: blackbox_exporter, host: test2 }
- { host: exporter_without_id, path: /opt/simple_target4.yml }
- role: kliwniloc.prometheus_target
prometheus_target_exporter:
- id: blackbox_exporter
path: /opt/simple_target3.yml
################################################################################
################################################################################
- name: Prefix deploy
hosts: application
pre_tasks:
- name: Create targets
ansible.builtin.file:
path: '{{ item.path }}'
state: '{{ item.state }}'
modification_time: preserve
access_time: preserve
mode: '0644'
become: true
delegate_to: '{{ prometheus_target_host }}'
loop:
- { state: touch, path: /opt/prefix_target1.yml }
- { state: touch, path: /opt/prefix_target2.yml }
- { state: directory, path: /opt/prefix}
- { state: touch, path: /opt/prefix/prefix_target3.yml }
vars:
prometheus_target_host: prometheus
prometheus_target_exporter_target_prefix: /opt/
prometheus_target_exporter_defaults:
node_exporter:
path: prefix_target1.yml
host: '{{ inventory_hostname }}'
blackbox_exporter:
path: prefix_target_not_exist.yml
host: '{{ inventory_hostname }}'
path_prefix: /opt/prefix/
roles:
- role: kliwniloc.prometheus_target
prometheus_target_exporter:
- id: node_exporter
- { id: node_exporter, path: /opt/prefix_target2.yml, path_prefix: '' }
- { id: blackbox_exporter, path: prefix_target3.yml }
################################################################################
################################################################################
- name: Deploy with hooks
hosts: application_group
pre_tasks:
- name: Create targets
ansible.builtin.file:
path: '{{ item }}'
state: touch
modification_time: preserve
access_time: preserve
mode: '0644'
become: true
delegate_to: '{{ prometheus_target_host }}'
loop:
- /opt/hook_target.yml
- /opt/hook2
vars:
prometheus_target_host: prometheus
prometheus_target_handler_command_enabled: true
prometheus_target_handler_command:
cmd: mkdir /opt/hook1 # Fails if run twice
prometheus_target_handler_command_run_once: true
prometheus_target_handler_shell_enabled: true
prometheus_target_handler_shell:
cmd: echo hello >> /opt/hook2
roles:
- role: kliwniloc.prometheus_target
prometheus_target_exporter:
- id: node_exporter
host: '{{ inventory_hostname }}'
path: /opt/hook_target.yml
################################################################################
################################################################################
- name: Deploy with lineinfile
hosts: application
pre_tasks:
- name: Create test user
ansible.builtin.user:
name: prometheus
become: true
delegate_to: '{{ prometheus_target_host }}'
- name: Create target
ansible.builtin.copy:
dest: /opt/lineinfile.yml
owner: prometheus
group: prometheus
mode: '0600'
force: false
# yamllint disable rule:indentation
content: |
- labels:
my: label
targets:
- existing:9100
# yamllint enable rule:indentation
become: true
delegate_to: '{{ prometheus_target_host }}'
vars:
prometheus_target_host: prometheus
prometheus_target_strategy_lineinfile_prefix: ' - '
prometheus_target_strategy_lineinfile_suffix: :9100
roles:
- role: kliwniloc.prometheus_target
prometheus_target_exporter:
- id: node_exporter
path: /opt/lineinfile.yml
host: '{{ inventory_hostname }}'
|