Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create systemd service fails with template error #451

Open
kwelch426 opened this issue Nov 1, 2024 · 0 comments
Open

Create systemd service fails with template error #451

kwelch426 opened this issue Nov 1, 2024 · 0 comments

Comments

@kwelch426
Copy link

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 `
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants