datadog.datadog

Datadog Agent Ansible 角色

Datadog Agent Ansible 角色安装并配置 Datadog Agent 和集成。

Ansible 角色与 Ansible 集合

Datadog Agent Ansible 角色通过两种不同的方式提供:

  • 作为 Datadog 集合的一部分,名称为 datadog.dd,可在 Ansible Galaxy 中访问(推荐)。
  • 作为独立角色,名称为 datadog.datadog,可在 Ansible Galaxy 中访问(旧版)。

角色的 4 版本和集合的 5 版本默认安装 Datadog Agent v7。

设置

请注意,本文件中的安装说明描述的是独立 Datadog 角色的安装。有关 Datadog 集合的安装说明,请参阅 集合的 README 文件。配置变量在独立角色和通过集合访问的角色中是相同的。

要求

  • 需要 Ansible v2.6 及以上版本。

  • 支持大多数 Debian 和 RHEL 基础的 Linux 发行版、macOS 和 Windows。

  • 当使用 Ansible 2.10 及以上版本管理 Windows 主机时,需要安装 ansible.windows 集合:

    ansible-galaxy collection install ansible.windows
    
  • 当使用 Ansible 2.10 及以上版本管理 openSUSE/SLES 主机时,需要安装 community.general 集合:

    ansible-galaxy collection install community.general
    

安装

从 Ansible Galaxy 在你的 Ansible 服务器上安装 Datadog 角色

ansible-galaxy install datadog.datadog

要在主机上部署 Datadog Agent,请将 Datadog 角色和你的 API 密钥添加到你的剧本中:

- hosts: servers
  roles:
    - { role: datadog.datadog, become: yes }
  vars:
    datadog_api_key: "<YOUR_DD_API_KEY>"

API 密钥是必需的,缺少它会导致角色失败。如果你希望通过其他方式提供它,而不是由 Ansible 进行管理,请指定占位符密钥,并在稍后替换该密钥。

角色变量

这些变量在安装 Datadog Agent 时提供额外配置。它们应该在你的剧本的 vars 部分中指定。

