skip_changelog: merge all role molecule converge into one

Signed-off-by: gardar <gardar@users.noreply.github.com>
This commit is contained in:
gardar 2023-08-18 19:03:40 +00:00
parent 083ff4ef36
commit d9e0c77bfb
No known key found for this signature in database
GPG key ID: 75FAE37CBA8C13C2
64 changed files with 526 additions and 554 deletions

View file

@ -78,3 +78,6 @@ platforms:
command: /lib/systemd/systemd command: /lib/systemd/systemd
verifier: verifier:
name: testinfra name: testinfra
provisioner:
playbooks:
converge: "${MOLECULE_PROJECT_DIRECTORY}/../../.config/molecule/converge.yml"

View file

@ -0,0 +1,8 @@
---
- name: Converge
hosts: all
any_errors_fatal: true
tasks:
- name: "Run role"
ansible.builtin.include_role:
name: "prometheus.prometheus.{{ lookup('env', 'MOLECULE_PROJECT_DIRECTORY') | basename }}"

View file

@ -1,35 +0,0 @@
---
- name: Converge
hosts: all
any_errors_fatal: true
roles:
- prometheus.prometheus.alertmanager
vars:
alertmanager_binary_local_dir: '/tmp/alertmanager-linux-amd64'
alertmanager_config_dir: /opt/am/etc
alertmanager_db_dir: /opt/am/lib
alertmanager_web_listen_address: '127.0.0.1:9093'
alertmanager_web_external_url: 'http://localhost:9093/alertmanager'
alertmanager_resolve_timeout: 10m
alertmanager_slack_api_url: "http://example.com"
alertmanager_receivers:
- name: slack
slack_configs:
- send_resolved: true
api_url: 'https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX'
channel: '#alerts'
alertmanager_route:
group_by: ['alertname', 'cluster', 'service']
group_wait: 30s
group_interval: 5m
repeat_interval: 3h
receiver: slack
routes:
- match_re:
service: ^(foo1|foo2|baz)$
receiver: slack
alertmanager_mesh:
listen-address: "127.0.0.1:6783"
peers:
- "127.0.0.1:6783"
- "alertmanager.demo.do.prometheus.io:6783"

View file

@ -1 +1,34 @@
--- ---
provisioner:
inventory:
group_vars:
all:
alertmanager_binary_local_dir: '/tmp/alertmanager-linux-amd64'
alertmanager_config_dir: /opt/am/etc
alertmanager_db_dir: /opt/am/lib
alertmanager_web_listen_address: '127.0.0.1:9093'
alertmanager_web_external_url: 'http://localhost:9093/alertmanager'
alertmanager_resolve_timeout: 10m
alertmanager_slack_api_url: "http://example.com"
alertmanager_receivers:
- name: slack
slack_configs:
- send_resolved: true
api_url: 'https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX'
channel: '#alerts'
alertmanager_route:
group_by: ['alertname', 'cluster', 'service']
group_wait: 30s
group_interval: 5m
repeat_interval: 3h
receiver: slack
routes:
- match_re:
service: ^(foo1|foo2|baz)$
receiver: slack
alertmanager_mesh:
listen-address: "127.0.0.1:6783"
peers:
- "127.0.0.1:6783"
- "alertmanager.demo.do.prometheus.io:6783"
version: 0.19.0

View file

@ -1,15 +1,13 @@
--- ---
- name: Prepare - name: Run localhost preparation
hosts: localhost hosts: localhost
gather_facts: false gather_facts: false
vars:
# Version needs to be specified here as molecule doesn't have access to ansible_version at this stage
version: 0.19.0
tasks: tasks:
- name: Download alertmanager binary to local folder - name: Download alertmanager binary to local folder
become: false become: false
ansible.builtin.get_url: ansible.builtin.get_url:
url: "https://github.com/prometheus/alertmanager/releases/download/v{{ version }}/alertmanager-{{ version }}.linux-amd64.tar.gz" url: "https://github.com/prometheus/alertmanager/releases/download/v{{ version\
\ }}/alertmanager-{{ version }}.linux-amd64.tar.gz"
dest: "/tmp/alertmanager-{{ version }}.linux-amd64.tar.gz" dest: "/tmp/alertmanager-{{ version }}.linux-amd64.tar.gz"
mode: 0644 mode: 0644
register: _download_archive register: _download_archive

View file

@ -1,19 +0,0 @@
---
- name: Converge
hosts: all
any_errors_fatal: true
roles:
- prometheus.prometheus.alertmanager
vars:
alertmanager_slack_api_url: "http://example.com"
alertmanager_receivers:
- name: slack
slack_configs:
- send_resolved: true
channel: '#alerts'
alertmanager_route:
group_by: ['alertname', 'cluster', 'service']
group_wait: 30s
group_interval: 5m
repeat_interval: 3h
receiver: slack

View file

@ -1 +1,17 @@
--- ---
provisioner:
inventory:
group_vars:
all:
alertmanager_slack_api_url: "http://example.com"
alertmanager_receivers:
- name: slack
slack_configs:
- send_resolved: true
channel: '#alerts'
alertmanager_route:
group_by: ['alertname', 'cluster', 'service']
group_wait: 30s
group_interval: 5m
repeat_interval: 3h
receiver: slack

View file

@ -1,20 +0,0 @@
---
- name: Run role
hosts: all
any_errors_fatal: true
roles:
- prometheus.prometheus.alertmanager
vars:
alertmanager_version: latest
alertmanager_slack_api_url: "http://example.com"
alertmanager_receivers:
- name: slack
slack_configs:
- send_resolved: true
channel: '#alerts'
alertmanager_route:
group_by: ['alertname', 'cluster', 'service']
group_wait: 30s
group_interval: 5m
repeat_interval: 3h
receiver: slack

