Ansible教程

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*
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4