R / Richie全部文章 ↑

Linux · 3 分钟阅读

Yum 模块常用参数

2026 年状态:CentOS 8 起官方仓库改用 dnf,Ansible 里 yum 模块自动映射到 dnf 行为;CentOS 7 仍在用 yum,但 CentOS 7 已停止官方更新,新项目首选 Rocky / Alma / RHEL 系。

核心参数

参数 必填 默认 常用值 说明
name 是 - 包名 / 列表 / URL 支持 name=python 或 name=python=3.12
state 否 present present / latest / absent 目标状态
update_cache 否 no yes / no 是否刷新元数据缓存
disable_gpg_check 否 no yes / no 跳过 GPG 校验
conf_file 否 - 路径 指定 yum 配置文件
enablerepo 否 - 仓库名 临时启用某个仓库
disablerepo 否 - 仓库名 临时禁用某个仓库
install_weak_deps 否 no yes / no 是否安装弱依赖
download_dir 否 - 路径 仅下载不安装
lock_timeout 否 30 秒 等待 yum 锁超时

常用写法

基本操作

- name: 安装最新版本
  ansible.builtin.yum:
    name: httpd
    state: latest

- name: 卸载
  ansible.builtin.yum:
    name: httpd
    state: absent

- name: 升级所有包
  ansible.builtin.yum:
    name: "*"
    state: latest

从 URL 或本地文件安装

- name: 从远端 RPM 安装
  ansible.builtin.yum:
    name: https://example.com/nginx-release.rpm
    state: present
    disable_gpg_check: true

- name: 从本地 RPM 安装
  ansible.builtin.yum:
    name: /tmp/nginx-release.rpm
    state: present

安装包组

- name: 安装开发工具链
  ansible.builtin.yum:
    name: "@Development tools"
    state: present

指定仓库

- name: 仅从 epel 安装
  ansible.builtin.yum:
    name: htop
    enablerepo: epel
    state: present

一些工程上的注意

  • state=latest 会让 Playbook 不可重放,生产慎用——固定版本号更稳
  • 升级所有包用独立 Playbook,别混在业务部署里
  • 需要 --enablerepo 时,更干净的做法是把它写进 /etc/yum.repos.d/*.repo 的 enabled=1
  • 大批量机器同步时用 --forks 调高并发

参考