44 Commits
0.1.1 ... 0.1.5

Author SHA1 Message Date
f4325bad78 meta: bump galaxy version to 0.1.5, require community.docker@^4.0.0 2025-02-12 21:56:30 +01:00
37cf8c7c69 update(vmtsdb): bump version to 1.111.0 2025-02-11 17:16:58 +01:00
d24ec49b36 update(vmalert): bump version to 1.111.0 2025-02-11 17:16:41 +01:00
9eca35af09 update(vmagent): bump version to 1.111.0 2025-02-11 17:16:22 +01:00
1ebb852608 update(grafana): bump version to 11.5.1 2025-02-03 19:45:31 +01:00
d3c92fc0e4 update(grafana): bump version to 11.5.0 2025-01-29 23:06:22 +01:00
0fd6ee4ba6 update(vmtsdb): bump version to 1.110.0 2025-01-27 15:49:15 +01:00
74282776b1 update(vmalert): bump version to 1.110.0 2025-01-27 15:48:28 +01:00
3b20652c51 update(vmagent): bump version to 1.110.0 2025-01-27 15:47:17 +01:00
c5df5a47b8 update(alertmanager): bump version to 0.28.0 2025-01-24 21:40:24 +01:00
74206fbb87 update(vmtsdb): bump version to 1.109.1 2025-01-17 16:26:03 +01:00
21ea611513 update(vmalert): bump version to 1.109.1 2025-01-17 16:25:26 +01:00
8ce351121a update(vmagent): bump version to 1.109.1 2025-01-17 16:25:03 +01:00
d758c1abcb update(vmtsdb): bump version to 1.108.1 2024-12-19 21:21:17 +01:00
5d70700332 update(vmalert): bump version to 1.108.1 2024-12-19 21:20:20 +01:00
60bb90126b update(vmagent): bump version to 1.108.1 2024-12-19 21:19:55 +01:00
ac26c4053b meta: bump galaxy version to 0.1.4 2024-12-07 20:23:46 +01:00
a8e931177f update(vmtsdb): bump version to 1.107.0 2024-12-07 20:22:16 +01:00
9afda06a6c update(vmalert): bump version to 1.107.0 2024-12-07 20:21:33 +01:00
2af7c24b5a update(vmagent): bump version to 1.107.0 2024-12-07 20:21:10 +01:00
c9bcb1c1d2 update(grafana): bump version to 11.4.0 2024-12-06 15:57:17 +01:00
7b7a124daa update(grafana): bump version to 11.3.2 2024-12-04 22:39:51 +01:00
0f504175a7 update(grafana): bump version to 11.3.1 2024-11-20 18:03:50 +01:00
623fafde77 docs: update broken README link 2024-11-08 17:28:24 +01:00
d6a395034d chore(matrix_alertmanager): add role metadata 2024-11-08 17:27:36 +01:00
81bed762cc chore(postgres_exporter): add role metadata 2024-11-08 17:26:07 +01:00
4d167d901d chore(grafana): add role metadata 2024-11-08 17:24:20 +01:00
815784757e chore(vmtsdb): add role metadata 2024-11-08 17:22:21 +01:00
6b447b1478 chore(vmalert): add role metadata 2024-11-08 17:21:18 +01:00
2da3caab8e meta: bump galaxy version to 0.1.3 2024-11-08 17:10:39 +01:00
8ffc272ff6 update(cadvisor): bump version to 0.51.0 2024-11-08 17:10:23 +01:00
af80d1eed8 update(postgres_exporter): bump version to 0.15.0 2024-11-08 17:07:40 +01:00
533fbd1630 update(vmtsdb): bump version to 1.106.0 2024-11-08 17:02:06 +01:00
cef1d292b7 update(vmalert): bump version to 1.106.0 2024-11-08 17:00:59 +01:00
838f168e58 update(vmagent): bump version to 1.106.0 2024-11-08 17:00:13 +01:00
492e134f4a refactor(grafana): split defaults 2024-11-05 20:07:07 +01:00
2183832a3c update(grafana): bump version to 11.3.0 2024-11-05 20:03:25 +01:00
02ad9e471d refactor(alertmanager): move config to own defaults file 2024-10-17 16:17:39 +02:00
fb0915841d refactor(alertmanager): add state=absent support 2024-10-17 11:49:58 +02:00
d8a3b0ab75 meta: bump collection version to 0.1.2 2024-10-17 11:49:57 +02:00
adfba06008 update(cadvisor): bump version to 0.50.0 2024-10-13 17:02:35 +02:00
190f1480d2 feat(cadvisor): add state=absent support to role, move to fully qualified module names, cleanup 2024-10-13 17:02:35 +02:00
37a6e040fd chore(vmagent): add comparison policy for docker containers 2024-10-12 21:08:39 +02:00
fe29c97c53 chore(vmagent): allow setting container network mode 2024-10-11 21:03:59 +02:00
34 changed files with 338 additions and 170 deletions