变量名 描述
datadog_api_key 你的 Datadog API 密钥。此变量从 4.21 开始为必需
datadog_site 要发送 Agent 数据的 Datadog 接收站点。默认值为 datadoghq.com,设置为 datadoghq.eu 以将数据发送到欧盟站点。此选项仅在 Agent 版本 >= 6.6.0 时可用。
datadog_agent_flavor 为 RPI 的物联网安装覆盖默认的 Debian / RedHat 包。默认值为 "datadog-agent",用于 RPI 时使用 "datadog-iot-agent"。
datadog_agent_version 要安装的 Agent 固定版本(可选,但推荐),例如:7.16.0。如果使用 datadog_agent_version,则不需要设置 datadog_agent_major_version
datadog_agent_major_version 要安装的 Agent 的主要版本。可选值为 5、6 或 7(默认)。如果设置了 datadog_agent_version,则优先使用它,否侧会安装指定主要版本的最新版本。
datadog_checks Agent 检查的 YAML 配置将放入:
- /etc/datadog-agent/conf.d/<check_name>.d/conf.yaml 用于 Agent v6 和 v7,
- /etc/dd-agent/conf.d 用于 Agent v5。
datadog_disable_untracked_checks 设置为 true 以删除所有不在 datadog_checksdatadog_additional_checks 中的检查。
datadog_additional_checks 列出如果设置 datadog_disable_untracked_checkstrue,则不会删除的额外检查。
datadog_disable_default_checks 设置为 true 以删除所有默认检查。
datadog_config 为 Datadog Agent 设置配置。角色将配置写入 根据操作系统的正确位置
datadog_config_ex (可选)额外的 INI 部分,将放入 /etc/dd-agent/datadog.conf(仅适用于 Agent v5)。
datadog_apt_repo 覆盖默认的 Datadog apt 仓库。如果仓库元数据使用 Datadog 的签名密钥签名,请确保使用 signed-by 选项:deb [signed-by=/usr/share/keyrings/datadog-archive-keyring.gpg] https://yourrepo
datadog_apt_cache_valid_time 覆盖默认的 apt 缓存过期时间(默认为 1 小时)。
datadog_apt_key_url_new 覆盖获取 Datadog apt 密钥的位置(已弃用的 datadog_apt_key_url 变量引用的是已过期的密钥,已从角色中删除)。该 URL 应为包含 382E94DEF14F620EC0962C7D 的 GPG 密钥环。
datadog_yum_repo_config_enabled 设置为 false 以防止配置 Datadog yum 仓库(默认为 true)。警告:这会停用 GPG 密钥的自动更新。
datadog_yum_repo 覆盖默认的 Datadog yum 仓库。
datadog_yum_repo_proxy 在 Datadog yum 仓库配置中设置代理 URL。
datadog_yum_repo_proxy_username 在 Datadog yum 仓库配置中设置代理用户名。
datadog_yum_repo_proxy_password 在 Datadog yum 仓库配置中设置代理密码。
datadog_yum_repo_gpgcheck 覆盖默认的 repo_gpgcheck 值(为空)。如果为空,则在未使用自定义 datadog_yum_repo 并且系统不是 RHEL/CentOS 8.1 时动态设置为 yes,否则设置为 no注意:Agent 5 的 repodata 签名验证始终关闭。
datadog_yum_gpgcheck 覆盖默认的 gpgcheck 值(yes) - 使用 no 来关闭软件包 GPG 签名验证。
datadog_yum_gpgkey 在版本 4.18.0 中移除了 覆盖用于验证 Agent v5 和 v6(最多 6.13)软件包的 Datadog yum 密钥的默认 URL(密钥 ID 为 4172A230)。
datadog_yum_gpgkey_e09422b3 覆盖用于验证 Agent v6.14+ 软件包的 Datadog yum 密钥的默认 URL(密钥 ID 为 E09422B3)。
datadog_yum_gpgkey_e09422b3_sha256sum 覆盖 datadog_yum_gpgkey_e09422b3 密钥的默认校验和。
datadog_zypper_repo 覆盖默认的 Datadog zypper 仓库。
datadog_zypper_repo_gpgcheck 覆盖默认的 repo_gpgcheck 值(为空)。如果为空,则在未使用自定义 datadog_zypper_repo 时动态设置为 yes,否则设置为 no注意:Agent 5 的 repodata 签名验证始终关闭。
datadog_zypper_gpgcheck 覆盖默认的 gpgcheck 值(yes) - 使用 no 来关闭软件包 GPG 签名验证。
datadog_zypper_gpgkey 在版本 4.18.0 中移除了 覆盖用于验证 Agent v5 和 v6(最多 6.13)软件包的 Datadog zypper 密钥的默认 URL(密钥 ID 为 4172A230)。
datadog_zypper_gpgkey_sha256sum 在版本 4.18.0 中移除了 覆盖 datadog_zypper_gpgkey 密钥的默认校验和。
datadog_zypper_gpgkey_e09422b3 覆盖用于验证 Agent v6.14+ 软件包的 Datadog zypper 密钥的默认 URL(密钥 ID 为 E09422B3)。
datadog_zypper_gpgkey_e09422b3_sha256sum 覆盖 datadog_zypper_gpgkey_e09422b3 密钥的默认校验和。
datadog_agent_allow_downgrade 设置为 yes 以允许降级 Agent(谨慎使用,详情见 defaults/main.yml)。注意:在 Windows 平台上不支持降级。
datadog_enabled 设置为 false 以防止 datadog-agent 服务启动(默认为 true)。
datadog_additional_groups 除了一个列表,或者一个包含额外组的逗号分隔字符串,用于 datadog_user(仅限 Linux)。
datadog_windows_ddagentuser_name Windows 用户的名称,以 <domain>\<user> 格式创建/使用(仅限 Windows)。
datadog_windows_ddagentuser_password 用于创建用户和/或注册服务的密码(仅限 Windows)。
datadog_apply_windows_614_fix 是否下载并应用 datadog_windows_614_fix_script_url 引用的文件(仅限 Windows)。有关更多详情,请参见 此链接。可以将此设置为 false,假设你的主机不运行 Datadog Agent 6.14.*。
datadog_macos_user 要在其下运行 Agent 的用户名称。用户必须存在,它不会自动创建。默认值为 ansible_user(仅限 macOS)。
datadog_macos_download_url 覆盖要下载 DMG 安装程序的 URL(仅限 macOS)。
datadog_apm_instrumentation_enabled 配置 APM 插件。可能值为:
- host: Agent 和你的服务在同一主机上运行。
- docker: Agent 和你的服务在同一主机上的不同 Docker 容器中运行。
- all: 同时支持 hostdocker 的所有之前场景。
datadog_apm_instrumentation_libraries 如果启用了 hostdocker 注入,则安装的 APM 库列表(默认为 ["java", "js", "dotnet", "python", "ruby"])。你可以在 此链接 找到可用值。
datadog_apm_instrumentation_docker_config 覆盖 Docker APM 配置。有关更多详情,请参见 此链接
datadog_remote_updates 通过 datadog-installer 启用远程安装和更新。

