feat(suse): support packaged installations
- add all components available in the default openSUSE Leap (OSS) repository to osfamilymap - introduce global manage_user_group toggle to prevent the formula from changing users and groups managed by system packages - allow configuration file override using pkg:component:<component>:config_file Signed-off-by: Georg Pfuetzenreuter <mail@georg-pfuetzenreuter.net>
This commit is contained in:
parent
d5cfeb0d80
commit
dcd585b322
@ -31,7 +31,12 @@ prometheus-config-file-etc-file-directory:
|
|||||||
|
|
||||||
prometheus-config-file-{{ name }}-file-managed:
|
prometheus-config-file-{{ name }}-file-managed:
|
||||||
file.managed:
|
file.managed:
|
||||||
- name: {{ p.dir.etc }}{{ p.div }}{{ name }}.yml
|
{%- if 'config_file' in p.pkg.component[name] %}
|
||||||
|
{%- set config_file = p.pkg.component[name]['config_file'] %}
|
||||||
|
{%- else %}
|
||||||
|
{%- set config_file = p.dir.etc ~ p.div ~ name ~ '.yml' %}
|
||||||
|
{%- endif %}
|
||||||
|
- name: {{ config_file }}
|
||||||
- source: {{ files_switch(['config.yml.jinja'],
|
- source: {{ files_switch(['config.yml.jinja'],
|
||||||
lookup='prometheus-config-file-' ~ name ~ '-file-managed'
|
lookup='prometheus-config-file-' ~ name ~ '-file-managed'
|
||||||
)
|
)
|
||||||
@ -40,15 +45,19 @@ prometheus-config-file-{{ name }}-file-managed:
|
|||||||
- template: jinja
|
- template: jinja
|
||||||
{%- if grains.os != 'Windows' %}
|
{%- if grains.os != 'Windows' %}
|
||||||
- mode: 644
|
- mode: 644
|
||||||
|
{%- if p.manage_user_group %}
|
||||||
- user: {{ name }}
|
- user: {{ name }}
|
||||||
- group: {{ name }}
|
- group: {{ name }}
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
|
{%- endif %}
|
||||||
- context:
|
- context:
|
||||||
config: {{ p.pkg.component[name]['config']|json }}
|
config: {{ p.pkg.component[name]['config']|json }}
|
||||||
- require:
|
- require:
|
||||||
- file: prometheus-config-file-etc-file-directory
|
- file: prometheus-config-file-etc-file-directory
|
||||||
|
{%- if p.manage_user_group %}
|
||||||
- user: prometheus-config-users-install-{{ name }}-user-present
|
- user: prometheus-config-users-install-{{ name }}-user-present
|
||||||
- group: prometheus-config-users-install-{{ name }}-group-present
|
- group: prometheus-config-users-install-{{ name }}-group-present
|
||||||
|
{%- endif %}
|
||||||
- watch_in:
|
- watch_in:
|
||||||
- service: prometheus-service-running-{{ name }}
|
- service: prometheus-service-running-{{ name }}
|
||||||
|
|
||||||
@ -71,15 +80,19 @@ prometheus-config-file-{{ ef }}-file-managed:
|
|||||||
- template: jinja
|
- template: jinja
|
||||||
{%- if grains.os != 'Windows' %}
|
{%- if grains.os != 'Windows' %}
|
||||||
- mode: 644
|
- mode: 644
|
||||||
|
{%- if p.manage_user_group %}
|
||||||
- user: {{ component }}
|
- user: {{ component }}
|
||||||
- group: {{ component }}
|
- group: {{ component }}
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
|
{%- endif %}
|
||||||
- context:
|
- context:
|
||||||
config: {{ p.extra_files[ef]['config'] }}
|
config: {{ p.extra_files[ef]['config'] }}
|
||||||
- require:
|
- require:
|
||||||
- file: prometheus-config-file-etc-file-directory
|
- file: prometheus-config-file-etc-file-directory
|
||||||
|
{%- if p.manage_user_group %}
|
||||||
- user: prometheus-config-users-install-{{ component }}-user-present
|
- user: prometheus-config-users-install-{{ component }}-user-present
|
||||||
- group: prometheus-config-users-install-{{ component }}-group-present
|
- group: prometheus-config-users-install-{{ component }}-group-present
|
||||||
|
{%- endif %}
|
||||||
- watch_in:
|
- watch_in:
|
||||||
- service: prometheus-service-running-{{ component }}
|
- service: prometheus-service-running-{{ component }}
|
||||||
|
|
||||||
|
@ -24,9 +24,11 @@ prometheus-service-args-{{ name }}-data-dir:
|
|||||||
- makedirs: True
|
- makedirs: True
|
||||||
- watch_in:
|
- watch_in:
|
||||||
- service: prometheus-service-running-{{ name }}
|
- service: prometheus-service-running-{{ name }}
|
||||||
|
{%- if p.manage_user_group %}
|
||||||
- require:
|
- require:
|
||||||
- user: prometheus-config-users-install-{{ name }}-user-present
|
- user: prometheus-config-users-install-{{ name }}-user-present
|
||||||
- group: prometheus-config-users-install-{{ name }}-group-present
|
- group: prometheus-config-users-install-{{ name }}-group-present
|
||||||
|
{%- endif %}
|
||||||
|
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
{%- set tplroot = tpldir.split('/')[0] %}
|
{%- set tplroot = tpldir.split('/')[0] %}
|
||||||
{%- from tplroot ~ "/map.jinja" import prometheus as p with context %}
|
{%- from tplroot ~ "/map.jinja" import prometheus as p with context %}
|
||||||
|
|
||||||
|
{%- if p.manage_user_group or p.pkg.use_upstream_archive %}
|
||||||
{%- for name in p.wanted.component %}
|
{%- for name in p.wanted.component %}
|
||||||
|
|
||||||
prometheus-config-users-install-{{ name }}-group-present:
|
prometheus-config-users-install-{{ name }}-group-present:
|
||||||
@ -29,3 +30,4 @@ prometheus-config-users-install-{{ name }}-user-present:
|
|||||||
{%- endif %}
|
{%- endif %}
|
||||||
|
|
||||||
{%- endfor %}
|
{%- endfor %}
|
||||||
|
{%- endif %}
|
||||||
|
@ -23,6 +23,8 @@ prometheus:
|
|||||||
tmp: /tmp/prometheus
|
tmp: /tmp/prometheus
|
||||||
var: /var/lib/prometheus
|
var: /var/lib/prometheus
|
||||||
|
|
||||||
|
manage_user_group: true
|
||||||
|
|
||||||
pkg:
|
pkg:
|
||||||
uri: https://github.com/prometheus
|
uri: https://github.com/prometheus
|
||||||
use_upstream_repo: false
|
use_upstream_repo: false
|
||||||
|
@ -22,9 +22,11 @@ prometheus-exporters-{{ name }}-collector-textfile-dir:
|
|||||||
- group: {{ name }}
|
- group: {{ name }}
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
- makedirs: True
|
- makedirs: True
|
||||||
|
{%- if p.manage_user_group %}
|
||||||
- require:
|
- require:
|
||||||
- user: prometheus-config-users-install-{{ name }}-user-present
|
- user: prometheus-config-users-install-{{ name }}-user-present
|
||||||
- group: prometheus-config-users-install-{{ name }}-group-present
|
- group: prometheus-config-users-install-{{ name }}-group-present
|
||||||
|
{%- endif %}
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
|
|
||||||
{%- for k, v in p.get('exporters', {}).get(name, {}).get('textfile_collectors', {}).items() %}
|
{%- for k, v in p.get('exporters', {}).get(name, {}).get('textfile_collectors', {}).items() %}
|
||||||
|
@ -219,7 +219,66 @@ RedHat:
|
|||||||
sslcacert: /etc/pki/tls/certs/ca-bundle.crt
|
sslcacert: /etc/pki/tls/certs/ca-bundle.crt
|
||||||
metadata_expire: 300
|
metadata_expire: 300
|
||||||
|
|
||||||
Suse: {}
|
Suse:
|
||||||
|
manage_user_group: false
|
||||||
|
pkg:
|
||||||
|
use_upstream_repo: false
|
||||||
|
use_upstream_package: false
|
||||||
|
use_upstream_archive: false
|
||||||
|
component:
|
||||||
|
alertmanager:
|
||||||
|
name: golang-github-prometheus-alertmanager
|
||||||
|
service:
|
||||||
|
name: prometheus-alertmanager
|
||||||
|
environ_file: /etc/sysconfig/prometheus-alertmanager
|
||||||
|
args:
|
||||||
|
config.file: /etc/prometheus/alertmanager.yml
|
||||||
|
config_file: /etc/prometheus/alertmanager.yml
|
||||||
|
prometheus:
|
||||||
|
name: golang-github-prometheus-prometheus
|
||||||
|
service:
|
||||||
|
name: prometheus
|
||||||
|
environ_file: /etc/sysconfig/prometheus
|
||||||
|
environ:
|
||||||
|
environ_arg_name: ARGS
|
||||||
|
config_file: /etc/prometheus/prometheus.yml
|
||||||
|
blackbox_exporter:
|
||||||
|
name: prometheus-blackbox_exporter
|
||||||
|
config_file: /etc/prometheus/blackbox.yml
|
||||||
|
service:
|
||||||
|
name: prometheus-blackbox_exporter
|
||||||
|
hacluster_exporter:
|
||||||
|
name: prometheus-ha_cluster_exporter
|
||||||
|
environ_file: /etc/sysconfig/prometheus-ha_cluster_exporter
|
||||||
|
environ:
|
||||||
|
environ_arg_name: ARGS
|
||||||
|
service:
|
||||||
|
name: prometheus-ha_cluster_exporter
|
||||||
|
node_exporter:
|
||||||
|
name: golang-github-prometheus-node_exporter
|
||||||
|
service:
|
||||||
|
name: prometheus-node_exporter
|
||||||
|
environ_file: /etc/sysconfig/prometheus-node_exporter
|
||||||
|
environ:
|
||||||
|
environ_arg_name: ARGS
|
||||||
|
postgres_exporter:
|
||||||
|
name: prometheus-postgres_exporter
|
||||||
|
service:
|
||||||
|
name: prometheus-postgres_exporter
|
||||||
|
environ_file: /etc/sysconfig/prometheus-postgres_exporter
|
||||||
|
environ:
|
||||||
|
environ_arg_name: POSTGRES_EXPORTER_PARAMS
|
||||||
|
saptune_exporter:
|
||||||
|
name: prometheus-saptune_exporter
|
||||||
|
service:
|
||||||
|
name: prometheus-saptune_exporter
|
||||||
|
webhook_snmp:
|
||||||
|
name: prometheus-webhook-snmp
|
||||||
|
service:
|
||||||
|
name: prometheus-webhook-snmp
|
||||||
|
environ_file: /etc/default/prometheus-webhook-snmp
|
||||||
|
environ:
|
||||||
|
environ_arg_name: PROMETHEUS_WEBHOOK_SNMP_OPTIONS
|
||||||
|
|
||||||
Gentoo:
|
Gentoo:
|
||||||
pkg:
|
pkg:
|
||||||
|
@ -30,9 +30,11 @@ prometheus-service-args-{{ name }}-data-dir:
|
|||||||
- makedirs: True
|
- makedirs: True
|
||||||
- watch_in:
|
- watch_in:
|
||||||
- service: prometheus-service-running-{{ name }}
|
- service: prometheus-service-running-{{ name }}
|
||||||
|
{%- if p.manage_user_group %}
|
||||||
- require:
|
- require:
|
||||||
- user: prometheus-config-users-install-{{ name }}-user-present
|
- user: prometheus-config-users-install-{{ name }}-user-present
|
||||||
- group: prometheus-config-users-install-{{ name }}-group-present
|
- group: prometheus-config-users-install-{{ name }}-group-present
|
||||||
|
{%- endif %}
|
||||||
|
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
{%- if grains.os_family == 'FreeBSD' %}
|
{%- if grains.os_family == 'FreeBSD' %}
|
||||||
|
@ -13,6 +13,12 @@ prometheus:
|
|||||||
- alertmanager
|
- alertmanager
|
||||||
- node_exporter
|
- node_exporter
|
||||||
- blackbox_exporter
|
- blackbox_exporter
|
||||||
|
{%- if grains.os == 'SUSE' %}
|
||||||
|
- hacluster_exporter
|
||||||
|
- postgres_exporter
|
||||||
|
- saptune_exporter
|
||||||
|
- webhook_snmp
|
||||||
|
{%- endif %}
|
||||||
|
|
||||||
exporters:
|
exporters:
|
||||||
node_exporter:
|
node_exporter:
|
||||||
@ -31,7 +37,7 @@ prometheus:
|
|||||||
|
|
||||||
pkg:
|
pkg:
|
||||||
# yamllint disable-line rule:braces rule:commas
|
# yamllint disable-line rule:braces rule:commas
|
||||||
use_upstream_repo: {{ false if grains.os_family|lower in ('debian',) else true }}
|
use_upstream_repo: {{ false if grains.os_family|lower in ('debian','suse',) else true }}
|
||||||
use_upstream_archive: false
|
use_upstream_archive: false
|
||||||
|
|
||||||
clientlibs:
|
clientlibs:
|
||||||
|
Loading…
Reference in New Issue
Block a user