ansible-datadog
ansible-datadog copied to clipboard
Malformed output discovered from systemd list-unit-files
Debian 11 FAILED! => {"changed": false, "msg": "Malformed output discovered from systemd list-unit-files: someservice.service enabled enabled"}
:wave: Could you please provide more context on how you executed your role and the full output so we could see where exactly this happened? someservice.service
doesn't look like something our role created, so it's possible that your system is misconfigured and systemd has problems with that.
On a vm debian 11, fresh install. I ran the ansible playbook
---
- name: apply the dotnet core linux configuration
hosts: core
become: yes
roles:
- { role: datadog.datadog, tags: datadog_config }
vars:
datadog_api_key: "0"
datadog_site: "datadoghq.com"
datadog_config:
hostname: "{{ ansible_hostname }}"
logs_enabled: true
process_config:
enabled: true
apm_config:
enabled: true
ignore_resources: ["GET /api/.*/values$", "GET /api/.*/healthcheck$"]
Then the output:
PLAY [apply the dotnet core linux configuration] ************************************************************************************************************************************
TASK [Gathering Facts] **************************************************************************************************************************************************************
ok: [core.internal.local]
TASK [datadog.datadog : Include Gather Ansible Facts task on Ansible >= 2.10] *******************************************************************************************************
skipping: [core.internal.local]
TASK [datadog.datadog : Include Gather Ansible Facts task on Ansible < 2.10] ********************************************************************************************************
included: /home/denis/.ansible/roles/datadog.datadog/tasks/facts-ansible9.yml for core.internal.local
TASK [datadog.datadog : Gather Ansible Facts] ***************************************************************************************************************************************
ok: [core.internal.local]
TASK [datadog.datadog : Check if OS is supported] ***********************************************************************************************************************************
included: /home/denis/.ansible/roles/datadog.datadog/tasks/os-check.yml for core.internal.local
TASK [datadog.datadog : Fail if OS is not supported] ********************************************************************************************************************************
skipping: [core.internal.local]
TASK [datadog.datadog : Resolve datadog_tracked_checks later to defend against variable presidence issues arising from dynamically included null datadog_checks] ********************
included: /home/denis/.ansible/roles/datadog.datadog/tasks/sanitize-checks.yml for core.internal.local
TASK [datadog.datadog : Defend against defined but null datadog_checks variable] ****************************************************************************************************
ok: [core.internal.local]
TASK [datadog.datadog : Resolve datadog_tracked_checks] *****************************************************************************************************************************
ok: [core.internal.local]
TASK [datadog.datadog : Check that datadog_checks is a mapping] *********************************************************************************************************************
ok: [core.internal.local] => {
"changed": false,
"msg": "All assertions passed"
}
TASK [datadog.datadog : Set Facts for Datadog Agent Major Version] ******************************************************************************************************************
included: /home/denis/.ansible/roles/datadog.datadog/tasks/set-parse-version.yml for core.internal.local
TASK [datadog.datadog : Convert datadog_agent_major_version to string] **************************************************************************************************************
ok: [core.internal.local]
TASK [datadog.datadog : Initialize skip install flag to false] **********************************************************************************************************************
ok: [core.internal.local]
TASK [datadog.datadog : include_tasks] **********************************************************************************************************************************************
skipping: [core.internal.local]
TASK [datadog.datadog : Set Agent default major version] ****************************************************************************************************************************
ok: [core.internal.local]
TASK [datadog.datadog : Debian Install Tasks] ***************************************************************************************************************************************
included: /home/denis/.ansible/roles/datadog.datadog/tasks/pkg-debian.yml for core.internal.local
TASK [datadog.datadog : Install apt-transport-https] ********************************************************************************************************************************
ok: [core.internal.local]
TASK [datadog.datadog : Install gnupg] **********************************************************************************************************************************************
ok: [core.internal.local]
TASK [datadog.datadog : Check if /usr/share/keyrings/datadog-archive-keyring.gpg exists with correct mode] **************************************************************************
ok: [core.internal.local]
TASK [datadog.datadog : Ensure /usr/share/keyrings/datadog-archive-keyring.gpg exists] **********************************************************************************************
skipping: [core.internal.local]
TASK [datadog.datadog : Install apt keys from default URLs] *************************************************************************************************************************
included: /home/denis/.ansible/roles/datadog.datadog/tasks/_apt-key-import.yml for core.internal.local
included: /home/denis/.ansible/roles/datadog.datadog/tasks/_apt-key-import.yml for core.internal.local
included: /home/denis/.ansible/roles/datadog.datadog/tasks/_apt-key-import.yml for core.internal.local
TASK [datadog.datadog : Set local variables for processed key DATADOG_APT_KEY_CURRENT] **********************************************************************************************
ok: [core.internal.local]
TASK [datadog.datadog : Find out whether key DATADOG_APT_KEY_CURRENT is already imported] *******************************************************************************************
skipping: [core.internal.local]
TASK [datadog.datadog : Set local helper variable for determining key import (when not DATADOG_APT_KEY_CURRENT)] ********************************************************************
skipping: [core.internal.local]
TASK [datadog.datadog : Set local helper variable for determining key import (when DATADOG_APT_KEY_CURRENT)] ************************************************************************
ok: [core.internal.local]
TASK [datadog.datadog : Create temporary directory for key manipulation] ************************************************************************************************************
ok: [core.internal.local]
TASK [datadog.datadog : Download https://s3.amazonaws.com/public-signing-keys/DATADOG_APT_KEY_CURRENT.public to import key DATADOG_APT_KEY_CURRENT] *********************************
ok: [core.internal.local]
TASK [datadog.datadog : Ensure downloaded file for DATADOG_APT_KEY_CURRENT is a binary keyring] *************************************************************************************
ok: [core.internal.local]
TASK [datadog.datadog : Extract the required key from the binary keyring (when not DATADOG_APT_KEY_CURRENT)] ************************************************************************
skipping: [core.internal.local]
TASK [datadog.datadog : Extract the required key from the binary keyring (when DATADOG_APT_KEY_CURRENT)] ****************************************************************************
ok: [core.internal.local]
TASK [datadog.datadog : Import key DATADOG_APT_KEY_CURRENT to /usr/share/keyrings/datadog-archive-keyring.gpg keyring] **************************************************************
ok: [core.internal.local]
TASK [datadog.datadog : Remove temporary directory for key manipulation] ************************************************************************************************************
ok: [core.internal.local]
TASK [datadog.datadog : Set local variables for processed key A2923DFF56EDA6E76E55E492D3A80E30382E94DE] *****************************************************************************
ok: [core.internal.local]
TASK [datadog.datadog : Find out whether key A2923DFF56EDA6E76E55E492D3A80E30382E94DE is already imported] **************************************************************************
ok: [core.internal.local]
TASK [datadog.datadog : Set local helper variable for determining key import (when not DATADOG_APT_KEY_CURRENT)] ********************************************************************
ok: [core.internal.local]
TASK [datadog.datadog : Set local helper variable for determining key import (when DATADOG_APT_KEY_CURRENT)] ************************************************************************
skipping: [core.internal.local]
TASK [datadog.datadog : Create temporary directory for key manipulation] ************************************************************************************************************
skipping: [core.internal.local]
TASK [datadog.datadog : Download https://s3.amazonaws.com/public-signing-keys/DATADOG_APT_KEY_382E94DE.public to import key A2923DFF56EDA6E76E55E492D3A80E30382E94DE] ***************
skipping: [core.internal.local]
TASK [datadog.datadog : Ensure downloaded file for A2923DFF56EDA6E76E55E492D3A80E30382E94DE is a binary keyring] ********************************************************************
skipping: [core.internal.local]
TASK [datadog.datadog : Extract the required key from the binary keyring (when not DATADOG_APT_KEY_CURRENT)] ************************************************************************
skipping: [core.internal.local]
TASK [datadog.datadog : Extract the required key from the binary keyring (when DATADOG_APT_KEY_CURRENT)] ****************************************************************************
skipping: [core.internal.local]
TASK [datadog.datadog : Import key A2923DFF56EDA6E76E55E492D3A80E30382E94DE to /usr/share/keyrings/datadog-archive-keyring.gpg keyring] *********************************************
skipping: [core.internal.local]
TASK [datadog.datadog : Remove temporary directory for key manipulation] ************************************************************************************************************
skipping: [core.internal.local]
TASK [datadog.datadog : Set local variables for processed key D75CEA17048B9ACBF186794B32637D44F14F620E] *****************************************************************************
ok: [core.internal.local]
TASK [datadog.datadog : Find out whether key D75CEA17048B9ACBF186794B32637D44F14F620E is already imported] **************************************************************************
ok: [core.internal.local]
TASK [datadog.datadog : Set local helper variable for determining key import (when not DATADOG_APT_KEY_CURRENT)] ********************************************************************
ok: [core.internal.local]
TASK [datadog.datadog : Set local helper variable for determining key import (when DATADOG_APT_KEY_CURRENT)] ************************************************************************
skipping: [core.internal.local]
TASK [datadog.datadog : Create temporary directory for key manipulation] ************************************************************************************************************
skipping: [core.internal.local]
TASK [datadog.datadog : Download https://s3.amazonaws.com/public-signing-keys/DATADOG_APT_KEY_F14F620E.public to import key D75CEA17048B9ACBF186794B32637D44F14F620E] ***************
skipping: [core.internal.local]
TASK [datadog.datadog : Ensure downloaded file for D75CEA17048B9ACBF186794B32637D44F14F620E is a binary keyring] ********************************************************************
skipping: [core.internal.local]
TASK [datadog.datadog : Extract the required key from the binary keyring (when not DATADOG_APT_KEY_CURRENT)] ************************************************************************
skipping: [core.internal.local]
TASK [datadog.datadog : Extract the required key from the binary keyring (when DATADOG_APT_KEY_CURRENT)] ****************************************************************************
skipping: [core.internal.local]
TASK [datadog.datadog : Import key D75CEA17048B9ACBF186794B32637D44F14F620E to /usr/share/keyrings/datadog-archive-keyring.gpg keyring] *********************************************
skipping: [core.internal.local]
TASK [datadog.datadog : Remove temporary directory for key manipulation] ************************************************************************************************************
skipping: [core.internal.local]
TASK [datadog.datadog : Install apt keys from custom URL] ***************************************************************************************************************************
skipping: [core.internal.local]
TASK [datadog.datadog : Ensure /etc/apt/trusted.gpg.d/datadog-archive-keyring.gpg exists with same contents as /usr/share/keyrings/datadog-archive-keyring.gpg for older distro versions] ***
skipping: [core.internal.local]
TASK [datadog.datadog : Ensure Datadog non-https repositories and repositories not using signed-by option are deprecated] ***********************************************************
ok: [core.internal.local] => (item=deb http://apt.datadoghq.com/ stable main)
ok: [core.internal.local] => (item=deb http://apt.datadoghq.com/ stable 6)
ok: [core.internal.local] => (item=deb http://apt.datadoghq.com/ stable 7)
ok: [core.internal.local] => (item=deb https://apt.datadoghq.com/ stable main)
ok: [core.internal.local] => (item=deb https://apt.datadoghq.com/ stable 6)
ok: [core.internal.local] => (item=deb https://apt.datadoghq.com/ stable 7)
TASK [datadog.datadog : Ensure Datadog repository is up-to-date] ********************************************************************************************************************
ok: [core.internal.local] => (item={'key': 5, 'value': 'deb [signed-by=/usr/share/keyrings/datadog-archive-keyring.gpg] https://apt.datadoghq.com/ stable main'})
ok: [core.internal.local] => (item={'key': 6, 'value': 'deb [signed-by=/usr/share/keyrings/datadog-archive-keyring.gpg] https://apt.datadoghq.com/ stable 6'})
ok: [core.internal.local] => (item={'key': 7, 'value': 'deb [signed-by=/usr/share/keyrings/datadog-archive-keyring.gpg] https://apt.datadoghq.com/ stable 7'})
TASK [datadog.datadog : Initialize custom repo file deletion flag to False] *********************************************************************************************************
ok: [core.internal.local]
TASK [datadog.datadog : Check if custom repository file exists] *********************************************************************************************************************
ok: [core.internal.local]
TASK [datadog.datadog : Fetch custom repository file] *******************************************************************************************************************************
skipping: [core.internal.local]
TASK [datadog.datadog : Flag custom repository file for deletion if different from current repository config] ***********************************************************************
skipping: [core.internal.local]
TASK [datadog.datadog : (Custom) Remove Datadog custom repository file when not set or updated] *************************************************************************************
ok: [core.internal.local]
TASK [datadog.datadog : (Custom) Ensure Datadog repository is up-to-date] ***********************************************************************************************************
skipping: [core.internal.local]
TASK [datadog.datadog : include_tasks] **********************************************************************************************************************************************
skipping: [core.internal.local]
TASK [datadog.datadog : include_tasks] **********************************************************************************************************************************************
included: /home/denis/.ansible/roles/datadog.datadog/tasks/pkg-debian/install-latest.yml for core.internal.local
TASK [datadog.datadog : Install latest datadog-agent package] ***********************************************************************************************************************
ok: [core.internal.local]
TASK [datadog.datadog : Install latest datadog-signing-keys package] ****************************************************************************************************************
ok: [core.internal.local]
TASK [datadog.datadog : Include tasks to remove old GPG keys] ***********************************************************************************************************************
skipping: [core.internal.local] => (item=4172A230)
TASK [datadog.datadog : Include tasks to check removed configuration value usage] ***************************************************************************************************
included: /home/denis/.ansible/roles/datadog.datadog/tasks/check-removed-config.yml for core.internal.local
TASK [datadog.datadog : Ensure datadog_yum_gpgkey is not used] **********************************************************************************************************************
skipping: [core.internal.local]
TASK [datadog.datadog : Ensure datadog_zypper_gpgkey is not used] *******************************************************************************************************************
skipping: [core.internal.local]
TASK [datadog.datadog : RedHat Install Tasks] ***************************************************************************************************************************************
skipping: [core.internal.local]
TASK [datadog.datadog : Suse Install Tasks] *****************************************************************************************************************************************
skipping: [core.internal.local]
TASK [datadog.datadog : Windows Install Tasks] **************************************************************************************************************************************
skipping: [core.internal.local]
TASK [datadog.datadog : macOS Install Tasks] ****************************************************************************************************************************************
skipping: [core.internal.local]
TASK [datadog.datadog : Linux Configuration Tasks (Agent 5)] ************************************************************************************************************************
skipping: [core.internal.local]
TASK [datadog.datadog : Linux Configuration Tasks] **********************************************************************************************************************************
included: /home/denis/.ansible/roles/datadog.datadog/tasks/agent-linux.yml for core.internal.local
TASK [datadog.datadog : Populate service facts] *************************************************************************************************************************************
fatal: [core.internal.local]: FAILED! => {"changed": false, "msg": "Malformed output discovered from systemd list-unit-files: apparmor.service enabled enabled"}
The same playbook does not happend on redhat distro.
I think that the problem is the systemd list-unit-files output which is different in the two distributions.
EDITED by maintainer: added proper backquoting to format properly.
Thanks for posting the full output. We'll try to take a look and see where the problem is.
I think this is an ansible bug that's fixed in 2.14 and above (also maybe earlier? not sure)
As per the last comment, this sounds like an upstream issue that may be already solved. Closing this for now but feel free to reopen if the problem persists.