我有一个Ansible任务在RHEL和CentOS机器上运行。
- name: Git version (Fedora)
command: rpm -qi git
args:
warn: no
register: fedora_git
tags:
- git
但是这个任务失败了,没有任何错误。
FAILED! => {"changed": true, "cmd": ["rpm", "-qi", "git"], "delta": "0:00:00.066596", "end": "2023-05-23 01:28:16.302918", "msg": "non-zero return code", "rc": 1, "start": "2023-05-23 01:28:16.236322", "stderr": "", "stderr_lines": [], "stdout": "package git is not installed", "stdout_lines": ["package git is not installed"]}
尝试使用shell
模块,但得到相同的错误。
1条答案
按热度按时间xzv2uavs1#
在Ansible中,通常建议使用任务特定模块,而不是
command
或shell
(如果可用且可能)。在您的情况下,package_facts
module,以获得包信息作为事实。最小化示例剧本
将导致已安装软件包的列表输出,或类似
将导致输出
对于其他格式和信息,您需要做进一步的调整。
FAILED
。...尝试使用shell
模块,但得到相同的错误。*正确,这是查询本地包数据库以获取未安装的包和caused by Return Code (RC)信息的预期行为和结果。
其中一个命令像
将提供软件包信息和一个
"rc": 0
,类似于不会并提供
"rc": 1
。进一步阅读
rc
echo $?
do?