View File

@ -11,10 +11,13 @@ metrics or alerting.
alertmanager for receiving alerts from prometheus and routing them alertmanager for receiving alerts from prometheus and routing them
to the correct configured receivers. to the correct configured receivers.
- [`cadvisor`](roles/cadvisor/README.md): Run and configure cAdvisor, googles'
container performance and resource usage collection and aggregation daemon.
- [`grafana`](roles/grafana/README.md): a popular visualization and - [`grafana`](roles/grafana/README.md): a popular visualization and
dashboard creation tool able to use various datasources. dashboard creation tool able to use various datasources.
- [`matrix-alertmanager`](roles/matrix-alertmanager/README.md): An alert- - [`matrix_alertmanager`](roles/matrix_alertmanager/README.md): An alert-
manager receiver which posts alerts to a configured matrix channel manager receiver which posts alerts to a configured matrix channel
using alertmanagers' webhooks. using alertmanagers' webhooks.

View File

@ -1,12 +1,12 @@
namespace: finallycoffee namespace: finallycoffee
name: observability name: observability
version: 0.1.1 version: 0.1.5
readme: README.md readme: README.md
authors: authors:
- transcaffeine <transcaffeine@finally.coffee> - transcaffeine <transcaffeine@finally.coffee>
description: Various ansible roles useful for automating infrastructure description: Various ansible roles useful for automating infrastructure
dependencies: dependencies:
"community.docker": "^3.0.0" "community.docker": "^4.0.0"
license_file: LICENSE.md license_file: LICENSE.md
build_ignore: build_ignore:
- '*.tar.gz' - '*.tar.gz'
@ -18,3 +18,4 @@ tags:
- prometheus - prometheus
- victoriametrics - victoriametrics
- grafana - grafana
- alertmanager

View File

@ -0,0 +1,8 @@
---
alertmanager_config_global: {}
alertmanager_config_route: {}
alertmanager_config_receivers: []
alertmanager_config:
global: "{{ alertmanager_config_global }}"
route: "{{ alertmanager_config_route }}"
receivers: "{{ alertmanager_config_receivers }}"

View File

@ -1,11 +1,4 @@
--- ---
alertmanager_user: alertmanager
alertmanager_version: 0.27.0
alertmanager_base_path: /opt/alertmanager
alertmanager_config_path: "{{ alertmanager_base_path }}/config"
alertmanager_config_file: "{{ alertmanager_config_path }}/alertmanager.yml"
alertmanager_data_path: "{{ alertmanager_base_path }}/data"
alertmanager_container_name: alertmanager alertmanager_container_name: alertmanager
alertmanager_container_image_name: alertmanager alertmanager_container_image_name: alertmanager
alertmanager_container_image_namespace: prometheus/ alertmanager_container_image_namespace: prometheus/
@ -22,7 +15,7 @@ alertmanager_container_image_reference: >-
alertmanager_container_image_repository + ':' alertmanager_container_image_repository + ':'
+ (alertmanager_container_image_tag | default('v' + alertmanager_version)) + (alertmanager_container_image_tag | default('v' + alertmanager_version))
}} }}
alertmanager_container_image_source: pull
alertmanager_container_image_force_pull: "{{ alertmanager_container_image_tag is defined }}" alertmanager_container_image_force_pull: "{{ alertmanager_container_image_tag is defined }}"
alertmanager_container_default_volumes: alertmanager_container_default_volumes:
@ -32,8 +25,5 @@ alertmanager_container_volumes: >-
{{ alertmanager_container_default_volumes {{ alertmanager_container_default_volumes
+ alertmanager_container_extra_volumes | default([]) }} + alertmanager_container_extra_volumes | default([]) }}
alertmanager_container_restart_policy: "unless-stopped" alertmanager_container_restart_policy: "unless-stopped"
alertmanager_container_state: >-2
alertmanager_config: {{ (alertmanager_state == 'present') | ternary('started', 'absent') }}
global: {}
route: {}
receivers: []