集成

要配置 Datadog 集成(检查),请在 datadog_checks 部分添加条目。第一层键是检查的名称,值是 YAML 有效负载以写入配置文件。下面提供了示例。

要安装或删除集成,请参阅 datadog_integration 部分

进程检查

要为 process 检查定义两个实例,请使用以下配置。这会创建相应的配置文件:

  • Agent v6 & v7: /etc/datadog-agent/conf.d/process.d/conf.yaml
  • Agent v5: /etc/dd-agent/conf.d/process.yaml
    datadog_checks:
      process:
        init_config:
        instances:
          - name: ssh
            search_string: ['ssh', 'sshd']
          - name: syslog
            search_string: ['rsyslog']
            cpu_check_interval: 0.2
            exact_match: true
            ignore_denied_access: true

自定义检查

要配置自定义检查,请使用以下配置。这会创建相应的配置文件:

  • Agent v6 & v7: /etc/datadog-agent/conf.d/my_custom_check.d/conf.yaml
  • Agent v5: /etc/dd-agent/conf.d/my_custom_check.yaml
    datadog_checks:
      my_custom_check:
        init_config:
        instances:
          - some_data: true
自定义 Python 检查

要将 Python 检查传递给剧本,请使用以下配置。

该配置要求 Datadog play 和 role 成为较大剧本的一部分,其中传递的值是实际任务的相对文件路径,用于 LinuxWindows

这仅适用于 Agent v6 或更高版本。

键应是检查目录中创建的文件名称 checks.d/{{ item }}.py

    datadog_checks:
      my_custom_check:
        init_config:
        instances:
          - some_data: true
    datadog_custom_checks:
      my_custom_check: '../../../custom_checks/my_custom_check.py'

自动发现

使用自动发现时,YAML 上没有预处理或后处理。这意味着每个 YAML 部分都添加到最终配置文件中,包括 autodiscovery identifiers

下面的示例通过 自动发现 配置 PostgreSQL 检查:

    datadog_checks:
      postgres:
        ad_identifiers:
          - db-master
          - db-slave
        init_config:
        instances:
          - host: %%host%%
            port: %%port%%
            username: username
            password: password

在 Datadog 文档中了解更多关于 自动发现

跟踪

要使用 Agent v6 或 v7 启用跟踪数据收集,请使用以下配置:

datadog_config:
  apm_config:
    enabled: true

要使用 Agent v5 启用跟踪数据收集,请使用以下配置:

datadog_config:
  apm_enabled: "true" # 必须为字符串

实时进程

要使用 Agent v6 或 v7 启用 实时进程 收集,请使用以下配置:

datadog_config:
  process_config:
    enabled: "true" # 类型:字符串

enabled 的可能值为:"true""false"(仅容器收集)或 "disabled"(完全禁用实时进程)。

变量