View file

@ -1 +1,18 @@
--- ---
provisioner:
inventory:
group_vars:
all:
alertmanager_version: latest
alertmanager_slack_api_url: "http://example.com"
alertmanager_receivers:
- name: slack
slack_configs:
- send_resolved: true
channel: '#alerts'
alertmanager_route:
group_by: ['alertname', 'cluster', 'service']
group_wait: 30s
group_interval: 5m
repeat_interval: 3h
receiver: slack

View file

@ -1,14 +0,0 @@
---
- name: Run role
hosts: all
any_errors_fatal: true
roles:
- prometheus.prometheus.blackbox_exporter
vars:
blackbox_exporter_web_listen_address: "127.0.0.1:9000"
blackbox_exporter_cli_flags:
log.level: "warn"
blackbox_exporter_configuration_modules:
tcp_connect:
prober: tcp
timeout: 5s

View file

@ -1 +1,12 @@
--- ---
provisioner:
inventory:
group_vars:
all:
blackbox_exporter_web_listen_address: "127.0.0.1:9000"
blackbox_exporter_cli_flags:
log.level: "warn"
blackbox_exporter_configuration_modules:
tcp_connect:
prober: tcp
timeout: 5s

View file

@ -1,6 +0,0 @@
---
- name: Converge
hosts: all
any_errors_fatal: true
roles:
- prometheus.prometheus.blackbox_exporter

View file

@ -1 +1,5 @@
--- ---
provisioner:
inventory:
group_vars:
all: {}

View file

@ -1,40 +0,0 @@
---
- name: Run role
hosts: all
any_errors_fatal: true
roles:
- prometheus.prometheus.chrony_exporter
pre_tasks:
- name: Create chrony_exporter cert dir
ansible.builtin.file:
path: "{{ chrony_exporter_tls_server_config.cert_file | dirname }}"
state: directory
owner: root
group: root
mode: u+rwX,g+rwX,o=rX
- name: Copy cert and key
ansible.builtin.copy:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
mode: "{{ item.mode | default('0644') }}"
loop:
- src: "/tmp/tls.cert"
dest: "{{ chrony_exporter_tls_server_config.cert_file }}"
- src: "/tmp/tls.key"
dest: "{{ chrony_exporter_tls_server_config.key_file }}"
vars:
chrony_exporter_binary_local_dir: "/tmp/chrony_exporter-linux-amd64"
chrony_exporter_web_listen_address: "127.0.0.1:8080"
chrony_exporter_enabled_collectors:
- sources
chrony_exporter_disabled_collectors:
- tracking
chrony_exporter_tls_server_config:
cert_file: /etc/chrony_exporter/tls.cert
key_file: /etc/chrony_exporter/tls.key
chrony_exporter_http_server_config:
http2: true
chrony_exporter_basic_auth_users:
randomuser: examplepassword

View file

@ -1 +1,21 @@
--- ---
provisioner:
inventory:
group_vars:
all:
chrony_exporter_binary_local_dir: "/tmp/chrony_exporter-linux-amd64"
chrony_exporter_web_listen_address: "127.0.0.1:8080"
chrony_exporter_enabled_collectors:
- sources
chrony_exporter_disabled_collectors:
- tracking
chrony_exporter_tls_server_config:
cert_file: /etc/chrony_exporter/tls.cert
key_file: /etc/chrony_exporter/tls.key
chrony_exporter_http_server_config:
http2: true
chrony_exporter_basic_auth_users:
randomuser: examplepassword
go_arch: amd64
chrony_exporter_version: 0.6.0

View file

@ -1,17 +1,15 @@
--- ---
- name: Prepare - name: Run local preparation
hosts: localhost hosts: localhost
gather_facts: false gather_facts: false
vars:
go_arch: amd64
chrony_exporter_version: 0.6.0
tasks: tasks:
- name: Download chrony_exporter binary to local folder - name: Download chrony_exporter binary to local folder
become: false become: false
ansible.builtin.get_url: ansible.builtin.get_url:
url: "https://github.com/superq/chrony_exporter/releases/download/v{{ chrony_exporter_version }}/\ url: "https://github.com/superq/chrony_exporter/releases/download/v{{ chrony_exporter_version\
chrony_exporter-{{ chrony_exporter_version }}.linux-{{ go_arch }}.tar.gz" \ }}/chrony_exporter-{{ chrony_exporter_version }}.linux-{{ go_arch }}.tar.gz"
dest: "/tmp/chrony_exporter-{{ chrony_exporter_version }}.linux-{{ go_arch }}.tar.gz" dest: "/tmp/chrony_exporter-{{ chrony_exporter_version }}.linux-{{ go_arch\
\ }}.tar.gz"
mode: 0644 mode: 0644
register: _download_binary register: _download_binary
until: _download_binary is succeeded until: _download_binary is succeeded
@ -22,9 +20,11 @@
- name: Unpack chrony_exporter binary - name: Unpack chrony_exporter binary
become: false become: false
ansible.builtin.unarchive: ansible.builtin.unarchive:
src: "/tmp/chrony_exporter-{{ chrony_exporter_version }}.linux-{{ go_arch }}.tar.gz" src: "/tmp/chrony_exporter-{{ chrony_exporter_version }}.linux-{{ go_arch\
\ }}.tar.gz"
dest: "/tmp" dest: "/tmp"
creates: "/tmp/chrony_exporter-{{ chrony_exporter_version }}.linux-{{ go_arch }}/chrony_exporter" creates: "/tmp/chrony_exporter-{{ chrony_exporter_version }}.linux-{{ go_arch\
\ }}/chrony_exporter"
check_mode: false check_mode: false
- name: Link to chrony_exporter binaries directory - name: Link to chrony_exporter binaries directory
@ -54,3 +54,26 @@
csr_path: "/tmp/tls.csr" csr_path: "/tmp/tls.csr"
privatekey_path: "/tmp/tls.key" privatekey_path: "/tmp/tls.key"
provider: selfsigned provider: selfsigned
- name: Run target preparation
hosts: all
any_errors_fatal: true
tasks:
- name: Create chrony_exporter cert dir
ansible.builtin.file:
path: "{{ chrony_exporter_tls_server_config.cert_file | dirname }}"
state: directory
owner: root
group: root
mode: u+rwX,g+rwX,o=rX
- name: Copy cert and key
ansible.builtin.copy:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
mode: "{{ item.mode | default('0644') }}"
loop:
- src: "/tmp/tls.cert"
dest: "{{ chrony_exporter_tls_server_config.cert_file }}"
- src: "/tmp/tls.key"
dest: "{{ chrony_exporter_tls_server_config.key_file }}"

