Ansible——yum模块

目录

参数总结

[1. 安装软件包](#1. 安装软件包)

安装单个软件包

安装多个软件包

从特定仓库安装

[安装包并禁用 GPG 检查](#安装包并禁用 GPG 检查)

简单的命令行帮助

[2. 更新软件包](#2. 更新软件包)

更新单个软件包到最新版本

更新所有可升级的软件包

[3. 删除软件包](#3. 删除软件包)

删除单个软件包

删除多个软件包

[4. 安装特定版本的软件包](#4. 安装特定版本的软件包)

[5. 禁用并清理无用的包](#5. 禁用并清理无用的包)

Playbook示例

示例1:安装软件包

示例2:安装多个软件包

示例3:更新软件包

示例4:删除软件包

示例5:从特定仓库安装软件包

示例6:安装特定版本的软件包

[示例7:禁用 GPG 检查](#示例7:禁用 GPG 检查)

示例8:安装组包

示例9:安装所有可升级的软件包

示例10:卸载并清理无用的软件包


yum 模块是 Ansible 用于管理 Red Hat 及其衍生发行版(如 CentOS 和 Fedora)上的软件包的模块。使用 yum 模块可以方便地安装、更新、删除和管理软件包。

参数总结

  1. name:

    • 描述:要管理的软件包名称。可以指定一个包名称、包名称和版本,或一个 URL 指向的包。
    • 类型:字符串或列表
    • 必需:否(如果使用了 liststate 参数)
  2. state:

    • 描述:包的目标状态。
    • 可选值:present(确保包已安装)、absent(确保包已移除)、latest(确保安装最新版本)、reinstalled(重新安装包)
    • 类型:字符串
    • 默认值:present
  3. enablerepo:

    • 描述:启用指定的 YUM 库。
    • 类型:字符串或列表
  4. disablerepo:

    • 描述:禁用指定的 YUM 库。
    • 类型:字符串或列表
  5. exclude:

    • 描述:排除安装或更新指定的包。
    • 类型:字符串或列表
  6. allow_downgrade:

    • 描述:允许降级包到较低版本。
    • 类型:布尔值
    • 默认值:no
  7. update_cache:

    • 描述:在执行操作前更新 YUM 缓存。
    • 类型:布尔值
    • 默认值:no
  8. validate_certs:

    • 描述:使用 SSL 时验证服务端证书。
    • 类型:布尔值
    • 默认值:yes
  9. conf_file:

    • 描述:指定自定义的 YUM 配置文件。
    • 类型:字符串
  10. disable_gpg_check:

    • 描述:禁用 GPG 签名检查。
    • 类型:布尔值
    • 默认值:no
  11. autoremove:

    • 描述:如果为 yes,则自动删除所有未使用的依赖项。
    • 类型:布尔值
    • 默认值:no

1. 安装软件包

安装单个软件包
复制代码
ansible all -m yum -a "name=nginx state=present"
安装多个软件包
复制代码
ansible all -m yum -a "name=nginx,git,vim state=present"
从特定仓库安装
复制代码
ansible all -m yum -a "name=nginx enablerepo=epel state=present"
安装包并禁用 GPG 检查
复制代码
ansible all -m yum -a "name=nginx disable_gpg_check=yes state=present"
简单的命令行帮助

要获取 yum 模块的所有选项和参数,可以使用以下命令查看详细帮助:

复制代码
ansible-doc -s yum

2. 更新软件包

更新单个软件包到最新版本
复制代码
ansible all -m yum -a "name=nginx state=latest"
更新所有可升级的软件包
复制代码
ansible all -m yum -a "name=* state=latest"

3. 删除软件包

删除单个软件包
复制代码
ansible all -m yum -a "name=nginx state=absent"
删除多个软件包
复制代码
ansible all -m yum -a "name=nginx,git state=absent"

4. 安装特定版本的软件包

复制代码
ansible all -m yum -a "name=nginx-1.14.1 state=present"

5. 禁用并清理无用的包

安装 yum-utils 并使用 package-cleanup 命令:

复制代码
ansible all -m yum -a "name=yum-utils state=present"
ansible all -a "package-cleanup --oldkernels --count=2"
ansible all -a "package-cleanup --leaves"

Playbook示例

示例1:安装软件包

创建一个 Playbook 文件 install_packages.yml ,用于安装 nginx 软件包:

复制代码
---
- name: Install Nginx
  hosts: all
  tasks:
    - name: Ensure nginx is installed
      yum:
        name: nginx
        state: present
示例2:安装多个软件包

可以在同一个任务中安装多个软件包,例如 nginxgitvim

复制代码
---
- name: Install Multiple Packages
  hosts: all
  tasks:
    - name: Ensure nginx, git, and vim are installed
      yum:
        name: 
          - nginx
          - git
          - vim
        state: present
示例3:更新软件包

nginx 软件包更新到最新版本:

复制代码
---
- name: Update Nginx
  hosts: all
  tasks:
    - name: Ensure nginx is the latest version
      yum:
        name: nginx
        state: latest
示例4:删除软件包

删除 nginx 软件包:

复制代码
---
- name: Remove Nginx
  hosts: all
  tasks:
    - name: Ensure nginx is absent
      yum:
        name: nginx
        state: absent
示例5:从特定仓库安装软件包

epel 仓库安装 nginx 软件包:

复制代码
---
- name: Install Nginx from EPEL Repo
  hosts: all
  tasks:
    - name: Ensure nginx is installed from EPEL repository
      yum:
        name: nginx
        enablerepo: epel
        state: present
示例6:安装特定版本的软件包

安装 nginx 的特定版本 1.14.1

复制代码
---
- name: Install Specific Version of Nginx
  hosts: all
  tasks:
    - name: Ensure nginx 1.14.1 is installed
      yum:
        name: nginx-1.14.1
        state: present
示例7:禁用 GPG 检查

安装 nginx 软件包并禁用 GPG 检查:

复制代码
---
- name: Install Nginx with GPG Check Disabled
  hosts: all
  tasks:
    - name: Ensure nginx is installed with GPG check disabled
      yum:
        name: nginx
        disable_gpg_check: yes
        state: present
示例8:安装组包

安装 Development Tools 组包:

复制代码
---
- name: Install Development Tools Group
  hosts: all
  tasks:
    - name: Ensure Development Tools are installed
      yum:
        name: "@Development Tools"
        state: present
示例9:安装所有可升级的软件包

更新所有可升级的软件包:

复制代码
---
- name: Update All Packages to Latest Version
  hosts: all
  tasks:
    - name: Update all packages to the latest version
      yum:
        name: '*'
        state: latest
示例10:卸载并清理无用的软件包

安装 yum-utils 并使用 package-cleanup 命令清理无用的软件包:

复制代码
---
- name: Cleanup Unnecessary Packages
  hosts: all
  tasks:
    - name: Install yum-utils
      yum:
        name: yum-utils
        state: present

    - name: Remove unnecessary packages
      shell: package-cleanup --leaves --exclude-bin
      become: yes
相关推荐
食咗未2 小时前
Linux USB HOST EXTERNAL STORAGE
linux·驱动开发
食咗未2 小时前
Linux USB HOST HID
linux·驱动开发·人机交互
Xの哲學2 小时前
Linux SLAB分配器深度解剖
linux·服务器·网络·算法·边缘计算
齐鲁大虾3 小时前
UOS(统信操作系统)如何更新CUPS(通用Unix打印系统)
linux·服务器·chrome·unix
虾..4 小时前
Linux 简单日志程序
linux·运维·算法
huoxingwen4 小时前
Ubuntu 22.04 上 VMware Workstation 点击虚拟机窗口就消失的解决历程
linux·运维·ubuntu
姚青&5 小时前
Linux 常用命令之基本命令
linux·运维·服务器
一路往蓝-Anbo5 小时前
【第05期】数据的微观世界 (五) —— 浮点数 vs 定点数:MCU的数学课
linux·stm32·单片机·嵌入式硬件·物联网
G_H_S_3_5 小时前
【网络运维】企业级监控平台Zabbix:部署与实践指南
linux·运维·网络·zabbix
小周学学学5 小时前
Vcenter Auto Deploy安装与使用
linux·运维·服务器