本文概述
- 安装套件
- 安装最新版本
- 安装特定版本
- 安装多个软件包
- 更新所有软件包
与Ansible中的其他软件包管理模块一样,Yum模块也需要两个参数来作为主要命令。
- 名称:提供你要安装的软件包的名称。
- 状态:维护程序包的状态,就像任务完成(存在或不存在)后程序包的状态一样。默认情况下,参数的值为“ 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*
推荐阅读
- ansible unarchive模块使用
- ansible windows使用
- ansible vault命令用法
- ansible文件模块用法
- ansible命令模块用法
- ansible复制模块
- ansible lineinfile模块
- ansible apt模块
- ansible调试模块用法