View file

@ -1,8 +0,0 @@
---
- name: Converge
hosts: all
any_errors_fatal: true
roles:
- prometheus.prometheus.chrony_exporter
vars:
chrony_exporter_web_listen_address: "127.0.0.1:9123"

View file

@ -1 +1,6 @@
--- ---
provisioner:
inventory:
group_vars:
all:
chrony_exporter_web_listen_address: "127.0.0.1:9123"

View file

@ -1,8 +0,0 @@
---
- name: Run role
hosts: all
any_errors_fatal: true
roles:
- prometheus.prometheus.chrony_exporter
vars:
chrony_exporter_version: latest

View file

@ -1 +1,6 @@
--- ---
provisioner:
inventory:
group_vars:
all:
chrony_exporter_version: latest

View file

@ -1,40 +0,0 @@
---
- name: Run role
hosts: all
any_errors_fatal: true
roles:
- prometheus.prometheus.mysqld_exporter
pre_tasks:
- name: Create mysqld_exporter cert dir
ansible.builtin.file:
path: "{{ mysqld_exporter_tls_server_config.cert_file | dirname }}"
state: directory
owner: root
group: root
mode: u+rwX,g+rwX,o=rX
- name: Copy cert and key
ansible.builtin.copy:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
mode: "{{ item.mode | default('0644') }}"
loop:
- src: "/tmp/tls.cert"
dest: "{{ mysqld_exporter_tls_server_config.cert_file }}"
- src: "/tmp/tls.key"
dest: "{{ mysqld_exporter_tls_server_config.key_file }}"
vars:
mysqld_exporter_binary_local_dir: "/tmp/mysqld_exporter-linux-amd64"
mysqld_exporter_web_listen_address: "127.0.0.1:8080"
mysqld_exporter_enabled_collectors:
- slave_hosts
mysqld_exporter_disabled_collectors:
- global_variables
mysqld_exporter_tls_server_config:
cert_file: /etc/mysqld_exporter/tls.cert
key_file: /etc/mysqld_exporter/tls.key
mysqld_exporter_http_server_config:
http2: true
mysqld_exporter_basic_auth_users:
randomuser: examplepassword

View file

@ -1 +1,21 @@
--- ---
provisioner:
inventory:
group_vars:
all:
mysqld_exporter_binary_local_dir: "/tmp/mysqld_exporter-linux-amd64"
mysqld_exporter_web_listen_address: "127.0.0.1:8080"
mysqld_exporter_enabled_collectors:
- slave_hosts
mysqld_exporter_disabled_collectors:
- global_variables
mysqld_exporter_tls_server_config:
cert_file: /etc/mysqld_exporter/tls.cert
key_file: /etc/mysqld_exporter/tls.key
mysqld_exporter_http_server_config:
http2: true
mysqld_exporter_basic_auth_users:
randomuser: examplepassword
go_arch: amd64
mysqld_exporter_version: 0.13.0

View file

@ -1,17 +1,16 @@
--- ---
- name: Prepare - name: Run local preparation
hosts: localhost hosts: localhost
gather_facts: false gather_facts: false
vars:
go_arch: amd64
mysqld_exporter_version: 0.13.0
tasks: tasks:
- name: Download mysqld_exporter binary to local folder - name: Download mysqld_exporter binary to local folder
become: false become: false
ansible.builtin.get_url: ansible.builtin.get_url:
url: "https://github.com/prometheus/mysqld_exporter/releases/download/v{{ mysqld_exporter_version }}/\ url: "https://github.com/prometheus/mysqld_exporter/releases/download/v{{\
mysqld_exporter-{{ mysqld_exporter_version }}.linux-{{ go_arch }}.tar.gz" \ mysqld_exporter_version }}/mysqld_exporter-{{ mysqld_exporter_version\
dest: "/tmp/mysqld_exporter-{{ mysqld_exporter_version }}.linux-{{ go_arch }}.tar.gz" \ }}.linux-{{ go_arch }}.tar.gz"
dest: "/tmp/mysqld_exporter-{{ mysqld_exporter_version }}.linux-{{ go_arch\
\ }}.tar.gz"
mode: 0644 mode: 0644
register: _download_binary register: _download_binary
until: _download_binary is succeeded until: _download_binary is succeeded
@ -22,9 +21,11 @@
- name: Unpack mysqld_exporter binary - name: Unpack mysqld_exporter binary
become: false become: false
ansible.builtin.unarchive: ansible.builtin.unarchive:
src: "/tmp/mysqld_exporter-{{ mysqld_exporter_version }}.linux-{{ go_arch }}.tar.gz" src: "/tmp/mysqld_exporter-{{ mysqld_exporter_version }}.linux-{{ go_arch\
\ }}.tar.gz"
dest: "/tmp" dest: "/tmp"
creates: "/tmp/mysqld_exporter-{{ mysqld_exporter_version }}.linux-{{ go_arch }}/mysqld_exporter" creates: "/tmp/mysqld_exporter-{{ mysqld_exporter_version }}.linux-{{ go_arch\
\ }}/mysqld_exporter"
check_mode: false check_mode: false
- name: Link to mysqld_exporter binaries directory - name: Link to mysqld_exporter binaries directory
@ -54,3 +55,26 @@
csr_path: "/tmp/tls.csr" csr_path: "/tmp/tls.csr"
privatekey_path: "/tmp/tls.key" privatekey_path: "/tmp/tls.key"
provider: selfsigned provider: selfsigned
- name: Run target preparation
hosts: all
any_errors_fatal: true
tasks:
- name: Create mysqld_exporter cert dir
ansible.builtin.file:
path: "{{ mysqld_exporter_tls_server_config.cert_file | dirname }}"
state: directory
owner: root
group: root
mode: u+rwX,g+rwX,o=rX
- name: Copy cert and key
ansible.builtin.copy:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
mode: "{{ item.mode | default('0644') }}"
loop:
- src: "/tmp/tls.cert"
dest: "{{ mysqld_exporter_tls_server_config.cert_file }}"
- src: "/tmp/tls.key"
dest: "{{ mysqld_exporter_tls_server_config.key_file }}"

