如何解决Ansible日志-谁,什么时候
我有一个任务:将ansible或ansible-playbook的每次运行记录在一个地方(我们通过单个主机上的sudo在不同的用户下进行记录)。我需要在日志中看到的内容:
- 整个命令行
- 使用sudo运行它的用户
- 约会时间
- 输出剧本(
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。
解决方法
这似乎确实在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环境之外,您的用户将无法(必须)访问您的目标服务器。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。