View File

@ -0,0 +1,10 @@
---
alertmanager_user: alertmanager
alertmanager_version: "0.28.0"
alertmanager_state: present
alertmanager_deployment_method: docker
alertmanager_base_path: /opt/alertmanager
alertmanager_config_path: "{{ alertmanager_base_path }}/config"
alertmanager_config_file: "{{ alertmanager_config_path }}/alertmanager.yml"
alertmanager_data_path: "{{ alertmanager_base_path }}/data"

View File

@ -1,8 +1,8 @@
--- ---
- name: Ensure alertmanager is restarted - name: Ensure alertmanager is restarted
community.docker.docker_container: community.docker.docker_container:
name: "{{ alertmanager_container_name }}" name: "{{ alertmanager_container_name }}"
state: started state: "{{ alertmanager_container_state }}"
restart: true restart: true
listen: restart-alertmanager listen: restart-alertmanager
when: alertmanager_deployment_method == 'docker'

View File

@ -0,0 +1,10 @@
---
allow_duplicates: true
dependencies: []
galaxy_info:
role_name: alertmanager
description: Deploy and configure prometheus alertmanager
galaxy_tags:
- prometheus
- alertmanager
- observability

View File

@ -0,0 +1,21 @@
---
- name: Ensure container image is {{ alertmanager_state }} on host
community.docker.docker_image:
name: "{{ alertmanager_container_image_reference }}"
state: "{{ alertmanager_state }}"
source: "{{ alertmanager_container_image_source }}"
force_source: "{{ alertmanager_container_image_force_pull | bool }}"
- name: Ensure container '{{ alertmanager_container_name }}' is {{ alertmanager_container_state }}
community.docker.docker_container:
name: "{{ alertmanager_container_name }}"
image: "{{ alertmanager_container_image_reference }}"
env: "{{ alertmanager_container_env | default(omit) }}"
user: "{{ alertmanager_user_info.uid | default(alertmanager_user) }}"
ports: "{{ alertmanager_container_ports | default(omit) }}"
volumes: "{{ alertmanager_container_volumes | default(omit) }}"
networks: "{{ alertmanager_container_networks | default(omit) }}"
purge_networks: "{{ alertmanager_container_purge_networks | default(omit) }}"
etc_hosts: "{{ alertmanager_container_etc_hosts | default(omit) }}"
restart_policy: "{{ alertmanager_container_restart_policy }}"
state: "{{ alertmanager_container_state }}"

View File

@ -1,16 +1,29 @@
--- ---
- name: Ensure state is valid
ansible.builtin.fail:
msg: >-2
Invalid state '{{ alertmanager_state }}'! Valid
states are {{ alertmanager_states | join(', ') }}.
when: alertmanager_state not in alertmanager_states
- name: Ensure alertmanager user '{{ alertmanager_user }}' exists - name: Ensure deployment method is valid
ansible.builtin.fail:
msg: >-2
Invalid deployment method {{ alertmanager_deployment_method }}!
Supported deployment methods are {{ alertmanager_deployment_methods | join(', ') }}.
when: alertmanager_deployment_method not in alertmanager_deployment_methods
- name: Ensure alertmanager user '{{ alertmanager_user }}' is {{ alertmanager_state }}
ansible.builtin.user: ansible.builtin.user:
name: "{{ alertmanager_user }}" name: "{{ alertmanager_user }}"
state: present state: "{{ alertmanager_state }}"
system: true system: true
register: alertmanager_user_info register: alertmanager_user_info
- name: Ensure mounts are created - name: Ensure mounts are {{ alertmanager_state }}
ansible.builtin.file: ansible.builtin.file:
dest: "{{ item.path }}" dest: "{{ item.path }}"
state: directory state: "{{ (alertmanager_state == 'present') | ternary('directory', 'absent') }}"
owner: "{{ item.owner | default(alertmanager_user_info.uid | default(alertmanager_user)) }}" owner: "{{ item.owner | default(alertmanager_user_info.uid | default(alertmanager_user)) }}"
group: "{{ item.owner | default(alertmanager_user_info.group | default(alertmanager_user)) }}" group: "{{ item.owner | default(alertmanager_user_info.group | default(alertmanager_user)) }}"
mode: "{{ item.mode | default('0755') }}" mode: "{{ item.mode | default('0755') }}"
@ -24,28 +37,12 @@
dest: "{{ alertmanager_config_file }}" dest: "{{ alertmanager_config_file }}"
content: "{{ alertmanager_config | to_nice_yaml }}" content: "{{ alertmanager_config | to_nice_yaml }}"
owner: "{{ alertmanager_user_info.uid | default(alertmanager_user) }}" owner: "{{ alertmanager_user_info.uid | default(alertmanager_user) }}"
owner: "{{ alertmanager_user_info.uid | default(alertmanager_user) }}" group: "{{ alertmanager_user_info.group | default(alertmanager_user) }}"
mode: "0640" mode: "0640"
when: alertmanager_state == 'present'
notify: notify:
- restart-alertmanager - restart-alertmanager
- name: Ensure container image is present on host - name: Deploy alertmanager using {{ alertmanager_deployment_method }}
community.docker.docker_image: ansible.builtin.include_tasks:
name: "{{ alertmanager_container_image_reference }}" file: "deploy-{{ alertmanager_deployment_method }}.yml"
state: present
source: pull
force_source: "{{ alertmanager_container_image_force_pull | bool }}"
- name: Ensure container '{{ alertmanager_container_name }}' is running
community.docker.docker_container:
name: "{{ alertmanager_container_name }}"
image: "{{ alertmanager_container_image_reference }}"
env: "{{ alertmanager_container_env | default(omit) }}"
user: "{{ alertmanager_user_info.uid | default(alertmanager_user) }}"
ports: "{{ alertmanager_container_ports | default(omit) }}"
volumes: "{{ alertmanager_container_volumes | default(omit) }}"
networks: "{{ alertmanager_container_networks | default(omit) }}"
purge_networks: "{{ alertmanager_container_purge_networks | default(omit) }}"
etc_hosts: "{{ alertmanager_container_etc_hosts | default(omit) }}"
restart_policy: "{{ alertmanager_container_restart_policy }}"
state: started

