ansible - 在 Ansible 的调试任务中格式化 stdout

标签 ansible ansible-2.x

假设以下任务:

- shell: "some_script.sh"
  register: "some_script_result"

- debug:
    msg: "Output: {{ some_script_result.stdout_lines }}

我收到以下输出:

"msg": "Output: [u'some_value',u'some_value2,u'some_value3]"

如何获得打印输出?

"msg":
Output:
  - some_value
  - some_value2
  - some_value3

Ansible 版本是 2.4.2。

最佳答案

尝试this选项。你一定会喜欢的。

Ansible 2.5 引入了一个新的 YAML 回调插件 - 这意味着任何运行 Ansible 2.5.0 或更高版本的机器都可以自动开始使用这种格式,而无需安装自定义插件。

要使用它,请编辑您的 ansible.cfg 文件(全局、/etc/ansible/ansible.cfg 或本地 playbook/项目中),并在 [defaults] 部分下添加以下行:

# Use the YAML callback plugin.
stdout_callback = yaml
# Use the stdout_callback when running ad-hoc commands.
bin_ansible_callbacks = True

现在我可以轻松阅读您的输出消息

如果您收到以下错误:

ERROR! Invalid callback for stdout specified: yaml

运行

ansible-galaxy collection install community.general

关于ansible - 在 Ansible 的调试任务中格式化 stdout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50009505/

相关文章:

ansible - 如何在 Ansible 中为特定任务或模块生成详细输出

docker - Ansible:遍历库存组

ansible include_vars 排序问题

python - parse_cli_textfsm 过滤器需要安装 TextFSM 库

ansible - 为什么我的 MySQL 导入失败并使用 Ansible?

python - 在ansible中运行python函数

ansible - 如何在 Ansible 中提示用户输入目标主机?

Azure ansible - 动态 list 不起作用

ubuntu - Ansible playbook 安装失败

ansible - 一次在多个主机组上运行一个 playbook