ansible yum模块使用

本文概述

  • 安装套件
  • 安装最新版本
  • 安装特定版本
  • 安装多个软件包
  • 更新所有软件包
Ansible具有用于管理Yum软件包的特定模块。你可以使用此模块安装,删除,升级或降级版本以及更多其他版本。
与Ansible中的其他软件包管理模块一样,Yum模块也需要两个参数来作为主要命令。
  • 名称:提供你要安装的软件包的名称。
  • 状态:维护程序包的状态,就像任务完成(存在或不存在)后程序包的状态一样。默认情况下,参数的值为“ present”。
安装套件让我们使用Yum模块安装git包。将名称参数设置为“ git”,将状态参数设置为“ present”。
- hosts: all tasks: - name: Install yum package in Ansible example yum: name: git state: present

【ansible yum模块使用】如果该软件包不在远程服务器上,则将安装最新版本。
并且,如果该软件包已经安装在远程服务器上,则由于“状态”已经“存在”,因此不会将其更新为新版本。
注意:“当前”和“已安装”参数都具有相同的行为。安装最新版本如果要安装最新版本,则可以将状态参数设置为“最新”。无论是否存在该软件包,它将安装最新的软件包。
- hosts: all tasks: - name: Install the latest yum package example. yum: name: git state: latest

安装特定版本有时你想安装特定版本的软件包。你可以通过在版本后面加上软件包名称来实现。
< packagename>-< package version>

例如git-1.8.3.1-6.el7
让我们在远程服务器上安装版本为1.8.3.1-6.el7的git软件包。
- hosts: all tasks: - name: Install a specific version of a package in Ansible. yum: name: git-1.8.3.1-6.el7 state: present

输出量
------ [root@rpm ~]# yum info git Installed Packages Name: git Arch: x86_64 Version: 1.8.3.1 Release: 6.el7

安装多个软件包如果要安装各种软件包,可以通过使用“ with_items”语句遍历软件包列表来完成。
让我们执行三个Yum软件包,例如MySQL,git和httpd。
- hosts: all tasks: - name: yum yum: name: "{{ item }}" state: present with_items: - git - httpd - mysql

注意:上面的代码不会在每个循环实例中作为单个软件包安装执行。而是一次性安装了所有模块。此优化形式是自1.9.2开始的行为。更新所有软件包你可以更新所有的yum软件包,例如使用命令yum -y update。你可以在名称中使用通配符“ *”。
- hosts: all tasks: - name: Upgrade all yum packages ansible. yum: name: "*" state: latest

另外,你可以使用exclude参数,以便某些软件包不应该升级。以下任务不会更新git软件包。
- hosts: all tasks: - name: Exclude some packages from an upgrade in Ansible. yum: name: "*" state: latest exclude: git*

    推荐阅读