View File

@ -0,0 +1,6 @@
---
alertmanager_states:
- present
- absent
alertmanager_deployment_methods:
- docker

View File

@ -1,52 +0,0 @@
---
cadvisor_version: 0.49.1
cadvisor_container_name: cadvisor
cadvisor_container_image_name: gcr.io/cadvisor/cadvisor
cadvisor_container_image_tag: ~
cadvisor_container_image_ref: >-
{{ cadvisor_container_image_name }}:{{ cadvisor_container_image_tag | default('v' + cadvisor_version, True) }}
cadvisor_container_volumes: >-
{{ cadvisor_container_base_volumes + cadvisor_container_extra_volumes | default([], True) }}
cadvisor_container_extra_volumes: ~
cadvisor_container_env: ~
cadvisor_container_labels: "{{ cadvisor_container_base_labels | combine(cadvisor_container_extra_labels) }}"
cadvisor_container_extra_labels: {}
cadvisor_container_ports: ~
cadvisor_container_networks: ~
cadvisor_container_etc_hosts: ~
cadvisor_container_devices: [ "/dev/kmsg:/dev/kmsg:rwm" ]
cadvisor_container_privileged: yes
cadvisor_container_pid_mode: "host"
cadvisor_container_userns_mode: "host"
cadvisor_container_capabilities: ~
cadvisor_container_restart_policy: unless-stopped
cadvisor_container_command: >-2
{{ ["--docker_only=false"]
+ (["--disable_metrics=" + cadvisor_disabled_metrics | join( ',' )]
if cadvisor_disabled_metrics | default(false, True) else [])
+ (["--enable_metrics=" + cadvisor_force_enable_metrics | join( ',' )]
if cadvisor_force_enable_metrics | default(false, True) else [])
}}
cadvisor_container_base_labels:
version: "{{ cadvisor_version }}"
cadvisor_container_base_volumes:
- "/:/rootfs:ro"
- "/var/run:/var/run:ro"
- "/sys:/sys:ro"
- "/var/lib/docker/:/var/lib/docker:ro"
- "/dev/disk/:/dev/disk:ro"
cadvisor_disabled_metrics:
- advtcp
- cpu_topology
- cpuset
- hugetlb
- memory_numa
- process
- referenced_memory
- resctrl
- sched
- tcp
- udp
cadvisor_force_enable_metrics: []

View File

