个性化阅读
专注于IT技术分析

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

如果该软件包不在远程服务器上,则将安装最新版本。

并且,如果该软件包已经安装在远程服务器上,则由于“状态”已经“存在”,因此不会将其更新为新版本。

注意:“当前”和“已安装”参数都具有相同的行为。

安装最新版本

如果要安装最新版本,则可以将状态参数设置为“最新”。无论是否存在该软件包,它将安装最新的软件包。

- 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*

赞(2)
未经允许不得转载:srcmini » ansible yum模块使用

评论 抢沙发

评论前必须登录!