对于实时进程,以下变量可用:

  • scrub_args: 启用从进程命令行中擦除敏感参数(默认为 true)。
  • custom_sensitive_words: 扩展命令行清理程序使用的默认敏感词列表。

系统探针

系统探针通过 system_probe_config 变量进行配置。嵌套在下面的任何变量都将写入 system-probe.yaml 中的 system_probe_config 部分。

网络性能监控(NPM)通过 network_config 变量配置。任何嵌套在下面的变量都将写入 system-probe.yaml 中的 network_config 部分。

云工作负载安全(CWS)通过 runtime_security_config 变量配置。任何嵌套在下面的变量都将写入 system-probe.yamlsecurity-agent.yaml 中的 runtime_security_config 部分。

统一服务监控(USM)通过 service_monitoring_config 变量配置。任何嵌套在下面的变量都将写入 system-probe.yaml 中的 service_monitoring_config 部分。

合规性通过 compliance_config 变量进行配置。任何嵌套在下面的变量都将写入 security-agent.yaml 中的 compliance_config 部分。

Windows 用户注意:NPM 在 Windows 上支持 Agent v6.27+ 和 v7.27+。它作为可选组件进行提供,只有在安装或升级 Agent 时将 network_config.enabled 设置为 true 时才会安装。因此,现有安装可能需要卸载并重新安装 Agent 一次才能安装 NPM 组件,除非在同时升级 Agent。

示例配置

datadog_config:
  process_config:
    enabled: "true" # 类型:字符串
    scrub_args: true
    custom_sensitive_words: ['consul_token','dd_api_key']
system_probe_config:
  sysprobe_socket: /opt/datadog-agent/run/sysprobe.sock
network_config:
  enabled: true
service_monitoring_config:
  enabled: true
runtime_security_config:
  enabled: true

注意:此配置适用于 Agent 6.24.1+ 和 7.24.1+。对于旧版本的 Agent,请参阅 网络性能监控 文档以了解如何启用系统探针。

在 Linux 上,一旦完成此修改,若你的 Agent 版本低于 6.18.0 或 7.18.0,请按照以下步骤操作:

  1. 启动系统探针: sudo service datadog-agent-sysprobe start 注意:如果系统中没有服务包装器,请改为运行此命令:sudo initctl start datadog-agent-sysprobe
  2. 重启 Agentsudo service datadog-agent restart
  3. 启用系统探针在启动时启动: sudo service enable datadog-agent-sysprobe

有关手动设置,请参阅 NPM 文档。

Agent v5

要使用 Agent v5 启用 实时进程 收集,请使用以下配置:

datadog_config:
  process_agent_enabled: true
datadog_config_ex:
  process.config:
    scrub_args: true
    custom_sensitive_words: "<FIRST_WORD>,<SECOND_WORD>"

版本

默认情况下,当前主要版本的 Datadog Ansible 角色安装 Agent v7。变量 datadog_agent_versiondatadog_agent_major_version 可用于控制安装的 Agent 版本。

对于 v4+ 的此角色,当使用 datadog_agent_version 钉住特定 Agent 版本时,角色会派生每个操作系统版本名称,以遵从支持的操作系统的版本命名方案,例如:

  • 1:7.16.0-1 针对 Debian 和 SUSE 基础
  • 7.16.0-1 针对基于 RedHat 的
  • 7.16.0-1 针对 macOS
  • 7.16.0 针对 Windows。

这使得在同一次 Ansible 运行中可以针对运行不同操作系统的主机,例如:

提供 安装 系统
datadog_agent_version: 7.16.0 1:7.16.0-1 Debian 和 SUSE 基础
datadog_agent_version: 7.16.0 7.16.0-1 基于 RedHat 的
datadog_agent_version: 7.16.0 7.16.0-1 macOS
datadog_agent_version: 7.16.0 7.16.0 Windows
datadog_agent_version: 1:7.16.0-1 1:7.16.0-1 Debian 和 SUSE 基础
datadog_agent_version: 1:7.16.0-1 7.16.0-1 基于 RedHat 的
datadog_agent_version: 1:7.16.0-1 7.16.0 Windows