View file

@ -1,8 +0,0 @@
---
- name: Converge
hosts: all
any_errors_fatal: true
roles:
- prometheus.prometheus.mysqld_exporter
vars:
mysqld_exporter_web_listen_address: "127.0.0.1:9104"

View file

@ -1 +1,6 @@
--- ---
provisioner:
inventory:
group_vars:
all:
mysqld_exporter_web_listen_address: "127.0.0.1:9104"

View file

@ -1,8 +0,0 @@
---
- name: Run role
hosts: all
any_errors_fatal: true
roles:
- prometheus.prometheus.mysqld_exporter
vars:
mysqld_exporter_version: latest

View file

@ -1 +1,6 @@
--- ---
provisioner:
inventory:
group_vars:
all:
mysqld_exporter_version: latest

View file

@ -1,41 +0,0 @@
---
- name: Run role
hosts: all
any_errors_fatal: true
roles:
- prometheus.prometheus.node_exporter
pre_tasks:
- name: Create node_exporter cert dir
ansible.builtin.file:
path: "{{ node_exporter_tls_server_config.cert_file | dirname }}"
state: directory
owner: root
group: root
mode: u+rwX,g+rwX,o=rX
- name: Copy cert and key
ansible.builtin.copy:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
mode: "{{ item.mode | default('0644') }}"
loop:
- src: "/tmp/tls.cert"
dest: "{{ node_exporter_tls_server_config.cert_file }}"
- src: "/tmp/tls.key"
dest: "{{ node_exporter_tls_server_config.key_file }}"
vars:
node_exporter_binary_local_dir: "/tmp/node_exporter-linux-amd64"
node_exporter_web_listen_address: "127.0.0.1:8080"
node_exporter_textfile_dir: ""
node_exporter_enabled_collectors:
- entropy
node_exporter_disabled_collectors:
- diskstats
node_exporter_tls_server_config:
cert_file: /etc/node_exporter/tls.cert
key_file: /etc/node_exporter/tls.key
node_exporter_http_server_config:
http2: true
node_exporter_basic_auth_users:
randomuser: examplepassword

View file

@ -1 +1,22 @@
--- ---
provisioner:
inventory:
group_vars:
all:
node_exporter_binary_local_dir: "/tmp/node_exporter-linux-amd64"
node_exporter_web_listen_address: "127.0.0.1:8080"
node_exporter_textfile_dir: ""
node_exporter_enabled_collectors:
- entropy
node_exporter_disabled_collectors:
- diskstats
node_exporter_tls_server_config:
cert_file: /etc/node_exporter/tls.cert
key_file: /etc/node_exporter/tls.key
node_exporter_http_server_config:
http2: true
node_exporter_basic_auth_users:
randomuser: examplepassword
go_arch: amd64
node_exporter_version: 1.0.0

View file

@ -1,16 +1,14 @@
--- ---
- name: Prepare - name: Run local preparation
hosts: localhost hosts: localhost
gather_facts: false gather_facts: false
vars:
go_arch: amd64
node_exporter_version: 1.0.0
tasks: tasks:
- name: Download node_exporter binary to local folder - name: Download node_exporter binary to local folder
become: false become: false
ansible.builtin.get_url: ansible.builtin.get_url:
url: "https://github.com/prometheus/node_exporter/releases/download/v{{ node_exporter_version }}/\ url: "https://github.com/prometheus/node_exporter/releases/download/v{{\
node_exporter-{{ node_exporter_version }}.linux-{{ go_arch }}.tar.gz" \ node_exporter_version }}/node_exporter-{{ node_exporter_version }}.linux-{{\
\ go_arch }}.tar.gz"
dest: "/tmp/node_exporter-{{ node_exporter_version }}.linux-{{ go_arch }}.tar.gz" dest: "/tmp/node_exporter-{{ node_exporter_version }}.linux-{{ go_arch }}.tar.gz"
mode: 0644 mode: 0644
register: _download_binary register: _download_binary
@ -24,7 +22,8 @@
ansible.builtin.unarchive: ansible.builtin.unarchive:
src: "/tmp/node_exporter-{{ node_exporter_version }}.linux-{{ go_arch }}.tar.gz" src: "/tmp/node_exporter-{{ node_exporter_version }}.linux-{{ go_arch }}.tar.gz"
dest: "/tmp" dest: "/tmp"
creates: "/tmp/node_exporter-{{ node_exporter_version }}.linux-{{ go_arch }}/node_exporter" creates: "/tmp/node_exporter-{{ node_exporter_version }}.linux-{{ go_arch\
\ }}/node_exporter"
check_mode: false check_mode: false
- name: Link to node_exporter binaries directory - name: Link to node_exporter binaries directory
@ -54,3 +53,26 @@
csr_path: "/tmp/tls.csr" csr_path: "/tmp/tls.csr"
privatekey_path: "/tmp/tls.key" privatekey_path: "/tmp/tls.key"
provider: selfsigned provider: selfsigned
- name: Run target preparation
hosts: all
any_errors_fatal: true
tasks:
- name: Create node_exporter cert dir
ansible.builtin.file:
path: "{{ node_exporter_tls_server_config.cert_file | dirname }}"
state: directory
owner: root
group: root
mode: u+rwX,g+rwX,o=rX
- name: Copy cert and key
ansible.builtin.copy:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
mode: "{{ item.mode | default('0644') }}"
loop:
- src: "/tmp/tls.cert"
dest: "{{ node_exporter_tls_server_config.cert_file }}"
- src: "/tmp/tls.key"
dest: "{{ node_exporter_tls_server_config.key_file }}"

