Ansible Yum
Ansible Yum
Ansible 有一个特定的模块来管理 Yum 包。您可以使用此模块安装、删除、升级或降级版本等。
Yum 模块还需要两个参数作为主要命令,就像 Ansible 中的其他包管理模块一样。
名称: 提供您要安装的包的名称。
State: 维护包的状态,比如任务完成后包的状态(存在或不存在)。默认情况下,该参数的值为"present"。
安装包
让我们使用 Yum 模块安装 git 包。将名称参数设置为"git",将状态参数设置为"present"。
-hosts: all
tasks:
-name: Install yum package in Ansible example
yum:
name: git
state: present
如果该软件包不在远程服务器上,则将安装最新版本。
如果该软件包已安装在远程服务器上,则不会更新到新版本版本,因为"状态"已经"存在"。
注意: 注意: "present"和"installed"参数具有相同的行为。
安装最新版本
如果要安装最新版本,可以将state参数设置为"latest"。它将安装最新的包,无论包是否存在。
-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
输出
------
["/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="493b26263d093b3924">[email protected] ~]# yum info git
Installed Packages
Name: git
Arch: x86_64
Version: 1.8.3.1
Release: 6.el7
安装多个包
如果你想安装各种包,你可以通过使用"with_items"语句循环遍历包列表来实现。
我们来执行MySQL、git、httpd等三个yum包。
-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*