ansible的yum模块

ansible的yum模块

微信搜索 zze_coding 或扫描 👉 二维码关注我的微信公众号获取更多资源推送:

此文章为「ansible笔记(2)之常用模块」的子文章。

yum 模块可以帮助我们在远程主机上通过 yum 源管理软件包。

参数说明:
name:必须参数,用于指定需要管理的软件包,比如 nginx;
state:用于指定软件包的状态,默认值为 present,表示确保软件包已经安装,除了 present,其他可用值有installedlatestabsentremoved,其中 installedpresent 等效,latest 表示安装 yum 中最新的版本,absentremoved 等效,表示删除对应的软件包;
disable_gpg_check:用于禁用对 rpm 包的公钥 gpg 验证,默认值为 no,表示不禁用验证,设置为 yes 表示禁用验证,即不验证包,直接安装,在对应的 yum 源没有开启 gpg 验证的情况下,需要将此参数的值设置为 yes,否则会报错而无法进行安装;
enablerepo:用于指定安装软件包时临时启用的 yum 源,假如你想要从 A 源中安装软件,但是你不确定 A 源是否启用了,你可以在安装软件包时将此参数的值设置为 yes,即使 A 源的设置是未启用,也可以在安装软件包时临时启用 A 源;

disablerepo:用于指定安装软件包时临时禁用的 yum 源,某些场景下需要此参数,比如,当多个 yum 源中同时存在要安装的软件包时,你可以使用此参数临时禁用某个源,这样设置后,在安装软件包时则不会从对应的源中选择安装包;

enablerepo 参数和 disablerepo 参数可以同时使用。

例 1:确保客户机上通过 yum 源安装了 nginx(对应 yum 源未开启 gpg 验证,所以需要设置 disable_gpg_check=yes),如下三条命令的效果相同。

$ ansible all -m yum -a 'name=nginx disable_gpg_check=yes'
$ ansible all -m yum -a 'name=nginx state=present disable_gpg_check=yes'
$ ansible all -m yum -a 'name=nginx state=installed disable_gpg_check=yes'

例 2:确保客户机上安装了 yum 源中最新版本的 nginx。

$ ansible all -m yum -a 'name=nginx state=latest disable_gpg_check=yes'

例 3:确保客户机上通过 yum 源安装的 nginx 被卸载了。

$ ansible all -m yum -a 'name=nginx state=absent'
$ ansible all -m yum -a 'name=nginx state=removed'

例 4:在客户机上安装 telnet 时不确定 local 源是否启用,使用 enablerepo=local 确保临时启用 local 源。

$ ansible all -m yum -a 'name=telnet disable_gpg_check=yes enablerepo=local'

例 5:在客户机上安装 telnet 时,确定多个源中都有 telnet,但是不想从 local 源中安装,所以在安装时临时禁用 local 源。

$ ansible all -m yum -a 'name=telnet disable_gpg_check=yes disablerepo=local'

Copyright: 采用 知识共享署名4.0 国际许可协议进行许可

Links: https://www.zze.xyz/archives/ansible-module-yum.html

Buy me a cup of coffee ☕.