View file

@ -1,8 +0,0 @@
---
- name: Converge
hosts: all
any_errors_fatal: true
roles:
- prometheus.prometheus.node_exporter
vars:
node_exporter_web_listen_address: "127.0.0.1:9100"

View file

@ -1 +1,6 @@
--- ---
provisioner:
inventory:
group_vars:
all:
node_exporter_web_listen_address: "127.0.0.1:9100"

View file

@ -1,8 +0,0 @@
---
- name: Run role
hosts: all
any_errors_fatal: true
roles:
- prometheus.prometheus.node_exporter
vars:
node_exporter_version: latest

View file

@ -1 +1,6 @@
--- ---
provisioner:
inventory:
group_vars:
all:
node_exporter_version: latest

View file

@ -1,89 +0,0 @@
---
- name: Run role
hosts: all
any_errors_fatal: true
roles:
- prometheus.prometheus.prometheus
vars:
prometheus_binary_local_dir: '/tmp/prometheus-linux-amd64'
prometheus_config_dir: /opt/prom/etc
prometheus_db_dir: /opt/prom/lib
prometheus_web_listen_address: "127.0.0.1:9090"
prometheus_web_external_url: "http://127.0.0.1:9090/prometheus"
prometheus_read_only_dirs:
- /etc
prometheus_storage_retention: "60d"
prometheus_storage_retention_size: "1GB"
prometheus_config_flags_extra:
alertmanager.timeout: 10s
web.enable-admin-api:
enable-feature:
- promql-at-modifier
- remote-write-receiver
prometheus_alertmanager_config:
- scheme: https
path_prefix: /alertmanager
basic_auth:
username: user
password: pass
static_configs:
- targets: ["127.0.0.1:9090"]
proxy_url: "127.0.0.2"
prometheus_alert_relabel_configs:
- action: labeldrop
regex: replica
prometheus_global:
scrape_interval: 3s
scrape_timeout: 2s
evaluation_interval: 10s
prometheus_remote_write:
- url: http://influx.example.org:8086/api/v1/prom/write?db=test
basic_auth:
username: prometheus
password: SuperSecret
prometheus_remote_read:
- url: http://influx.example.org:8086/api/v1/prom/read?db=demo
prometheus_external_labels:
environment: "alternative"
prometheus_targets:
node:
- targets:
- node.demo.do.prometheus.io
- influx.example.org:9100
labels:
env: demo
docker:
- targets:
- demo.do.prometheus.io:8080
- influx.example.org:8080
labels:
env: demo
prometheus_scrape_configs:
- job_name: "prometheus"
metrics_path: "{{ prometheus_metrics_path }}"
static_configs:
- targets:
- "{{ ansible_fqdn | default(ansible_host) | default('localhost') }}:9090"
- job_name: "node"
file_sd_configs:
- files:
- "{{ prometheus_config_dir }}/file_sd/node.yml"
- job_name: "docker"
file_sd_configs:
- files:
- "{{ prometheus_config_dir }}/file_sd/docker.yml"
- job_name: 'blackbox'
metrics_path: /probe
params:
module: [http_2xx]
static_configs:
- targets:
- http://node.demo.do.prometheus.io
- http://influx.example.org:9100
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 127.0.0.1:9115 # Blackbox exporter.

View file