@ -0,0 +1,56 @@
---
cadvisor_container_image_registry: gcr.io
cadvisor_container_image_namespace: cadvisor
cadvisor_container_image_name: cadvisor
cadvisor_container_image: >-2
{{
[
cadvisor_container_image_registry,
cadvisor_container_image_namespace,
cadvisor_container_image_name,
] | flatten | join('/')
}}
cadvisor_container_image_tag: ~
cadvisor_container_image_ref: >-2
{{ cadvisor_container_image }}:{{ cadvisor_container_image_tag | default('v' + cadvisor_version, true) }}
cadvisor_container_image_source: pull
cadvisor_container_image_force_source: >-2
{{ cadvisor_container_image_tag | default(false, true) | bool }}
cadvisor_container_state: >-2
{{ (cadvisor_state == 'present') | ternary('started', 'absent') }}
cadvisor_container_name: cadvisor
cadvisor_container_volumes: >-2
{{ cadvisor_container_base_volumes + cadvisor_container_extra_volumes | default([], true) }}
cadvisor_container_extra_volumes: ~
cadvisor_container_env: ~
cadvisor_container_labels: >-2
{{ cadvisor_container_base_labels | combine(cadvisor_container_extra_labels) }}
cadvisor_container_extra_labels: {}
cadvisor_container_ports: ~
cadvisor_container_networks: ~
cadvisor_container_etc_hosts: ~
cadvisor_container_devices:
- "/dev/kmsg:/dev/kmsg:rwm"
cadvisor_container_privileged: true
cadvisor_container_pid_mode: "host"
cadvisor_container_userns_mode: "host"
cadvisor_container_capabilities: ~
cadvisor_container_restart_policy: "unless-stopped"
cadvisor_container_command: >-2
{{ ["--docker_only=false"]
+ (["--disable_metrics=" + cadvisor_disabled_metrics | join( ',' )]
if cadvisor_disabled_metrics | default(false, true) else [])
+ (["--enable_metrics=" + cadvisor_force_enable_metrics | join( ',' )]
if cadvisor_force_enable_metrics | default(false, true) else [])
}}
cadvisor_container_base_labels:
version: "{{ cadvisor_version }}"
cadvisor_container_base_volumes:
- "/:/rootfs:ro"
- "/var/run:/var/run:ro"
- "/sys:/sys:ro"
- "/var/lib/docker/:/var/lib/docker:ro"
- "/dev/disk/:/dev/disk:ro"

View File

@ -0,0 +1,18 @@
---
cadvisor_version: "0.51.0"
cadvisor_state: present
cadvisor_deployment_method: docker
cadvisor_disabled_metrics:
- advtcp
- cpu_topology
- cpuset
- hugetlb
- memory_numa
- process
- referenced_memory
- resctrl
- sched
- tcp
- udp
cadvisor_force_enable_metrics: []

View File

@ -0,0 +1,11 @@
---
allow_duplicates: true
dependencies: []
galaxy_info:
role_name: cadvisor
description: Deploy cadvisor (Container Advisor), a container performance and resource usage aggregation daemon
galaxy_tags:
- cadvisor
- observability
- container
- docker

View File

@ -0,0 +1,25 @@
---
- name: Ensure cadvisor container image '{{ cadvisor_container_image_ref }}' is {{ cadvisor_state }}
community.docker.docker_image:
name: "{{ cadvisor_container_image_ref }}"
state: "{{ cadvisor_state }}"
source: "{{ cadvisor_container_image_source }}"
force_source: "{{ cadvisor_container_image_force_source }}"
- name: Ensure cadvisor container '{{ cadvisor_container_name }}' is {{ cadvisor_container_state }}
community.docker.docker_container:
name: "{{ cadvisor_container_name }}"
image: "{{ cadvisor_container_image_ref }}"
env: "{{ cadvisor_container_env | default(omit, true) }}"
ports: "{{ cadvisor_container_ports | default(omit, true) }}"
labels: "{{ cadvisor_container_labels }}"
devices: "{{ cadvisor_container_devices }}"
volumes: "{{ cadvisor_container_volumes }}"
networks: "{{ cadvisor_container_networks | default(omit, true) }}"
etc_hosts: "{{ cadvisor_container_etc_hosts | default(omit, true) }}"
privileged: "{{ cadvisor_container_privileged }}"
command: "{{ cadvisor_container_command }}"
pid_mode: "{{ cadvisor_container_pid_mode | default(omit, true) }}"
userns_mode: "{{ cadvisor_container_userns_mode | default(omit, true) }}"
restart_policy: "{{ cadvisor_container_restart_policy }}"
state: "{{ cadvisor_container_state }}"

View File

