使用以下答案stackoverflow.com/questions/34026875/ 我正在尝试从 ansible apt 模块获取标准输出。
使用这个非常简单的测试手册:
- hosts: localhost
sudo: true
tasks:
- name: 'apt: update & upgrade'
apt:
update_cache: yes
cache_valid_time: 3600
register: apt
- debug: msg={{ apt.stdout.split('\n')[:-1] }}
我总是有这个错误信息:
致命的:[本地主机]:失败!=> {“msg”:“任务包含一个带有未定义变量的选项。错误是:'dict object'没有属性'stdout'
我尝试了很多方法(安装包,删除,...)并且总是有相同的错误消息。
使用debug: msg=apt
我可以拥有的唯一输出消息是,{"cache_update_time": 1531941358, "cache_updated": true, "changed": true}
即使我安装或删除了一个包,在我看来这对我来说是一个输出消息,这意味着什么都不清楚,因为"cache_updated": true, "changed": true
并不意味着已经安装或删除了包。
在 Ansible APT 模块文档Ansible APT 模块文档
返回值部分,有一个标准输出返回success, when needed
。
有谁知道如何从 Ansible APT 模块中获得真实而清晰的退出,或者如何强制 Ansible 返回一个标准输出(ansible 配置,...)以及真正的含义"success, * when needed *"
,因为我在任何情况下都没有设法获得标准输出输出。
亲切的问候