@ -1 +1,89 @@
--- ---
provisioner:
inventory:
group_vars:
all:
prometheus_binary_local_dir: '/tmp/prometheus-linux-amd64'
prometheus_config_dir: /opt/prom/etc
prometheus_db_dir: /opt/prom/lib
prometheus_web_listen_address: "127.0.0.1:9090"
prometheus_web_external_url: "http://127.0.0.1:9090/prometheus"
prometheus_read_only_dirs:
- /etc
prometheus_storage_retention: "60d"
prometheus_storage_retention_size: "1GB"
prometheus_config_flags_extra:
alertmanager.timeout: 10s
web.enable-admin-api:
enable-feature:
- promql-at-modifier
- remote-write-receiver
prometheus_alertmanager_config:
- scheme: https
path_prefix: /alertmanager
basic_auth:
username: user
password: pass
static_configs:
- targets: ["127.0.0.1:9090"]
proxy_url: "127.0.0.2"
prometheus_alert_relabel_configs:
- action: labeldrop
regex: replica
prometheus_global:
scrape_interval: 3s
scrape_timeout: 2s
evaluation_interval: 10s
prometheus_remote_write:
- url: http://influx.example.org:8086/api/v1/prom/write?db=test
basic_auth:
username: prometheus
password: SuperSecret
prometheus_remote_read:
- url: http://influx.example.org:8086/api/v1/prom/read?db=demo
prometheus_external_labels:
environment: "alternative"
prometheus_targets:
node:
- targets:
- node.demo.do.prometheus.io
- influx.example.org:9100
labels:
env: demo
docker:
- targets:
- demo.do.prometheus.io:8080
- influx.example.org:8080
labels:
env: demo
prometheus_scrape_configs:
- job_name: "prometheus"
metrics_path: "{{ prometheus_metrics_path }}"
static_configs:
- targets:
- "{{ ansible_fqdn | default(ansible_host) | default('localhost')\
\ }}:9090"
- job_name: "node"
file_sd_configs:
- files:
- "{{ prometheus_config_dir }}/file_sd/node.yml"
- job_name: "docker"
file_sd_configs:
- files:
- "{{ prometheus_config_dir }}/file_sd/docker.yml"
- job_name: 'blackbox'
metrics_path: /probe
params:
module: [http_2xx]
static_configs:
- targets:
- http://node.demo.do.prometheus.io
- http://influx.example.org:9100
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 127.0.0.1:9115 # Blackbox exporter.
version: 2.25.2

View file

@ -1,16 +1,13 @@
--- ---
- name: Prepare - name: Run local preparation
hosts: localhost hosts: localhost
gather_facts: false gather_facts: false
vars:
# This is meant to test a local prepared binary. It needs to be updated to support the minium
# flag features in the systemd service file.
version: 2.25.2
tasks: tasks:
- name: Download prometheus binary to local folder - name: Download prometheus binary to local folder
become: false become: false
ansible.builtin.get_url: ansible.builtin.get_url:
url: "https://github.com/prometheus/prometheus/releases/download/v{{ version }}/prometheus-{{ version }}.linux-amd64.tar.gz" url: "https://github.com/prometheus/prometheus/releases/download/v{{ version\
\ }}/prometheus-{{ version }}.linux-amd64.tar.gz"
dest: "/tmp/prometheus-{{ version }}.linux-amd64.tar.gz" dest: "/tmp/prometheus-{{ version }}.linux-amd64.tar.gz"
mode: 0644 mode: 0644
register: _download_archive register: _download_archive

View file

@ -1,6 +0,0 @@
---
- name: Run role
hosts: all
any_errors_fatal: true
roles:
- prometheus.prometheus.prometheus

View file

@ -1 +1,5 @@
--- ---
provisioner:
inventory:
group_vars:
all: {}

View file

@ -1,8 +0,0 @@
---
- name: Run role
hosts: all
any_errors_fatal: true
roles:
- prometheus.prometheus.prometheus
vars:
prometheus_version: latest

View file

@ -1 +1,6 @@
--- ---
provisioner:
inventory:
group_vars:
all:
prometheus_version: latest

View file

@ -1,36 +0,0 @@
---
- name: Run role
hosts: all
any_errors_fatal: true
roles:
- prometheus.prometheus.pushgateway
pre_tasks:
- name: Create pushgateway cert dir
ansible.builtin.file:
path: "{{ pushgateway_tls_server_config.cert_file | dirname }}"
state: directory
owner: root
group: root
mode: u+rwX,g+rwX,o=rX
- name: Copy cert and key
ansible.builtin.copy:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
mode: "{{ item.mode | default('0644') }}"
loop:
- src: "/tmp/tls.cert"
dest: "{{ pushgateway_tls_server_config.cert_file }}"
- src: "/tmp/tls.key"
dest: "{{ pushgateway_tls_server_config.key_file }}"
vars:
pushgateway_binary_local_dir: "/tmp/pushgateway-linux-amd64"
pushgateway_web_listen_address: "127.0.0.1:8080"
pushgateway_tls_server_config:
cert_file: /etc/pushgateway/tls.cert
key_file: /etc/pushgateway/tls.key
pushgateway_http_server_config:
http2: true
pushgateway_basic_auth_users:
randomuser: examplepassword

View file

@ -1 +1,16 @@
--- ---
provisioner:
inventory:
group_vars:
all:
pushgateway_binary_local_dir: "/tmp/pushgateway-linux-amd64"
pushgateway_web_listen_address: "127.0.0.1:8080"
pushgateway_tls_server_config:
cert_file: /etc/pushgateway/tls.cert
key_file: /etc/pushgateway/tls.key
pushgateway_http_server_config:
http2: true
pushgateway_basic_auth_users:
randomuser: examplepassword
go_arch: amd64
pushgateway_version: 1.5.1

View file

@ -1,16 +1,13 @@
--- ---
- name: Prepare - name: Run localhost preparation
hosts: localhost hosts: localhost
gather_facts: false gather_facts: false
vars:
go_arch: amd64
pushgateway_version: 1.5.1
tasks: tasks:
- name: Download pushgateway binary to local folder - name: Download pushgateway binary to local folder
become: false become: false
ansible.builtin.get_url: ansible.builtin.get_url:
url: "https://github.com/prometheus/pushgateway/releases/download/v{{ pushgateway_version }}/\ url: "https://github.com/prometheus/pushgateway/releases/download/v{{ pushgateway_version\
pushgateway-{{ pushgateway_version }}.linux-{{ go_arch }}.tar.gz" \ }}/pushgateway-{{ pushgateway_version }}.linux-{{ go_arch }}.tar.gz"
dest: "/tmp/pushgateway-{{ pushgateway_version }}.linux-{{ go_arch }}.tar.gz" dest: "/tmp/pushgateway-{{ pushgateway_version }}.linux-{{ go_arch }}.tar.gz"
mode: 0644 mode: 0644
register: _download_binary register: _download_binary
@ -54,3 +51,26 @@
csr_path: "/tmp/tls.csr" csr_path: "/tmp/tls.csr"
privatekey_path: "/tmp/tls.key" privatekey_path: "/tmp/tls.key"
provider: selfsigned provider: selfsigned
- name: Run target preparation
hosts: all
any_errors_fatal: true
tasks:
- name: Create pushgateway cert dir
ansible.builtin.file:
path: "{{ pushgateway_tls_server_config.cert_file | dirname }}"
state: directory
owner: root
group: root
mode: u+rwX,g+rwX,o=rX
- name: Copy cert and key
ansible.builtin.copy:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
mode: "{{ item.mode | default('0644') }}"
loop:
- src: "/tmp/tls.cert"
dest: "{{ pushgateway_tls_server_config.cert_file }}"
- src: "/tmp/tls.key"
dest: "{{ pushgateway_tls_server_config.key_file }}"

