AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 640130
Accepted
mjallday
mjallday
Asked: 2014-10-28 20:11:26 +0800 CST2014-10-28 20:11:26 +0800 CST 2014-10-28 20:11:26 +0800 CST

使用 Ansible 显示输出

  • 772

我有一个用于 PGBouncer 的 Ansible 游戏,它显示了 PGBouncer 中内置的统计模块的一些输出。

我的问题是,当 Ansible 将输出打印到终端时,它会破坏换行符。而不是看到

----------
| OUTPUT |
----------

我懂了

----------\n| OUTPUT |\n----------

有谁知道如何让 Ansible “漂亮打印”输出?

ansible
  • 7 7 个回答
  • 102193 Views

7 个回答

  • Voted
  1. sorin
    2017-04-25T05:20:00+08:002017-04-25T05:20:00+08:00

    如果您想要更人性化的输出,请定义:

    ANSIBLE_STDOUT_CALLBACK=debug
    

    这将使 ansible 使用调试输出模块(以前称为human_log)which,尽管它不幸的名称不那么冗长并且更容易被人类阅读。

    如果您收到此模块不可用的错误,请升级 Ansible 或在本地添加此模块,如果您无法升级 ansible,它将适用于 2.0 甚至 1.9 等更高版本的 ansible。

    配置它的另一个选项是添加stdout_callback = debug到您的 ansible.cfg

    • 129
  2. Best Answer
    jarv
    2014-10-29T07:23:09+08:002014-10-29T07:23:09+08:00

    没有办法在 Ansible 中以原生方式做你想做的事。您可以这样做作为一种解决方法:

    ansible-playbook ... | sed 's/\\n/\n/g'
    
    • 18
  3. jhutar
    2016-10-01T01:53:13+08:002016-10-01T01:53:13+08:00

    在 Ansible 项目组论坛中找到这种方式:

    - name: "Example test"
      command:
        ...
      register: test
    - name: "Example test stdout"
      debug:
        msg: "{{ test.stdout.split('\n') }}"
    - name: "Example test stderr"
      debug:
        msg: "{{ test.stderr.split('\n') }}"
    

    我们基本上通过换行符将其拆分然后打印该列表来将其转换为列表。

    • 18
  4. xddsg
    2015-04-17T09:27:47+08:002015-04-17T09:27:47+08:00

    您可以使用回调插件。这将重新解析您的输出,并且很容易打开和关闭。

    • 13
  5. daveystones
    2019-06-29T11:46:39+08:002019-06-29T11:46:39+08:00

    如果您想以几乎模仿标准输出的格式查看它,您可以使用debug回调插件和debugAnsible 2.7+ 中的模块,如下所示:

    - name: "Test Output"
      debug:
        msg: "{{ test_result.stdout_lines | join('\n') }}"
    
    • 1
  6. wolfman-rack
    2019-03-11T16:15:32+08:002019-03-11T16:15:32+08:00

    如果您不在并行主机上运行,​​则可以使用pause模块:

    - pause:
        prompt: "{{ variable_blob.stdout }}"
    

    通过定义分钟或秒在没有输入的情况下继续前进,但随后不会捕获用户输入。

    信用:https ://github.com/ansible/ansible/issues/17446#issuecomment-245391682

    注意:在并行主机上,只会显示第一台主机的输出

    • 0
  7. Juan-Kabbali
    2020-12-22T12:38:28+08:002020-12-22T12:38:28+08:00

    尽管这不是一个具体的回应,但我在我的团队中遇到了同样的问题,我们已经实施了ara projet,它是一个开源软件,可以让 ansible 对人类友好。

    您可以在此处查看现场演示。

    • 0

相关问题

  • Ansible 剧本,使用选项 --disabled-login 创建用户

  • ansible playbook,操作系统不同的用户

  • ansible:为什么文件模块会跳过?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve