Ansible yum
模块
一、简介
- 功能:
yum
模块用于在基于 RPM 的 Linux 系统(如 RHEL、CentOS、Rocky Linux 等)上管理软件包。它可以安装、升级、删除软件包,以及管理软件源。 - 使用场景:常用于确保系统中安装了所需的软件包,或者升级已有软件包到最新版本,或卸载不需要的包。
二、基本用法
2.1 语法
ansible <pattern> -m yum -a "name=<package_name> state=<state> [other options]"
<pattern>
:指定要操作的主机或主机组,例如all
、webservers
。-m yum
:指定使用yum
模块。name=<package_name>
:指定要管理的软件包名称,可以是单个包名,也可以是多个包名的列表。state=<state>
:指定软件包的目标状态,如present
、absent
、latest
等。
2.2 常见 state
参数
present
:确保指定的软件包已安装。如果未安装,则安装它。absent
:确保指定的软件包已删除。latest
:确保指定的软件包已升级到最新版本。
三、使用示例
3.1 安装软件包
ansible all -m yum -a "name=httpd state=present"
- 解释:在所有主机上安装
httpd
软件包(Apache Web 服务器)。如果已经安装,则不会进行任何更改。
3.2 升级软件包到最新版本
ansible all -m yum -a "name=httpd state=latest"
- 解释:在所有主机上将
httpd
软件包升级到最新版本。
3.3 删除软件包
ansible all -m yum -a "name=httpd state=absent"
- 解释:在所有主机上删除
httpd
软件包。
3.4 安装多个软件包
ansible all -m yum -a "name=httpd,mod_ssl state=present"
- 解释:在所有主机上安装
httpd
和mod_ssl
两个软件包。
3.5 从特定的软件源安装软件包
ansible all -m yum -a "name=httpd enablerepo=epel state=present"
- 解释:从
epel
仓库安装httpd
软件包。
四、其他常用选项
4.1 enablerepo
-
功能:临时启用指定的软件仓库来安装或升级软件包。
-
用法:
ansible all -m yum -a "name=httpd enablerepo=epel state=latest"
- 解释:启用
epel
仓库,并升级httpd
软件包到最新版本。
- 解释:启用
4.2 disablerepo
-
功能:临时禁用指定的软件仓库。
-
用法:
ansible all -m yum -a "name=* disablerepo=base,updates state=latest"
- 解释:在禁用
base
和updates
仓库的情况下,升级所有软件包。
- 解释:在禁用
4.3 exclude
-
功能:指定在操作中排除的软件包,避免其被安装或升级。
-
用法:
ansible all -m yum -a "name=* exclude=kernel* state=latest"
- 解释:升级所有软件包,但排除与
kernel
相关的软件包。
- 解释:升级所有软件包,但排除与
4.4 allow_downgrade
-
功能:允许降级软件包版本,通常在
state=present
时使用。 -
用法:
ansible all -m yum -a "name=httpd-2.4.6-80.el7 state=present allow_downgrade=yes"
- 解释:如果当前安装的
httpd
版本比指定的高,则降级到指定版本。
- 解释:如果当前安装的
4.5 disable_gpg_check
-
功能:禁用 GPG 签名检查。默认情况下,
yum
会对软件包进行 GPG 签名检查。 -
用法:
ansible all -m yum -a "name=httpd state=present disable_gpg_check=yes"
- 解释:安装
httpd
软件包,但不进行 GPG 签名检查。
- 解释:安装
五、注意事项
- 版本控制:在生产环境中,通常需要严格控制软件包版本,以确保稳定性。使用
state=present
或state=latest
时需谨慎,尤其是在自动化脚本中,以免引入未经过测试的更新。 - 仓库配置:确保配置的仓库可用且正确,尤其是在使用
enablerepo
或disablerepo
选项时,避免意外从错误的仓库中安装软件包。 - GPG 签名:在禁用 GPG 签名检查时,可能存在安全风险,建议只在受信任的环境中使用
disable_gpg_check=yes
选项。