Ansible:验证

Ansible:验证

我正在使用 Ansible 2.3。我的主机是 rhel 7。我有几个剧本,例如用户创建、删除、禁用和系统强化。
我正在尝试找出验证帐户是否已创建、已禁用等的最佳方法。有什么建议吗?ansible 是否有任何内置模块等。我确实看到您可以在配置文件中添加 Log_Path。或者,我是否只需在每个主机上 grep 日志文件,以查找已添加、禁用或删除的用户?

答案1

剧本本身旨在“验证”所需状态。每次任务运行本质上都是对系统进行小规模配置的断言,例如现有给定用户。继续执行下一个任务。Ansible 会在出现错误时提前中止。

也就是说,在调试剧本和模块时,您经常需要验证事情是否真的发生了。因为模块在验证的程度上有所不同。有几种方法可以做到这一点。在检查模式下运行以模拟它将更改的内容的试运行。使用 Ansible 任务日志系统,如 ARA 或 Tower。用您喜欢的语言编写自己的验证脚本。在托管主机上启用相关日志记录(系统日志、审计)并进行检查。通过设置 ANSIBLE_KEEP_REMOTE_FILES=1 转储 Ansible 在主机上运行的脚本。

所有这些都不是运行经过测试的剧本所必需的。它们是确保剧本将导致特定状态的工具。

答案2

tasksAnsible 证实就像这样的任务:

- name: a simple task
  file:
    path: /foo
    state: directory

将在创建目录之前检查是否存在目录,如果目录已存在则/foo返回。OK

假设有人问如何检查 Ansible 在 has 上做了什么,我建议看一下Linux 内核审计框架守护audit进程在后台运行,并记录系统更改为/var/log/audit.log

审计框架通过监听内核报告的事件并将其记录到日志文件来工作。

在这里使用不同于 Ansible 本身的工具是有意义的,因为 Ansible 中的错误、错误配置等无法由 Ansible 本身报告。

为了利用它,audit您需要安装一个已编译并CONFIG_AUDIT启用的内核并启动该auditd服务。

答案3

您可以使用 ansible-playbook 通过命令行参数来验证实例配置漂移。

ansible-playbook --check --diff

相关内容