View file

@ -1,8 +0,0 @@
---
- name: Converge
hosts: all
any_errors_fatal: true
roles:
- prometheus.prometheus.pushgateway
vars:
pushgateway_web_listen_address: "127.0.0.1:9091"

View file

@ -1 +1,6 @@
--- ---
provisioner:
inventory:
group_vars:
all:
pushgateway_web_listen_address: "127.0.0.1:9091"

View file

@ -1,8 +0,0 @@
---
- name: Run role
hosts: all
any_errors_fatal: true
roles:
- prometheus.prometheus.pushgateway
vars:
pushgateway_version: latest

View file

@ -1 +1,6 @@
--- ---
provisioner:
inventory:
group_vars:
all:
pushgateway_version: latest

View file

@ -1,36 +0,0 @@
---
- name: Run role
hosts: all
any_errors_fatal: true
roles:
- prometheus.prometheus.smokeping_prober
pre_tasks:
- name: Create smokeping_prober cert dir
ansible.builtin.file:
path: "{{ smokeping_prober_tls_server_config.cert_file | dirname }}"
state: directory
owner: root
group: root
mode: u+rwX,g+rwX,o=rX
- name: Copy cert and key
ansible.builtin.copy:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
mode: "{{ item.mode | default('0644') }}"
loop:
- src: "/tmp/tls.cert"
dest: "{{ smokeping_prober_tls_server_config.cert_file }}"
- src: "/tmp/tls.key"
dest: "{{ smokeping_prober_tls_server_config.key_file }}"
vars:
smokeping_prober_binary_local_dir: "/tmp/smokeping_prober-linux-amd64"
smokeping_prober_web_listen_address: "127.0.0.1:8080"
smokeping_prober_tls_server_config:
cert_file: /etc/smokeping_prober/tls.cert
key_file: /etc/smokeping_prober/tls.key
smokeping_prober_http_server_config:
http2: true
smokeping_prober_basic_auth_users:
randomuser: examplepassword

View file

@ -1 +1,16 @@
--- ---
provisioner:
inventory:
group_vars:
all:
smokeping_prober_binary_local_dir: "/tmp/smokeping_prober-linux-amd64"
smokeping_prober_web_listen_address: "127.0.0.1:8080"
smokeping_prober_tls_server_config:
cert_file: /etc/smokeping_prober/tls.cert
key_file: /etc/smokeping_prober/tls.key
smokeping_prober_http_server_config:
http2: true
smokeping_prober_basic_auth_users:
randomuser: examplepassword
go_arch: amd64
smokeping_prober_version: 0.6.1

View file

@ -1,17 +1,16 @@
--- ---
- name: Prepare - name: Run local preparation
hosts: localhost hosts: localhost
gather_facts: false gather_facts: false
vars:
go_arch: amd64
smokeping_prober_version: 0.6.1
tasks: tasks:
- name: Download smokeping_prober binary to local folder - name: Download smokeping_prober binary to local folder
become: false become: false
ansible.builtin.get_url: ansible.builtin.get_url:
url: "https://github.com/superq/smokeping_prober/releases/download/v{{ smokeping_prober_version }}/\ url: "https://github.com/superq/smokeping_prober/releases/download/v{{ smokeping_prober_version\
smokeping_prober-{{ smokeping_prober_version }}.linux-{{ go_arch }}.tar.gz" \ }}/smokeping_prober-{{ smokeping_prober_version }}.linux-{{ go_arch\
dest: "/tmp/smokeping_prober-{{ smokeping_prober_version }}.linux-{{ go_arch }}.tar.gz" \ }}.tar.gz"
dest: "/tmp/smokeping_prober-{{ smokeping_prober_version }}.linux-{{ go_arch\
\ }}.tar.gz"
mode: 0644 mode: 0644
register: _download_binary register: _download_binary
until: _download_binary is succeeded until: _download_binary is succeeded
@ -22,9 +21,11 @@
- name: Unpack smokeping_prober binary - name: Unpack smokeping_prober binary
become: false become: false
ansible.builtin.unarchive: ansible.builtin.unarchive:
src: "/tmp/smokeping_prober-{{ smokeping_prober_version }}.linux-{{ go_arch }}.tar.gz" src: "/tmp/smokeping_prober-{{ smokeping_prober_version }}.linux-{{ go_arch\
\ }}.tar.gz"
dest: "/tmp" dest: "/tmp"
creates: "/tmp/smokeping_prober-{{ smokeping_prober_version }}.linux-{{ go_arch }}/smokeping_prober" creates: "/tmp/smokeping_prober-{{ smokeping_prober_version }}.linux-{{\
\ go_arch }}/smokeping_prober"
check_mode: false check_mode: false
- name: Link to smokeping_prober binaries directory - name: Link to smokeping_prober binaries directory
@ -54,3 +55,26 @@
csr_path: "/tmp/tls.csr" csr_path: "/tmp/tls.csr"
privatekey_path: "/tmp/tls.key" privatekey_path: "/tmp/tls.key"
provider: selfsigned provider: selfsigned
- name: Run target preparation
hosts: all
any_errors_fatal: true
tasks:
- name: Create smokeping_prober cert dir
ansible.builtin.file:
path: "{{ smokeping_prober_tls_server_config.cert_file | dirname }}"
state: directory
owner: root
group: root
mode: u+rwX,g+rwX,o=rX
- name: Copy cert and key
ansible.builtin.copy:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
mode: "{{ item.mode | default('0644') }}"
loop:
- src: "/tmp/tls.cert"
dest: "{{ smokeping_prober_tls_server_config.cert_file }}"
- src: "/tmp/tls.key"
dest: "{{ smokeping_prober_tls_server_config.key_file }}"