注意:如果未提供版本,则角色会使用 1 作为纪元和 1 作为发布号。

Agent v5(旧版本)

Datadog Ansible 角色为 Linux 仅提供对 Datadog Agent v5 的支持。要安装 Agent v5,请使用 datadog_agent_major_version: 5 安装最新版本的 Agent v5,或将 datadog_agent_version 设置为特定版本的 Agent v5。 注意datadog_agent5 变量已过时并已被移除。

仓库

Linux

当未设置变量 datadog_apt_repodatadog_yum_repodatadog_zypper_repo 时,将使用 datadog_agent_major_version 中设置的主要版本的官方 Datadog 仓库:

# 默认 apt 仓库 默认 yum 仓库 默认 zypper 仓库
5 deb https://apt.datadoghq.com stable main https://yum.datadoghq.com/rpm https://yum.datadoghq.com/suse/rpm
6 deb https://apt.datadoghq.com stable 6 https://yum.datadoghq.com/stable/6 https://yum.datadoghq.com/suse/stable/6
7 deb https://apt.datadoghq.com stable 7 https://yum.datadoghq.com/stable/7 https://yum.datadoghq.com/suse/stable/7

要覆盖默认行为,请将这些变量设置为非空字符串。

如果你先前使用过 Agent v5 变量,请使用下面的 变量,并将 datadog_agent_major_version 设置为 5 或将 datadog_agent_version 钉住到特定 Agent v5 版本。

datadog_agent5_apt_repo datadog_apt_repo
datadog_agent5_yum_repo datadog_yum_repo
datadog_agent5_zypper_repo datadog_zypper_repo

自 4.9.0 版本以来,已删除 use_apt_backup_keyserver 变量,因为 APT 密钥来自 https://keys.datadoghq.com。

Windows

当未设置变量 datadog_windows_download_url 时,将使用与 datadog_agent_major_version 相对应的官方 Windows MSI 包:

Agent 版本 默认 Windows MSI 包 URL
6 https://s3.amazonaws.com/ddagent-windows-stable/datadog-agent-6-latest.amd64.msi
7 https://s3.amazonaws.com/ddagent-windows-stable/datadog-agent-7-latest.amd64.msi

要覆盖默认行为,请将此变量设置为非空字符串。

macOS

当未设置变量 datadog_macos_download_url 时,将使用与 datadog_agent_major_version 相对应的官方 macOS DMG 包:

Agent 版本 默认 macOS DMG 包 URL
6 https://install.datadoghq.com/datadog-agent-6-latest.dmg
7 https://install.datadoghq.com/datadog-agent-7-latest.dmg

要覆盖默认行为,请将此变量设置为非空字符串。

升级

要从 Agent v6 升级到 v7,请使用 datadog_agent_major_version: 7 安装最新版本或将 datadog_agent_version 设置为特定版本的 Agent v7。使用类似逻辑从 Agent v5 升级到 v6。

集成安装

适用于 Agent v6.8+

使用 datadog_integration 资源安装特定版本的 Datadog 集成。请记住,Agent 已经安装了 核心集成 。此命令对于在不升级整个 Agent 的情况下升级特定集成非常有用。有关更多详情,请参见 集成管理

如果要配置集成,请参阅 datadog_checks 部分

可用操作:

  • install: 安装特定版本的集成。
  • remove: 移除集成。
第三方集成

Datadog 社区Datadog 市场 集成可以用 datadog_integration 资源安装。注意:这些集成被视为“第三方”,因此需要设置 third_party: true,请参见下面的示例。

语法
  datadog_integration:
    <INTEGRATION_NAME>:
      action: <ACTION>
      version: <VERSION_TO_INSTALL>

要安装第三方集成,请将 third_party 设置为 true:

  datadog_integration:
    <INTEGRATION_NAME>:
      action: <ACTION>
      version: <VERSION_TO_INSTALL>
      third_party: true
示例

以下示例安装版本 1.11.0 的 ElasticSearch 集成并移除 postgres 集成。

 datadog_integration:
   datadog-elastic:
     action: install
     version: 1.11.0
   datadog-postgres:
     action: remove

