本文概述
Ansible具有用于管理Yum软件包的特定模块。你可以使用此模块安装,删除,升级或降级版本以及更多其他版本。
与Ansible中的其他软件包管理模块一样,Yum模块也需要两个参数来作为主要命令。
- 名称:提供你要安装的软件包的名称。
- 状态:维护程序包的状态,就像任务完成(存在或不存在)后程序包的状态一样。默认情况下,参数的值为“ present”。
安装套件
让我们使用Yum模块安装git包。将名称参数设置为“ git”,将状态参数设置为“ present”。
- hosts: all
tasks:
- name: Install yum package in Ansible example
yum:
name: git
state: present
如果该软件包不在远程服务器上,则将安装最新版本。
并且,如果该软件包已经安装在远程服务器上,则由于“状态”已经“存在”,因此不会将其更新为新版本。
注意:“当前”和“已安装”参数都具有相同的行为。
安装最新版本
如果要安装最新版本,则可以将状态参数设置为“最新”。无论是否存在该软件包,它将安装最新的软件包。
- 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*
评论前必须登录!
注册