Ansible日志-谁,什么时候

时间:2020-08-18 09:57:39

标签: ansible

我有一个任务:将ansible或ansible-playbook的每次运行记录在一个地方(我们通过单个主机上的sudo在不同的用户下进行记录)。我需要在日志中看到的内容:

  1. 整个命令行
  2. 使用sudo运行它的用户
  3. 约会时间
  4. 输出剧本(WHERE NOT(s.[name] = N'dbo' AND t.[name] = N'Table1') AND NOT(s.[name] = N'test' AND t.[name] = N'Table3') AND NOT(s.[name] = N'usr' AND t.[name] = N'Table2') )或命令(例如ansible-playbook <name of playbook>)。

发现了通过回调插件格式化剧本输出或在ansible -m ping中启用调试功能的能力,但这无助于获取“内容”和“对象”。如果您可以分享任何想法,将不胜感激。

Ansible版本2.8.3。

1 个答案:

答案 0 :(得分:0)

这似乎确实在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将把每个操作的结果(无论STDOUT / STDERR)以及每个主机的成功/失败/跳过/状态数量记录到数据库中,该Ansible Playbook由谁执行。也可以将其通过管道传递到SIEM或SYSLOG收集器。

我可以看到,您唯一的其他选择是将您对ansible-命令的执行包装到外部包装中,该包装以某种方式将输出记录到syslog中,并且也许还添加一条语句来显示{ {1}}(例如)由用户ansible-playbook执行。

但是,我会强烈将AWX视为您的第一个停靠港。它不仅提供了日志记录功能,还包括以下事实:除了通过AWX环境之外,您的用户将无法(必须)访问您的目标服务器。