要查看可用的 Datadog 集成版本,请参阅其 CHANGELOG.md 文件在 integrations-core 仓库中

降级

要降级到先前版本的 Agent:

  1. datadog_agent_version 设置为特定版本,例如:5.32.5
  2. datadog_agent_allow_downgrade 设置为 yes

注意:

  • 不支持 Windows 平台的降级。

剧本

以下是一些示例剧本,可帮助你使用 Datadog Ansible 角色。

以下示例将数据发送到 Datadog US(默认),启用日志、NPM,并配置一些检查。

- hosts: servers
  roles:
    - { role: datadog.datadog, become: yes }
  vars:
    datadog_api_key: "<YOUR_DD_API_KEY>"
    datadog_agent_version: "7.16.0"
    datadog_config:
      tags:
        - "<KEY>:<VALUE>"
        - "<KEY>:<VALUE>"
      log_level: INFO
      apm_config:
        enabled: true
      logs_enabled: true  # 在 Agent v6 和 v7 中可用
    datadog_checks:
      process:
        init_config:
        instances:
          - name: ssh
            search_string: ['ssh', 'sshd']
          - name: syslog
            search_string: ['rsyslog']
            cpu_check_interval: 0.2
            exact_match: true
            ignore_denied_access: true
      ssh_check:
        init_config:
        instances:
          - host: localhost
            port: 22
            username: root
            password: <YOUR_PASSWORD>
            sftp_check: True
            private_key_file:
            add_missing_keys: True
      nginx:
        init_config:
        instances:
          - nginx_status_url: http://example.com/nginx_status/
            tags:
              - "source:nginx"
              - "instance:foo"
          - nginx_status_url: http://example2.com:1234/nginx_status/
            tags:
              - "source:nginx"
              - "<KEY>:<VALUE>"

        # 日志收集在 Agent 6 和 7 中可用
        logs:
          - type: file
            path: /var/log/access.log
            service: myapp
            source: nginx
            sourcecategory: http_web_access
          - type: file
            path: /var/log/error.log
            service: nginx
            source: nginx
            sourcecategory: http_web_access
    # datadog_integration 在 Agent 6.8+ 中可用
    datadog_integration:
      datadog-elastic:
        action: install
        version: 1.11.0
      datadog-postgres:
        action: remove
    network_config:
      enabled: true

Agent v6

此示例安装最新的 Agent v6:

- hosts: servers
  roles:
    - { role: datadog.datadog, become: yes }
  vars:
    datadog_agent_major_version: 6
    datadog_api_key: "<YOUR_DD_API_KEY>"

配置站点

如果使用默认 datadoghq.com 以外的站点,请将 datadog_site 变量设置为适当的 URL(例如:datadoghq.euus3.datadoghq.com)。

以下示例将数据发送到欧盟站点:

- hosts: servers
  roles:
    - { role: datadog.datadog, become: yes }
  vars:
    datadog_site: "datadoghq.eu"
    datadog_api_key: "<YOUR_DD_API_KEY>"

Windows

在 Windows 上,去掉 become: yes 选项,以免角色失败。以下是使示例剧本在 Windows 主机上正常工作的两种方法:

清单文件

使用清单文件是推荐的方法。为每个 Windows 主机设置 ansible_become 选项为 no

[servers]
linux1 ansible_host=127.0.0.1
linux2 ansible_host=127.0.0.2
windows1 ansible_host=127.0.0.3 ansible_become=no
windows2 ansible_host=127.0.0.4 ansible_become=no

为了避免对所有 Windows 主机重复相同的配置,可以将它们分组,然后在组级别设置变量:

[linux]
linux1 ansible_host=127.0.0.1
linux2 ansible_host=127.0.0.2

[windows]
windows1 ansible_host=127.0.0.3
windows2 ansible_host=127.0.0.4

[windows:vars]
ansible_become=no

剧本文件

另外,如果你的剧本仅在 Windows 主机上运行,则在剧本文件中使用以下内容:

- hosts: servers
  roles:
    - { role: datadog.datadog }
  vars:
    ...

