- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我创建了一个 playbook,它将使用“yum”Ansible 模块检查软件包是否安装在基于 RHEL 的服务器上,然后显示结果。
我的任务如下;
角色/linux/yumcheck/tasks/main.yml
- name: Check for installed packages
yum: list={{ item.package }}
with_items:
- { package: 'package1' }
- { package: 'package2' }
- { package: 'package3' }
register: yumlist
- debug: var=yumlist
剧本正确输出以下格式的结果;
"results": [
{
"_ansible_item_result": true,
"_ansible_no_log": false,
"changed": false,
"invocation": {
"module_args": {
"conf_file": null,
"disable_gpg_check": false,
"disablerepo": null,
"enablerepo": null,
"exclude": null,
"install_repoquery": true,
"list": "python",
"name": null,
"state": "installed",
"update_cache": false,
"validate_certs": true
},
"module_name": "yum"
},
"item": {
"package": "python"
},
yum 列表模块也会显示“可用”包。当使用作为多个可用包的包名称(例如 python)运行此 playbook 时,输出可能会变得非常冗长。我的目标是让剧本只输出某些字典值(我相信它们被称为字典值)。
如何格式化结果以仅显示相关信息,例如“状态”(已安装或未安装)和包名称?
我尝试以与使用方括号或花括号显示有关主机的事实相同的方式显示信息,例如 {{ results.state}} 但 Ansible 提示变量未定义。我一直没能在网上找到这个问题的类似例子。我的目标是简单而干净地显示是否安装了软件包列表,而没有所有额外的臃肿信息。
谢谢。
最佳答案
使用map过滤器:
- debug: msg="{{ yum_list.results | map(attribute='invocation.module_args.state') | list }}"
关于linux - 在 ansible playbook 中仅显示 yum 列表中的某些字典值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39648049/
使用 yum 的优先级插件时,会显示已排除的软件包数量。有没有办法显示这些包的名称? 最佳答案 你总是可以像这样运行 yum: yum -d 9 install foo 并且部分日志输出是排除包。 编
我尝试使用命令 make && make install 安装 yum-3.4.3,但失败并显示以下日志: infra-bld4:/tmp/hxu2/yum-3.4.3> make for d in
我在 CentOs 8 上运行以下命令 $ cat /etc/redhat-release CentOS Linux release 8.2.2004 (Core) 我从一个干净且更新的 yum 数据
我知道 FI-WARE 在 http://repositories.testbed.fiware.org/ 提供了一个公共(public) yum 存储库可用于安装 FI-WARE 软件包,例如 Or
如何将 yum 存储库完全导入 Artifactory? 请注意,我指的是外部 yum存储库,并且由于在 Artifactory 中实现外部存储库镜像的方式,我无法使用 artifactory-rem
当我在 shell 中使用 yum 时,错误消息是没有名为 yum 的模块,所以我编辑/usr/bin/yum 将第一行更改为另一个版本的 python,但没有任何变化,当我使用不同的 python
我正在按照可以在此处找到的教程在 ec2 实例上设置 headless Selenium 刮刀: https://krbnite.github.io/Driving-Headless-Chrome-w
我们在我们公司使用自定义的 yum 存储库。某些事情导致他们失败 yum makecache命令。 我在 CentOS Linux release 7.7.1908 (Core) . 这是我们在运行
我正在尝试使用 RPM 升级软件包。我如何知道它是全新安装还是更新。是否有任何我可以检查的标志,或者我应该编写一个脚本来检查它是全新安装还是升级? 最佳答案 如果我很好地理解你的问题;我想你自己打包
在 Debian 衍生版中,在使用 apt-get install xxx 从 apt 安装软件之前,需要运行apt-get update .这会刷新包列表,以便正确解析依赖项等。 在使用 RHEL
我正在编写一个更新本地存储库 URL 的 yum 插件。当 repo URL 更改时,我想让 yum 运行 yum clean all 以确保没有缓存过时的信息。我知道当 yum clean [plu
许多 makefile 使用 pkg-config,但名称与包管理器无关(例如 yum/apt)。如何将 pkg-config 名称映射到它们?有什么窍门吗? 示例:如果我执行 yum searchN
我对 Linux 和 VDS 完全陌生。 VDS的操作系统是CentOS 6.9。我正在尝试安装apache、邮件服务器、php、mysql等。但我认为,要能够安装这些 'yum update' 或
当我执行 yum 时,像这样搜索 mysql-libs: $sudo yum search mysql-libs Loaded plugins: branch, downloadonly, faste
我在 CentOS 上使用 MySQL-Server。我 'yum remove' MySQL 服务器,然后再次 'yum install' 它。当我尝试使用 'mysqladmin' 为 'root
我见过两种安装包的方式,比如CentOS上的squid: 1.yum -y install squid 2.yum install squid 谁能告诉我它们之间有什么区别?另外,我使用的是 Cent
提示我出现以下错误 不匹配参数:python-devel 最佳答案 python2.7现在已经完全过时了。你应该和 python3 一起工作.因此你可以安装: dnf install python3-
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
尝试从任何存储库更新任何包时,很难找到导致以下错误的原因。我通过将所有其他人设置为禁用来测试多个 repo 协议(protocol)。我已经清理了所有缓存并删除了所有 dnf yum 缓存文件。 #
我已经在我的 VMServer 上部署了一个新的 CentOS 6.5 实例,其中安装了开发工具、X11 和其他几个软件包。第一天,似乎一切正常。后来我无法使用 yum 安装程序来更新或安装任何软件包
我是一名优秀的程序员,十分优秀!