View file

@ -1,8 +0,0 @@
---
- name: Converge
hosts: all
any_errors_fatal: true
roles:
- prometheus.prometheus.smokeping_prober
vars:
smokeping_prober_web_listen_address: "127.0.0.1:9374"

View file

@ -1 +1,6 @@
--- ---
provisioner:
inventory:
group_vars:
all:
smokeping_prober_web_listen_address: "127.0.0.1:9374"

View file

@ -1,8 +0,0 @@
---
- name: Run role
hosts: all
any_errors_fatal: true
roles:
- prometheus.prometheus.smokeping_prober
vars:
smokeping_prober_version: latest

View file

@ -1 +1,6 @@
--- ---
provisioner:
inventory:
group_vars:
all:
smokeping_prober_version: latest

View file

@ -1,8 +0,0 @@
---
- name: Converge
hosts: all
roles:
- prometheus.prometheus.snmp_exporter
vars:
snmp_exporter_web_listen_address: "127.0.0.1:9116"
snmp_exporter_config_file: snmp.yml

View file

@ -1 +1,7 @@
--- ---
provisioner:
inventory:
group_vars:
all:
snmp_exporter_web_listen_address: "127.0.0.1:9116"
snmp_exporter_config_file: snmp.yml

View file

@ -1,7 +0,0 @@
---
- name: Converge
hosts: all
roles:
- prometheus.prometheus.snmp_exporter
vars:
snmp_exporter_web_listen_address: "127.0.0.1:9116"

View file

@ -1 +1,6 @@
--- ---
provisioner:
inventory:
group_vars:
all:
snmp_exporter_web_listen_address: "127.0.0.1:9116"

View file

@ -1 +1,9 @@
--- ---
provisioner:
inventory:
group_vars:
all:
systemd_exporter_binary_local_dir: "/tmp/systemd_exporter-linux-amd64"
systemd_exporter_web_listen_address: "127.0.0.1:9000"
go_arch: amd64
systemd_exporter_version: 0.4.0

View file

@ -1,9 +0,0 @@
---
- name: Run role
hosts: all
any_errors_fatal: true
roles:
- prometheus.prometheus.systemd_exporter
vars:
systemd_exporter_binary_local_dir: "/tmp/systemd_exporter-linux-amd64"
systemd_exporter_web_listen_address: "127.0.0.1:9000"

View file

@ -1,17 +1,16 @@
--- ---
- name: Prepare - name: Run local preparation
hosts: localhost hosts: localhost
gather_facts: false gather_facts: false
vars:
go_arch: amd64
systemd_exporter_version: 0.4.0
tasks: tasks:
- name: Download systemd_exporter binary to local folder - name: Download systemd_exporter binary to local folder
become: false become: false
ansible.builtin.get_url: ansible.builtin.get_url:
url: "https://github.com/prometheus-community/systemd_exporter/releases/download/v{{ systemd_exporter_version }}/\ url: "https://github.com/prometheus-community/systemd_exporter/releases/download/v{{\
systemd_exporter-{{ systemd_exporter_version }}.linux-{{ go_arch }}.tar.gz" \ systemd_exporter_version }}/systemd_exporter-{{ systemd_exporter_version\
dest: "/tmp/systemd_exporter-{{ systemd_exporter_version }}.linux-{{ go_arch }}.tar.gz" \ }}.linux-{{ go_arch }}.tar.gz"
dest: "/tmp/systemd_exporter-{{ systemd_exporter_version }}.linux-{{ go_arch\
\ }}.tar.gz"
mode: 0644 mode: 0644
register: _download_binary register: _download_binary
until: _download_binary is succeeded until: _download_binary is succeeded
@ -22,9 +21,11 @@
- name: Unpack systemd_exporter binary - name: Unpack systemd_exporter binary
become: false become: false
ansible.builtin.unarchive: ansible.builtin.unarchive:
src: "/tmp/systemd_exporter-{{ systemd_exporter_version }}.linux-{{ go_arch }}.tar.gz" src: "/tmp/systemd_exporter-{{ systemd_exporter_version }}.linux-{{ go_arch\
\ }}.tar.gz"
dest: "/tmp" dest: "/tmp"
creates: "/tmp/systemd_exporter-{{ systemd_exporter_version }}.linux-{{ go_arch }}/systemd_exporter" creates: "/tmp/systemd_exporter-{{ systemd_exporter_version }}.linux-{{\
\ go_arch }}/systemd_exporter"
check_mode: false check_mode: false
- name: Link to systemd_exporter binaries directory - name: Link to systemd_exporter binaries directory

View file

@ -1 +1,5 @@
--- ---
provisioner:
inventory:
group_vars:
all: {}

View file

@ -1 +1,5 @@
--- ---
provisioner:
inventory:
group_vars:
all: {}