注意:如果在 Linux 主机上会失败的配置。仅在剧本是特定于 Windows 主机时使用此配置。否则,请使用 清单文件方法

卸载

在 Windows 上,可以通过在你的 Ansible 角色中使用以下代码来卸载 Agent:

- name: 检查 Datadog Agent 是否安装
  win_shell: |
    (@(Get-ChildItem -Path "HKLM:SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" -Recurse) | Where {$_.GetValue("DisplayName") -like "Datadog Agent" }).PSChildName
  register: agent_installed_result
- name: 设置 Datadog Agent 安装事实
  set_fact:
    agent_installed: "{{ agent_installed_result.stdout | trim }}"
- name: 卸载 Datadog Agent
  win_package:
    product_id: "{{ agent_installed }}"
    state: absent
  when: agent_installed != ""

故障排除

Debian stretch

注意: 此信息适用于 4.9.0 之前版本的角色。从 4.9.0 开始,角色不再使用 apt_key 模块。

在 Debian Stretch 上,角色使用的 apt_key 模块需要额外的系统依赖项才能正常工作。该依赖项(dirmngr)并未由该模块提供。将以下配置添加到你的剧本以使用现有角色:

---
- hosts: all
  pre_tasks:
    - name: Debian Stretch 需要 dirmngr 软件包以使用 apt_key
      become: yes
      apt:
        name: dirmngr
        state: present
  roles:
    - { role: datadog.datadog, become: yes }
  vars:
    datadog_api_key: "<YOUR_DD_API_KEY>"

CentOS 6/7 使用 Python 3 解释器和 Ansible 2.10.x 或更低版本

角色用于在基于 CentOS 的主机上安装 Agent 的 yum Python 模块仅在 使用 Ansible 2.10.x 或更早版本时可用。如果使用,则必须使用 dnf 包管理器。

然而,dnfdnf Python 模块在 CentOS 8 之前的基于 CentOS 的主机上默认未安装。在这种情况下,当使用 Python 3 解释器时,无法安装 Agent。

当检测到此情况时,角色会提前失败以表明安装 Agent 时需要 Ansible 2.11+ 或 Python 2 解释器。

要绕过此早期故障检测(例如,如果在主机上可用 dnfpython3-dnf 软件包),请将 datadog_ignore_old_centos_python3_error 变量设置为 true

Windows

由于 Agent 版本 6.14.06.14.1 在 Windows 上存在严重错误,因此阻止安装这些版本(从版本 3.3.0 的此角色开始)。

注意:如果将 datadog_agent_version 设置为 6.14.06.14.1,Ansible 在 Windows 上会失败。请使用 6.14.2 或更高版本。

如果你正在从 6.14.0 或 6.14.1 升级到 Windows,请按照以下步骤操作:

  1. 将当前的 datadog.datadog Ansible 角色升级到最新版本(>=3.3.0)。
  2. datadog_agent_version 设置为 6.14.2 或更高(默认设置为最新)。

详细信息请参见 Windows 上 Datadog Agent 6.14.0 和 6.14.1 的卸载程序中的严重错误

Ubuntu 20.04 由于 service_facts 导致的错误

在 Ubuntu 20.04 上运行 service_facts 模块会导致以下错误:

localhost | FAILED! => {
    "changed": false,
    "msg": "从 systemd list-unit-files 检测到的输出格式不正确:accounts-daemon.service                    enabled         enabled      "
}

要修复此问题,请 将 Ansible 更新到 v2.9.8 或更高版本

缺少 API 密钥

从角色 4.21 开始,API 密钥是角色继续运行所必需的。

如果你需要通过 Ansible 安装 Agent 但不想指定 API 密钥(例如,如果你将其集成到容器/VM 映像中),你可以:

  • 指定一个虚拟 API 密钥,随后再替换它
  • 禁用托管配置(datadog_manage_config: false
关于项目

Install Datadog agent and configure checks

安装
ansible-galaxy install datadog.datadog
许可证
apache-2.0
下载
16.3M
拥有者