Ansible自动化运维中YUM模块介绍和应用

发布于:2024-05-20 ⋅ 阅读:(170) ⋅ 点赞:(0)

作者主页:点击! 

Ansible专栏:点击!

创作时间:2024年5月16日15点15分


YUM模块是Ansible中用于管理RPM包的强大工具。它可以用于安装、卸载、更新和查询软件包,以及配置yum仓库。YUM模块是基于yum命令行工具的,因此它支持所有yum的功能。

Ansible YUM模块是Ansible中用于管理Red Hat系Linux发行版软件包的强大工具,它具有以下优点:

  • 易于使用: YUM模块语法简单易懂,易于学习和使用。
  • 功能强大: YUM模块支持安装、卸载、更新、查询软件包等多种操作,并提供了丰富的参数和选项来控制安装行为。
  • 自动化: YUM模块可以轻松地集成到Ansible playbooks中,实现自动化运维任务。
  • 安全: YUM模块可以利用Ansible的权限管理机制,以安全的方式进行软件包管理。
  • 跨平台: YUM模块支持Red Hat系Linux发行版,包括CentOS、RHEL、Fedora等。

应用场景

Ansible YUM模块可用于各种软件包管理场景,以下是一些常见的应用场景:

  • 批量安装软件包: YUM模块可以轻松地批量安装指定版本的软件包到多个主机上,这对于部署新应用或更新现有应用非常方便。
  • 维护软件包依赖: YUM模块可以自动解析和安装软件包的依赖关系,确保软件包能够正常运行。
  • 配置软件包: YUM模块可以配置软件包的配置文件,例如修改配置文件中的参数值或添加新配置项。
  • 管理软件包仓库: YUM模块可以管理软件包仓库,例如添加、删除、启用或禁用软件包仓库。
  • 监控软件包状态: YUM模块可以监控软件包的状态,例如检查软件包是否已安装、是否为最新版本等。

YUM模块的基本用法

  1. 安装软件包
- name: Install a package
  yum:
    name: package_name
    state: present
  1. 卸载软件包
- name: Remove a package
  yum:
    name: package_name
    state: absent
  1. 更新软件包
- name: Update all packages
  yum:
    name: '*'
    state: latest

YUM模块常用参数汇总

参数名 说明 默认值 可选值
name 要安装、卸载或更新的软件包名称 必填
state 软件包的状态 present

present、latest、absent、removed、info

version 要安装的软件包版本 任意版本字符串
disable_repo 禁用指定仓库 仓库名称列表
enable_repo 启用指定仓库 仓库名称列表
force_reinstall 强制重新安装软件包 no yes
update_cache 更新软件包缓存 yes

yes、no、always

exclude 排除依赖的软件包 软件包名称列表
include 包含依赖的软件包 软件包名称列表

实验应用

使用ansible服务器来控制2两台服务器

1.下载httpd并检测

2.下载vsftp并检测

3.删除部署程序

3.更新所有安装包

 1.增加主机组

通过以下配置就是创建一个webServers组 并且加入两个主机 再给组赋予变量 用户名和密码 这样组下的所有主机都可以访问 更加的便捷

2.部署httpd
[root@ansible ~]# ansible webServers -m yum -a 'name=httpd state=latest'
  • webServers :这指定要面向的主机组。这些主机应在 Ansible 清单文件中定义。

  • -m yum :此选项指示 Ansible 使用该 yum 模块,该模块用于管理基于 Red Hat 的 Linux 发行版上的软件包。
  • -a 'name=httpd state=latest' :此选项定义 yum 模块的参数:
    • name=httpd :这指定要管理的软件包,在本例中是这样 httpd
    • state=latest :这将设置包的所需状态。在这里,它设置为 latest 确保安装最新版本。
    • webServers :这指定要面向的主机组。这些主机应在 Ansible 清单文件中定义。
    • -m yum :此选项指示 Ansible 使用该 yum 模块,该模块用于管理基于 Red Hat 的 Linux 发行版上的软件包。
    • -a 'name=httpd state=latest' :此选项定义 yum 模块的参数:
      • name=httpd :这指定要管理的软件包,在本例中是这样 httpd
      • state=latest :这将设置包的所需状态。在这里,它设置为 latest 确保安装最新版本。

提示这些很多的字体是httpd的整个安装过程

这时返回客户端查看是否安装成功

2.部署vsftpd
[root@ansible ~]# ansible webServers -m yum -a 'name=vsftpd state=latest'

详细讲解如上一样不解释了

也是会弹出来一系列的参数

为了大家显而易见的观看 我部署之前先检测并没有安装vsftpd 在服务器上部署完成之后再次查看

3.删除刚部署服务
[root@ansible ~]# ansible webServers -m yum -a 'name=vsftpd state=absent'

执行完命令之后很明显的可以看到正在删除

客户端查看

另外一个httpd的删除实例就留给大家动手吧~

4.更新所有程序
[root@ansible ~]# ansible webServers -m yum -a 'name=* state=latest'

因为是所有的程序更新 需要等待很长的时间~~~