@ -1,26 +1,18 @@
--- ---
- name: Ensure state is valid
ansible.builtin.fail:
msg: >-2
Unknown state '{{ cadvisor_state }}'! Supported
states are: {{ cadvisor_states | join(', ') }}.
when: cadvisor_state not in cadvisor_states
- name: Ensure container image is present - name: Ensure deployment method is valid
docker_image: ansible.builtin.fail:
name: "{{ cadvisor_container_image_ref }}" msg: >-2
state: present Unknown deployment method '{{ cadvisor_deployment_method }}'! Supported
source: pull deployment methods are: {{ cadvisor_deployment_methods | join(', ') }}.
force_source: "{{ cadvisor_container_image_tag|default(False, True) | bool }}" when: cadvisor_deployment_method not in cadvisor_deployment_methods
- name: Ensure cadvisor container is running - name: Deploy using {{ cadvisor_deployment_method }}
docker_container: ansible.builtin.include_tasks:
name: "{{ cadvisor_container_name }}" file: "deploy-{{ cadvisor_deployment_method }}.yml"
image: "{{ cadvisor_container_image_ref }}"
env: "{{ cadvisor_container_env | default(omit, True) }}"
ports: "{{ cadvisor_container_ports | default(omit, True) }}"
labels: "{{ cadvisor_container_labels }}"
devices: "{{ cadvisor_container_devices }}"
volumes: "{{ cadvisor_container_volumes }}"
networks: "{{ cadvisor_container_networks | default(omit, True) }}"
etc_hosts: "{{ cadvisor_container_etc_hosts | default(omit, True) }}"
privileged: "{{ cadvisor_container_privileged }}"
command: "{{ cadvisor_container_command }}"
pid_mode: "{{ cadvisor_container_pid_mode | default(omit, True) }}"
userns_mode: "{{ cadvisor_container_userns_mode | default(omit, True) }}"
restart_policy: "{{ cadvisor_container_restart_policy }}"
state: started

View File

@ -0,0 +1,6 @@
---
cadvisor_states:
- present
- absent
cadvisor_deployment_methods:
- docker

View File

@ -1,50 +1,4 @@
--- ---
grafana_user: grafana
grafana_version: "10.1.1"
grafana_base_path: "/opt/grafana"
grafana_config_path: "{{ grafana_base_path }}/config"
grafana_config_file: "{{ grafana_config_path }}/grafana.ini"
grafana_ldap_config_file: "{{ grafana_config_path }}/ldap.toml"
grafana_provisioning_path: "{{ grafana_config_path }}/provisioning"
grafana_notifier_provisioning_path: "{{ grafana_provisioning_path }}/notifiers"
grafana_dashboard_provisioning_path: "{{ grafana_provisioning_path }}/dashboards"
grafana_datasource_provisioning_path: "{{ grafana_provisioning_path }}/datasources"
grafana_plugin_provisioning_path: "{{ grafana_provisioning_path }}/plugins"
grafana_data_path: "{{ grafana_base_path }}/data"
grafana_logs_path: "{{ grafana_base_path }}/logs"
grafana_state: present
grafana_run_user: >-
{{ ('uid' in (grafana_user_info | default([]))) | ternary(grafana_user_info.uid, grafana_user) }}
grafana_run_group: >-
{{ ('group' in (grafana_user_info | default([]))) | ternary(grafana_user_info.group, grafana_user) }}
grafana_container_image_server: "docker.io"
grafana_container_image_namespace: "grafana"
grafana_container_image_container: "grafana"
grafana_container_image_name: >-
{{
[
((grafana_container_image_server is defined)
| ternary([ grafana_container_image_server ], [])),
((grafana_container_image_namespace is defined)
| ternary([ grafana_container_image_namespace], [])),
grafana_container_image_container,
] | ansible.builtin.flatten | join('/')
}}
grafana_container_image: >-
{{ grafana_container_image_name }}:{{ grafana_container_image_tag | default(grafana_version, true) }}
grafana_container_name: grafana
grafana_container_base_volumes:
- "{{ grafana_config_path }}:{{ grafana_container_config_path }}:ro"
- "{{ grafana_data_path }}:{{ grafana_container_data_path }}:rw"
- "{{ grafana_logs_path }}:{{ grafana_container_logs_path }}:rw"
grafana_container_volumes: []
grafana_container_collected_volumes: >-
{{ grafana_container_base_volumes + grafana_container_volumes }}
grafana_container_restart_policy: "unless-stopped"
grafana_config_log_mode: grafana_config_log_mode:
- console - console
- file - file

View File

