-
Notifications
You must be signed in to change notification settings - Fork 156
Open
Labels
Description
Getting the below error on AmazonLinux 2 with debug on. I ran the same code on Ubuntu 22.04LTS and AmazonLinux 2023 without any issues. Ansible version is 2.9.27. Python version is 2.7.18
The playbook variables I am using are:
- name: install node exporter
hosts: all
vars:
node_exporter_version: "1.8.2"
node_exporter_web_listen_address: "0.0.0.0:9100"
node_exporter_enabled_collectors:
- "systemd"
node_exporter_disabled_collectors: []
TASK [prometheus.prometheus._common : Create systemd service unit node_exporter] ***************************************************************
fatal: [localhost]: FAILED! => {
"changed": false
}
MSG:
AnsibleError: template error while templating string: expected token '=', got '.'. String: {{ ansible_managed | comment }}
[Unit]
Description=Prometheus Node Exporter
After=network-online.target
[Service]
Type=simple
User={{ node_exporter_system_user }}
Group={{ node_exporter_system_group }}
ExecStart={{ node_exporter_binary_install_dir }}/node_exporter \
{% for collector in node_exporter_enabled_collectors -%}
{% if not collector is mapping %}
'--collector.{{ collector }}' \
{% else -%}
{% set name, options = (collector.items()|list)[0] -%}
'--collector.{{ name }}' \
{% for k,v in options|dictsort %}
'--collector.{{ name }}.{{ k }}={{ v }}' \
{% endfor -%}
{% endif -%}
{% endfor -%}
{% for collector in node_exporter_disabled_collectors %}
'--no-collector.{{ collector }}' \
{% endfor %}
{% if node_exporter_tls_server_config | length > 0 or node_exporter_http_server_config | length > 0 or node_exporter_basic_auth_users | length > 0 %}
{% if node_exporter_version is version('1.5.0', '>=') %}
'--web.config.file={{ node_exporter_config_dir }}/web_config.yml' \
{% else %}
'--web.config={{ node_exporter_config_dir }}/web_config.yml' \
{% endif %}
{% endif %}
{% if node_exporter_web_disable_exporter_metrics %}
'--web.disable-exporter-metrics' \
{% endif %}
{% if node_exporter_version is version('1.5.0', '>=') and
node_exporter_web_listen_address is iterable and
node_exporter_web_listen_address is not mapping and
node_exporter_web_listen_address is not string %}
{% for address in node_exporter_web_listen_address %}
'--web.listen-address={{ address }}' \
{% endfor %}
{% else %}
'--web.listen-address={{ node_exporter_web_listen_address }}' \
{% endif %}
'--web.telemetry-path={{ node_exporter_web_telemetry_path }}'
SyslogIdentifier=node_exporter
Restart=always
RestartSec=1
StartLimitInterval=0
{% set ns = namespace(protect_home = 'yes') %}
{% for m in ansible_mounts if m.mount.startswith('/home') %}
{% set ns.protect_home = 'read-only' %}
{% endfor %}
{% if node_exporter_textfile_dir.startswith('/home') %}
{% set ns.protect_home = 'read-only' %}
{% endif %}
ProtectHome={{ ns.protect_home }}
NoNewPrivileges=yes
{% if (ansible_facts.packages.systemd | first).version is version('232', '>=') %}
ProtectSystem=strict
ProtectControlGroups=true
ProtectKernelModules=true
ProtectKernelTunables=yes
{% else %}
ProtectSystem=full
{% endif %}
[Install]
WantedBy=multi-user.target
RUNNING HANDLER [prometheus.prometheus.node_exporter : Restart node_exporter] ******************************************************************
PLAY RECAP *************************************************************************************************************************************
localhost : ok=23 changed=4 unreachable=0 failed=1 skipped=11 rescued=0 ignored=0 `