在Ansible中,可以使用package_facts
模块来获取远程主机上已安装软件包的信息,然后根据需要选择特定软件包的版本。以下是一个解决方法的示例代码:
---
- hosts: your_host
gather_facts: yes
tasks:
- name: 获取软件包信息
package_facts:
manager: apt
cache_valid_time: 3600
- name: 选择特定软件包版本
debug:
msg: "软件包版本为 {{ ansible_facts.packages['your_package_name'].version }}"
在上述示例中,首先使用package_facts
模块来获取主机上已安装软件包的信息,指定manager
为apt
表示使用apt包管理器。cache_valid_time
参数表示缓存有效时间,这里设置为3600秒。
然后,在下一个任务中,使用debug
模块输出特定软件包的版本信息。将ansible_facts.packages['your_package_name'].version
作为消息进行输出,其中your_package_name
为要获取版本的软件包名称。
你可以根据需要修改manager
参数和软件包名称,以适应你的实际情况。