@ -0,0 +1,26 @@
---
grafana_container_image_server: "docker.io"
grafana_container_image_namespace: "grafana"
grafana_container_image_container: "grafana"
grafana_container_image_name: >-2
{{
[
((grafana_container_image_server is defined)
| ternary([ grafana_container_image_server ], [])),
((grafana_container_image_namespace is defined)
| ternary([ grafana_container_image_namespace], [])),
grafana_container_image_container,
] | ansible.builtin.flatten | join('/')
}}
grafana_container_image: >-2
{{ grafana_container_image_name }}:{{ grafana_container_image_tag | default(grafana_version, true) }}
grafana_container_name: grafana
grafana_container_base_volumes:
- "{{ grafana_config_path }}:{{ grafana_container_config_path }}:ro"
- "{{ grafana_data_path }}:{{ grafana_container_data_path }}:rw"
- "{{ grafana_logs_path }}:{{ grafana_container_logs_path }}:rw"
grafana_container_volumes: []
grafana_container_collected_volumes: >-2
{{ grafana_container_base_volumes + grafana_container_volumes }}
grafana_container_restart_policy: "unless-stopped"

View File

@ -0,0 +1,20 @@
---
grafana_user: grafana
grafana_version: "11.5.1"
grafana_base_path: "/opt/grafana"
grafana_config_path: "{{ grafana_base_path }}/config"
grafana_config_file: "{{ grafana_config_path }}/grafana.ini"
grafana_ldap_config_file: "{{ grafana_config_path }}/ldap.toml"
grafana_provisioning_path: "{{ grafana_config_path }}/provisioning"
grafana_notifier_provisioning_path: "{{ grafana_provisioning_path }}/notifiers"
grafana_dashboard_provisioning_path: "{{ grafana_provisioning_path }}/dashboards"
grafana_datasource_provisioning_path: "{{ grafana_provisioning_path }}/datasources"
grafana_plugin_provisioning_path: "{{ grafana_provisioning_path }}/plugins"
grafana_data_path: "{{ grafana_base_path }}/data"
grafana_logs_path: "{{ grafana_base_path }}/logs"
grafana_state: present
grafana_run_user: >-
{{ ('uid' in (grafana_user_info | default([]))) | ternary(grafana_user_info.uid, grafana_user) }}
grafana_run_group: >-
{{ ('group' in (grafana_user_info | default([]))) | ternary(grafana_user_info.group, grafana_user) }}

View File

@ -0,0 +1,11 @@
---
allow_duplicates: true
dependencies: []
galaxy_info:
role_name: grafana
description: Deploy and configure the grafana
galaxy_tags:
- grafana
- monitoring
- prometheus
- docker

View File

@ -2,7 +2,7 @@
- name: Ensure grafana_state is valid - name: Ensure grafana_state is valid
ansible.builtin.assert: ansible.builtin.assert:
that: that:
- "grafana_state in ['present', 'absent']" - "grafana_state in grafana_states"
fail_msg: >- fail_msg: >-
Only 'present' and 'absent' are allowed as values for grafana_state Only 'present' and 'absent' are allowed as values for grafana_state

View File

@ -1,4 +1,7 @@
--- ---
grafana_states:
- present
- absent
grafana_container_config_path: "/etc/grafana" grafana_container_config_path: "/etc/grafana"
grafana_container_data_path: "/var/lib/grafana" grafana_container_data_path: "/var/lib/grafana"
grafana_container_logs_path: "/var/log/grafana" grafana_container_logs_path: "/var/log/grafana"

View File

@ -0,0 +1,12 @@
---
allow_duplicates: true
dependencies: []
galaxy_info:
role_name: matrix_alertmanager
description: Deploy matrix_alertmanager, an alertmanager receiver for matrix rooms
galaxy_tags:
- matrix_alertmanager
- alertmanager_receiver
- alertmanager
- matrix
- docker

View File

@ -1,6 +1,6 @@
--- ---
postgres_exporter_version: "0.10.1" postgres_exporter_version: "0.15.0"
postgres_exporter_user: root postgres_exporter_user: root
postgres_exporter_create_user: false postgres_exporter_create_user: false

View File

@ -0,0 +1,12 @@
---
allow_duplicates: true
dependencies: []
galaxy_info:
role_name: postgres_exporter
description: Deploy and configure the prometheus-maintained postgres_exporter
galaxy_tags:
- postgres_exporter
- prometheus
- postgresql
- postgres
- docker

View File

