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_checks 和 datadog_additional_checks 中的检查。 |
datadog_additional_checks |
列出如果设置 datadog_disable_untracked_checks 为 true ,则不会删除的额外检查。 |
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 应为包含 382E94DE 、F14F620E 和 C0962C7D 的 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 : 同时支持 host 和 docker 的所有之前场景。 |
datadog_apm_instrumentation_libraries |
如果启用了 host 或 docker 注入,则安装的 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 成为较大剧本的一部分,其中传递的值是实际任务的相对文件路径,用于 Linux 或 Windows。
这仅适用于 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.yaml
和 security-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,请按照以下步骤操作:
- 启动系统探针:
sudo service datadog-agent-sysprobe start
注意:如果系统中没有服务包装器,请改为运行此命令:sudo initctl start datadog-agent-sysprobe
。 - 重启 Agent:
sudo service datadog-agent restart
。 - 启用系统探针在启动时启动:
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_version
和 datadog_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
针对 macOS7.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_repo
、datadog_yum_repo
和 datadog_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:
- 将
datadog_agent_version
设置为特定版本,例如:5.32.5
。 - 将
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.eu
, us3.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
包管理器。
然而,dnf
和 dnf
Python 模块在 CentOS 8 之前的基于 CentOS 的主机上默认未安装。在这种情况下,当使用 Python 3 解释器时,无法安装 Agent。
当检测到此情况时,角色会提前失败以表明安装 Agent 时需要 Ansible 2.11+ 或 Python 2 解释器。
要绕过此早期故障检测(例如,如果在主机上可用 dnf
和 python3-dnf
软件包),请将 datadog_ignore_old_centos_python3_error
变量设置为 true
。
Windows
由于 Agent 版本 6.14.0
和 6.14.1
在 Windows 上存在严重错误,因此阻止安装这些版本(从版本 3.3.0
的此角色开始)。
注意:如果将 datadog_agent_version
设置为 6.14.0
或 6.14.1
,Ansible 在 Windows 上会失败。请使用 6.14.2
或更高版本。
如果你正在从 6.14.0 或 6.14.1 升级到 Windows,请按照以下步骤操作:
- 将当前的
datadog.datadog
Ansible 角色升级到最新版本(>=3.3.0
)。 - 将
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
)
ansible-galaxy install datadog.datadog