Ansible 显示实时 shell 标准输出

Ansible 显示实时 shell 标准输出

我想看到实时的shell标准输出,而不是register放入变量中然后在完成后显示。

示例剧本 -test.yml

- name: Testing RUN Shell Command
  hosts: localhost
  connection: local

  tasks:
  - name: Runnig Update
    shell: apt update

默认输出

$ ansible-playbook  test.yml 

PLAY [Testing RUN Shell Command] ******************************************************************************************************

TASK [Gathering Facts] ****************************************************************************************************************
ok: [localhost]

TASK [Runnig Update] ******************************************************************************************************************
changed: [localhost]

PLAY RECAP ****************************************************************************************************************************
localhost                  : ok=2    changed=1    unreachable=0    failed=0   

但我想看看当我们apt update在终端中运行它时它做了什么

$ sudo apt update
Ign:1 http://dl.google.com/linux/chrome/deb stable InRelease
Hit:2 http://dl.google.com/linux/chrome/deb stable Release                                                                            
Hit:3 http://ppa.launchpad.net/brightbox/ruby-ng/ubuntu bionic InRelease                                                              
Get:4 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB]                                                           
Hit:6 http://in.archive.ubuntu.com/ubuntu bionic InRelease                                                                            
Hit:7 http://ppa.launchpad.net/canonical-chromium-builds/stage/ubuntu bionic InRelease                                                
------OUTPUT REMOVED----------

我看到已经在进行讨论github 问题看起来这是不可能的。

有什么技巧可以帮助获取实时标准输出ansible 回调

答案1

“实时”或“流式”输出尚未合并到 Ansible。原始问题2014 年因不可行而关闭。最新提案自 2018 年 2 月以来没有重大更新。

Ansible 用户无法使用此功能。它需要对命令和回调插件进行认真的黑客攻击,更重要的是进行测试,才能按预期工作。


附加剧本回顾:您的示例命令可以由 apt 模块完成。这比您自己调用 apt 命令行具有更多功能。

- name: Only run "apt-get update" if the last one is more than 3600 seconds ago
  apt:
    update_cache: yes
    cache_valid_time: 3600

相关内容