@ -1,7 +1,7 @@
--- ---
vmagent_config_global_scrape_interval: "30s" vmagent_config_global_scrape_interval: "30s"
vmagent_config_global_scrape_timeout: "10s" vmagent_config_global_scrape_timeout: "10s"
vmagent_config_global_external_labels: [] vmagent_config_global_external_labels: {}
vmagent_config_scrape_configs: [] vmagent_config_scrape_configs: []
vmagent_config: ~ vmagent_config: ~

View File

@ -29,6 +29,7 @@ vmagent_container_command: >-2
-{{ flag }} -{{ flag }}
{% endfor -%} {% endfor -%}
vmagent_container_networks: ~ vmagent_container_networks: ~
vmagent_container_network_mode: ~
vmagent_container_etc_hosts: ~ vmagent_container_etc_hosts: ~
vmagent_container_dns_servers: ~ vmagent_container_dns_servers: ~
vmagent_container_restart_policy: >-2 vmagent_container_restart_policy: >-2
@ -52,3 +53,7 @@ vmagent_container_env: ~
vmagent_container_merged_env: >-2 vmagent_container_merged_env: >-2
{{ (vmagent_container_base_env | default({}, true)) {{ (vmagent_container_base_env | default({}, true))
| combine(vmagent_container_env | default({})) }} | combine(vmagent_container_env | default({})) }}
vmagent_container_comparisons:
env: allow_more_present
image: strict
labels: allow_more_present

View File

@ -1,6 +1,6 @@
--- ---
vmagent_user: vmagent vmagent_user: vmagent
vmagent_version: "1.104.0" vmagent_version: "1.111.0"
vmagent_state: present vmagent_state: present
vmagent_deployment_method: "docker" vmagent_deployment_method: "docker"

View File

@ -23,5 +23,7 @@
networks: "{{ vmagent_container_networks | default(omit, true) }}" networks: "{{ vmagent_container_networks | default(omit, true) }}"
etc_hosts: "{{ vmagent_container_etc_hosts | default(omit, true) }}" etc_hosts: "{{ vmagent_container_etc_hosts | default(omit, true) }}"
dns_servers: "{{ vmagent_container_dns_servers | default(omit, true) }}" dns_servers: "{{ vmagent_container_dns_servers | default(omit, true) }}"
network_mode: "{{ vmagent_container_network_mode | default(omit, true) }}"
restart_policy: "{{ vmagent_container_restart_policy | default(omit, true) }}" restart_policy: "{{ vmagent_container_restart_policy | default(omit, true) }}"
comparisons: "{{ vmagent_container_comparisons | default(omit, true) }}"
state: "{{ vmagent_container_state }}" state: "{{ vmagent_container_state }}"

View File

@ -1,7 +1,7 @@
--- ---
vmalert_state: present vmalert_state: present
vmalert_user: vmalert vmalert_user: vmalert
vmalert_version: "1.104.0" vmalert_version: "1.111.0"
vmalert_base_path: "/opt/vmalert" vmalert_base_path: "/opt/vmalert"
vmalert_config_path: "{{ vmalert_base_path }}/config" vmalert_config_path: "{{ vmalert_base_path }}/config"
vmalert_alert_config: "{{ vmalert_config_path }}/alerts.yml" vmalert_alert_config: "{{ vmalert_config_path }}/alerts.yml"

View File

@ -0,0 +1,11 @@
---
allow_duplicates: true
dependencies: []
galaxy_info:
role_name: vmalert
description: Deploy and configure the victoriametrics alerting engine `vmalert`
galaxy_tags:
- victoriametrics
- vmalert
- alerting
- prometheus

View File

@ -1,7 +1,7 @@
--- ---
vmtsdb_state: present vmtsdb_state: present
vmtsdb_user: vmtsdb vmtsdb_user: vmtsdb
vmtsdb_version: "1.104.0" vmtsdb_version: "1.111.0"
vmtsdb_base_path: "/opt/vmtsdb" vmtsdb_base_path: "/opt/vmtsdb"
vmtsdb_data_path: "{{ vmtsdb_base_path }}/data" vmtsdb_data_path: "{{ vmtsdb_base_path }}/data"

View File

@ -0,0 +1,10 @@
---
allow_duplicates: true
dependencies: []
galaxy_info:
role_name: vmtsdb
description: Deploy and configure the victoriametrics time-series database `vmtsdb`
galaxy_tags:
- victoriametrics
- vmtsdb
- prometheus