diff options
Diffstat (limited to 'roles')
4 files changed, 49 insertions, 5 deletions
diff --git a/roles/monitoring/prometheus/exporter/register/templates/snmp/probe.yml.j2 b/roles/monitoring/prometheus/exporter/register/templates/snmp/probe.yml.j2 index 3ecf129a..a50a32ff 100644 --- a/roles/monitoring/prometheus/exporter/register/templates/snmp/probe.yml.j2 +++ b/roles/monitoring/prometheus/exporter/register/templates/snmp/probe.yml.j2 @@ -3,6 +3,9 @@ instance: '{{ target.instance }}' __param_target: '{{ target.config.target }}' __param_module: '{{ target.config.module }}' +{% if 'auth' in target.config %} + __param_auth: '{{ target.config.auth }}' +{% endif %} {% for name, value in prometheus_target_labels.items() %} {{ name }}: '{{ value }}' {% endfor %} diff --git a/roles/monitoring/prometheus/exporter/snmp/defaults/main.yml b/roles/monitoring/prometheus/exporter/snmp/defaults/main.yml index a8c67a23..45cff8aa 100644 --- a/roles/monitoring/prometheus/exporter/snmp/defaults/main.yml +++ b/roles/monitoring/prometheus/exporter/snmp/defaults/main.yml @@ -5,4 +5,5 @@ # prometheus_exporter_snmp_config: ## this extends the default config -# prometheus_exporter_snmp_config_extra: +# prometheus_exporter_snmp_auths_extra: +# prometheus_exporter_snmp_modules_extra: diff --git a/roles/monitoring/prometheus/exporter/snmp/tasks/main.yml b/roles/monitoring/prometheus/exporter/snmp/tasks/main.yml index 8fc93f0b..66b6f6b7 100644 --- a/roles/monitoring/prometheus/exporter/snmp/tasks/main.yml +++ b/roles/monitoring/prometheus/exporter/snmp/tasks/main.yml @@ -28,14 +28,47 @@ dest: /etc/prometheus/exporter/snmp/config.yml notify: reload prometheus-snmp-exporter -- name: extend the default configuration +- name: add extra auths to default configuration when: - prometheus_exporter_snmp_config is not defined - - prometheus_exporter_snmp_config_extra is defined + - prometheus_exporter_snmp_auths_extra is defined blockinfile: path: /etc/prometheus/exporter/snmp/config.yml + insertbefore: '^modules:' + marker: '# {mark} ANSIBLE MANAGED BLOCK auths-extra' block: | - {{ prometheus_exporter_snmp_config_extra | to_nice_yaml(indent=2) }} + {{ ' ' }}{{ prometheus_exporter_snmp_auths_extra | to_nice_yaml(indent=2) | indent(2) }} + notify: reload prometheus-snmp-exporter + +- name: remove extra auths from default configuration + when: + - prometheus_exporter_snmp_config is not defined + - prometheus_exporter_snmp_auths_extra is not defined + blockinfile: + path: /etc/prometheus/exporter/snmp/config.yml + marker: '# {mark} ANSIBLE MANAGED BLOCK auths-extra' + state: absent + notify: reload prometheus-snmp-exporter + +- name: add extra modules to default configuration + when: + - prometheus_exporter_snmp_config is not defined + - prometheus_exporter_snmp_modules_extra is defined + blockinfile: + path: /etc/prometheus/exporter/snmp/config.yml + marker: '# {mark} ANSIBLE MANAGED BLOCK modules-extra' + block: | + {{ ' ' }}{{ prometheus_exporter_snmp_modules_extra | to_nice_yaml(indent=2) | indent(2) }} + notify: reload prometheus-snmp-exporter + +- name: remove extra modules from default configuration + when: + - prometheus_exporter_snmp_config is not defined + - prometheus_exporter_snmp_modules_extra is not defined + blockinfile: + path: /etc/prometheus/exporter/snmp/config.yml + marker: '# {mark} ANSIBLE MANAGED BLOCK modules-extra' + state: absent notify: reload prometheus-snmp-exporter - name: generate systemd service unit diff --git a/roles/monitoring/prometheus/exporter/snmp/templates/config.yml.j2 b/roles/monitoring/prometheus/exporter/snmp/templates/config.yml.j2 index c75b8469..0f84b705 100644 --- a/roles/monitoring/prometheus/exporter/snmp/templates/config.yml.j2 +++ b/roles/monitoring/prometheus/exporter/snmp/templates/config.yml.j2 @@ -1,3 +1,10 @@ # {{ ansible_managed }} -{{ prometheus_exporter_snmp_config | combine(prometheus_exporter_snmp_config_extra | default({})) | to_nice_yaml(indent=2) }} +{% set config_extra = dict() %} +{% if prometheus_exporter_snmp_auths_extra is defined %} +{% config_extra.update{'auths': prometheus_exporter_snmp_auths_extra } %} +{% endif %} +{% if prometheus_exporter_snmp_modules_extra is defined %} +{% config_extra.update{'modules': prometheus_exporter_snmp_modules_extra } %} +{% endif %} +{{ prometheus_exporter_snmp_config | combine(config_extra) | to_nice_yaml(indent=2) }} |