首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不可见的即席命令:如何在主机输出中返回命令运行时?

不可见的即席命令:如何在主机输出中返回命令运行时?
EN

Stack Overflow用户
提问于 2020-01-30 16:10:58
回答 1查看 729关注 0票数 0

我在库存中的所有主机上运行一个简单的Ansible ad命令,我希望Ansible也显示从每个主机返回输出所需的时间。我可以看到日志中的时间,但我想把它作为stdout

我尝试在callback_whitelist = profile_tasks中添加ansible.cfg,但这并没有帮助。

例如,Ansible output显示

代码语言:javascript
复制
[demo@demoserver ~]$ ansible all -m shell -a 'hostname -f'
worker0 | CHANGED | rc=0 >>
iworker0.unix.demo.com

worker2 | CHANGED | rc=0 >>
iworker2.unix.demo.com

worker1 | CHANGED | rc=0 >>
iworker1.unix.demo.com

worker3 | CHANGED | rc=0 >>
iworker3.unix.demo.com

日志显示

代码语言:javascript
复制
2020-01-30 15:46:27,924 p=22811 u=demo |  worker0 | CHANGED | rc=0 >>
iworker0.unix.demo.com

2020-01-30 15:46:27,955 p=22811 u=demo |  worker2 | CHANGED | rc=0 >>
iworker2.unix.demo.com

2020-01-30 15:46:27,960 p=22811 u=demo |  worker1 | CHANGED | rc=0 >>
iworker1.unix.demo.com

2020-01-30 15:46:27,975 p=22811 u=demo |  worker3 | CHANGED | rc=0 >>
iworker3.unix.demo.com

因此,我希望日志中的时间也以stdout的形式出现。这有可能吗?

代码语言:javascript
复制
[demo@demoserver ~]$ ansible --version
ansible 2.7.12
  config file = /home/demo/ansible.cfg
  configured module search path = [u'/home/demo/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.5 (default, Jun 11 2019, 14:33:56) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]
EN

回答 1

Stack Overflow用户

发布于 2021-12-24 11:51:57

关于你的要求

,我希望Ansible也能显示从每个主机返回输出所花费的时间

和评论

之前试过..。结果是一个non-zero return code,用于time ; hostname -ftime && hostname -f

命令

代码语言:javascript
复制
ansible test --user ${ACCOUNT} --ask-pass -m shell --args 'time hostname -f'

只是在工作并产生一个

代码语言:javascript
复制
SSH password:
test.example.com | CHANGED | rc=0 >>
test.example.com
real    0m0.003s
user    0m0.001s
sys     0m0.002s

关于你的要求

我希望日志中的时间以stdout的形式出现

它不显示执行命令所需的时间,而是日期时间,您可以在命令之后添加时间戳,如下所示

代码语言:javascript
复制
ansible test --user ${A_ACCOUNT} --ask-pass -m shell --args 'hostname -f; date +"%T.%3N"'

它产生的输出

代码语言:javascript
复制
SSH password:
test.example.com | CHANGED | rc=0 >>
test.example.com
12:34:56.789

多亏了

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59990104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档