在远程主机上通过 yum 源管理软件包。
1. 参数
name:required,指定需要管理的软件包。
state:指定软件包的状态 ,默认值为present,表示安装软件包,可用值 installed、latest、absent、removed, installed 与present 等效,latest 表示安装 yum源中最新的版本,absent 和 removed 等效,表示删除软件包。
disable_gpg_check:禁用对 rpm 包公钥 gpg 验证。默认值 no,表示不禁用验证,设置为 yes 表示禁用验证,即不验证包,直接安装。
enablerepo:指定安装软件包时临时启用的 yum 源。假如想要从A源中安装软件,但是不确定A源是否启用了,你可以在安装软件包时将此参数的值设置为 yes,即使A源的设置是未启用,也可以在安装软件包时临时启用A源。
disablerepo:指定安装软件包时临时禁用的 yum 源。某些场景下需要此参数,比如,当多个 yum 源中同时存在要安装的软件包时,你可以使用此参数临时禁用某个源,这样设置后,在安装软件包时则不会从对应的源中选择安装包。enablerepo 参数和 disablerepo 参数可以同时使用。
2. 示例
1.主机host1 通过 yum 源安装了 nginx (对应 yum 源未开启 gpg 验证,所以需要设置 disable_gpg_check=yes),如下三条命令的效果相同。
ansible host1 -m yum -a 'name=nginx disable_gpg_check=yes'
ansible host1 -m yum -a 'name=nginx state=present disable_gpg_check=yes'
ansible host1 -m yum -a 'name=nginx state=installed disable_gpg_check=yes'
2.确保host1主机上安装了 yum 源中最新版本的 nginx。
ansible host1 -m yum -a 'name=nginx state=latest disable_gpg_check=yes'
3.确保host1主机上通过 yum 源安装的 nginx 被卸载了。如下两条命令效果相同。
ansible host1 -m yum -a 'name=nginx state=absent'
ansible host1 -m yum -a 'name=nginx state=removed'
4.在host1主机上安装 telnet 时不确定 local 源是否启用,使用 enablerepo=local确保临时启用 local 源。
ansible host1 -m yum -a 'name=telnet disable_gpg_check=yes enablerepo=local'
5.在host1主机上安装 telnet 时,确定多个源中都有 telnet,但是不想从 local 源中安装,所以在安装时临时禁用 local 源。
ansible host1 -m yum -a 'name=telnet disable_gpg_check=yes disablerepo=local'
————Blueicex 2020/2/1 11:22 blueice1980@126.com