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选项。
1587

被折叠的 条评论
为什么被折叠?



