ansible - Ansible 日志记录 - 谁、什么、什么时候
问题描述
我有一个任务:将每次运行 ansible 或 ansible-playbook 的日志放在一个地方(我们通过 sudo 在单个主机上在不同的用户下进行)。我需要在日志中看到的内容:
- 整个命令行
- 使用 sudo 运行它的用户
- 约会时间
- 剧本(
ansible-playbook <name of playbook>
)或命令(例如ansible -m ping
)的输出。
发现通过回调插件格式化剧本输出或启用调试的能力,ansible.cfg
但这无助于获得“什么”和“谁”。如果您能为此分享任何想法,将不胜感激。
Ansible 版本 2.8.3。
解决方案
这似乎就在Ansible Tower和/或AWX的街道上(取决于 Ansible 对您的组织的重要性)。
首先,让我添加一些背景信息,如果您还不知道,AWX 是 Ansible Tower 的上游项目。Ansible Tower 是 Red Hat 提供的商业付费产品。AWX 可以在许多可以运行 Docker 的系统上运行,Ansible Tower 需要 Red Hat Enterprise Linux。除了这些例外,AWX 和 Ansible Tower 在功能上是等效的,除了品牌,它显示您运行的是 AWX 版本还是 Tower 版本。
AWX 将向数据库记录执行每个 Ansible Playbook 的每个操作的结果(无论是 STDOUT/STDERR)以及每个主机的成功/失败/跳过/等状态的数量。这也可以通过管道输出到您的 SIEM 或 SYSLOG 收集器。
我可以看到,您唯一的其他选择是将您对ansible-
命令的执行包装在一个外部包装器中,该包装器以某种方式将输出记录到 syslog,并且可能还添加一条语句以显示ansible-playbook
(例如)由 user 执行bob
。
但是,我强烈建议您将 AWX 视为您的第一个停靠港。它提供的不仅仅是日志功能 - 包括您的用户将无法(必然)访问您的目标服务器,除非通过您的 AWX 环境。
推荐阅读
- c# - 如何从 Winform 中清除用户控件?
- google-cloud-platform - 增加同时远程桌面 (TS) 连接的数量
- excel - 目标范围。以空格结尾
- linux - 如果 shell 脚本运行时间长,则通知
- c - 致命错误:interrupt.h:没有这样的文件或目录#include
- jquery - 如何制作简单的 div 框中继器 jquery?
- prolog - 网格中的 Prolog 检查元素
- python - 如何在 peewee 中的计算字段上创建索引
- laravel - 检查唯一性 - laravel
- python - Python Discord Bot - Youtube-dl 未使用完整搜索查询进行搜索