我有一个保存为变量的软件包列表: pkg_list: -dstat -iftop -创新 -MySQL-Python -mytop -Winrar
我很难创建一个任务来: 1)检查是否已安装(将yum模块与'list'命令配合使用) 2)在程序包不可用时在循环上创建when条件以运行任务
我试图了解条件循环如何作用于列表中的每个值/项目。
pkg_list:
- dstat
- iftop
- innotop
- MySQL-python
- mytop
- winrar
- name: "Check if package is installed - Oracle"
yum:
list: "{{ item }}"
with_items: "{{ pkg_list }}"
register: pkg_stats
- debug: msg={{ pkg_stats }}
我想结果应该是:
检查每个项目是否存在
对于项目1,如果不存在,请执行此操作...
对于项目2,如果不存在,请执行此操作...
如此...
答案 0 :(得分:0)
因此,不知道如何设置存储库,您可能会有其他麻烦,但是此调试任务将是其中一项,如果仓库中不存在该软件包,则跳过调试,然后2,仅在以下情况下显示信息:软件包已安装。
pos = cmds.xform('pSphere1.vtx[*]', q=1, rp=True, ws=True)
我还加入了循环控制的内容,因为输出中的项目迭代器确实很难看,如果不将其配对,将不会很有用,但是您要做的事情并不需要。
因此,如果您的存储库中有多个存储库或同一软件包的多个版本,并且不知道下一步要做什么,则此任务可能不会显示过滤器的所有排列和时间,但这应该可以使您更接近。
答案 1 :(得分:0)
您可以使用package_facts
模块来获取有关安装了哪些软件包的信息。结果将存储在ansible_facts.packages
变量中。
- name: Gather package facts
package_facts:
manager: rpm
- name: Show package facts
debug:
var: ansible_facts.packages
然后,您可以执行取决于是否安装软件包的任务。例如,以下任务将仅打印列表中未安装的软件包的调试信息:
- name: Print debug info for missing packages
debug:
var: item
with_items: '{{ pkg_list }}'
when: item not in ansible_facts.packages