ansible常用模块之 -- yum模块 – 使用yum包管理器管理包

ansible常用模块之 -- yum模块 – 使用yum包管理器管理包

yum模块 – 使用yum包管理器管理包

一、摘要

  • 使用yum包管理器安装、升级、降级、删除和列出包和组
  • 此模块仅适用于Python 2。如果您需要Python 3支持,请参阅dnf模块

二、参数

参数选项/默认值描述
allow_downgrade
boolean
· no ←
· yes
指定是否允许指定的包和版本降级可能已经安装的该包的更高版本。注意,设置allow_downgrad=True可以使该模块以非幂等的方式运行。任务最终可能得到一组与要安装的指定包的完整列表不匹配的包(因为降级包与其他包之间的依赖关系可能导致对早期事务中的包的更改)。
autoremove
boolean
· no ←
· yes
如果 yes,则从系统中删除所有“leaf”包,这些包最初是作为用户安装包的依赖项安装的,但任何此类包不再需要这些包。是单独使用还是在没有状态的情况下使用
注意:此功能需要yum >= 3.4.3 (RHEL/CentOS 7+)
bugfixDefault:“no”如果设置为yes,并且state=latest则只安装已标记为与bug修复相关的更新。
conf_file用于事务的远程yum配置文件。
disable_excludes禁用YUM配置文件中定义的排除。
如果设置为all,则禁用所有排除。
如果设置为main,则禁用yum.conf中[main]定义的排除。
如果设置为repoid,则禁用为给定repoid定义的排除。
disable_gpg_check
boolean
· no ←
· yes
是否关闭正在安装的包的GPG签名检查。只有在状态出现或最新时才会生效。
disable_plugin为安装/更新操作禁用的插件名称。禁用的插件将不会在事务之外持久存在。
disablerepo要为安装/更新操作禁用的存储库的repid。这些回购不会在交易结束后继续存在。当指定多个回购时,用“,”分隔它们。
在Ansible 2.7中,这也可以是一个列表而不是“,”分隔的字符串
download_dir
string
指定存储包的备用目录。
只有指定了download_only才会生效。
download_only
boolean
· no ←
· yes
只下载软件包,不安装。
enable_plugin为安装/更新操作启用的插件名称。启用的插件不会在事务之外持久存在。
enablerepo用于安装/更新操作的存储库的Repoid。这些回购不会在交易结束后继续存在。当指定多个回购时,用“,”分隔它们。
在Ansible 2.7中,这也可以是一个列表而不是“,”分隔的字符串
exclude当state=present或latest时要排除的包名
install_weak_deps
boolean
· yes ←
· no
还将安装由弱依赖关系链接的所有包。
注意:这个功能需要yum >= 4 (RHEL/CentOS 8+)
installrootDefault:“/”指定可选的installroot,所有包都将相对于该安装根进行安装。
list运行yum list的等效包名——show-duplicate <反对除了列出包外,use还可以列出以下包:已安装的、更新的、可用的和回收的。
与name互斥。
lock_timeout
integer
Default:30等待yum锁文件被释放的时间。
name
list / elements=string
带有版本的包名或包说明符,如name-1.0。
如果指定了以前的版本,任务还需要打开allow_降级。有关降级包的注意事项,请参阅allow_降级文档。
当使用state=latest时,它可以是’*',这意味着运行yum -y update。
您还可以向rpm文件传递url或本地路径(使用state=present)。要操作多个包,它可以接受逗号分隔的包字符串或(从2.0开始)包列表。
releasever指定将从其中安装所有包的替代版本。
security
boolean
· no ←
· yes
如果设置为yes,并且state=latest则只安装已标记为安全相关的更新。
skip_broken
boolean
· no ←
· yes
跳过有破坏依赖项的包(devsolve),这会导致问题。
state· absent
· installed
· latest
· present
· removed
是安装(现有的或已安装的,最新的),还是删除(缺失的或已删除的)一个包。
Present和installed只会确保所需的包被安装。
如果指定的包不是最新的可用版本,Latest将更新该包。
缺席和删除将删除指定的包。
默认值为None,但实际上默认操作是存在的,除非为该模块启用了自动删除选项,否则将推断为缺席。
update_cache
boolean
· no ←
· yes
强制yum检查缓存是否过期并在需要时重新下载。只有在状态出现或最新时才会生效。
update_only
boolean
· no ←
· yes
使用latest时,只更新已安装的包。禁止安装软件包。
只有state是最新的才有效果
use_backend
· auto ←
· yum
· yum4
· dnf
该模块支持yum(一如既往),这被上游yum开发人员称为yum3/ yum3/ yum-已弃用。从Ansible 2.7+开始,这个模块还支持YUM4,这是“新的yum”,它有一个dnf后端。
默认情况下,该模块将根据ansible_pkg_mgr事实选择后端。
validate_certs
boolean
· yes ←
· no
这只适用于使用https url作为rpm源的情况。例如localinstall。如果设置为no,则不验证SSL证书。
这应该只设置为在使用自签名证书的个人控制站点上不使用,因为它避免验证源站点。
在2.1版本之前,代码的工作方式就好像这被设置为yes。

三、示例

# 安装最新版本的Apache
- name: install the latest version of Apache
  yum:
    name: httpd
    state: latest

# 确保已安装的软件包列表
- name: ensure a list of packages installed
  yum:
    name: "{{ packages }}"
  vars:
    packages:
    - httpd
    - httpd-tools

# 删除Apache包
- name: remove the Apache package
  yum:
    name: httpd
    state: absent

# 从测试回购中安装最新版本的Apache
- name: install the latest version of Apache from the testing repo
  yum:
    name: httpd
    enablerepo: testing
    state: present

# 安装一个特定版本的Apache
- name: install one specific version of Apache
  yum:
    name: httpd-2.2.29-1.4.amzn1
    state: present

# 升级所有的包
- name: upgrade all packages
  yum:
    name: '*'
    state: latest

# 升级所有包,不包括内核和foo相关的包
- name: upgrade all packages, excluding kernel & foo related packages
  yum:
    name: '*'
    state: latest
    exclude: kernel*,foo*

# 从远程repo安装nginx RPM
- name: install the nginx rpm from a remote repo
  yum:
    name: http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
    state: present

# 从本地文件安装nginx RPM
- name: install nginx rpm from a local file
  yum:
    name: /usr/local/src/nginx-release-centos-6-0.el6.ngx.noarch.rpm
    state: present

# 安装“开发工具”包组
- name: install the 'Development tools' package group
  yum:
    name: "@Development tools"
    state: present

# 安装“Gnome桌面”环境组
- name: install the 'Gnome desktop' environment group
  yum:
    name: "@^gnome-desktop-environment"
    state: present

# 列出可安装的包并注册结果,稍后用调试打印。
- name: List ansible packages and register result to print with debug later.
  yum:
    list: ansible
  register: result

# 安装包与多个回购启用
- name: Install package with multiple repos enabled
  yum:
    name: sos
    enablerepo: "epel,ol7_latest"

# 安装包与多个回购禁用
- name: Install package with multiple repos disabled
  yum:
    name: sos
    disablerepo: "epel,ol7_latest"

# 安装软件包列表
- name: Install a list of packages
  yum:
    name:
      - nginx
      - postgresql
      - postgresql-server
    state: present

# 下载nginx包,但不要安装它
- name: Download the nginx package but do not install it
  yum:
    name:
      - nginx
    state: latest
    download_only: true

官方文档:https://docs.ansible.com/ansible/2.9/modules/yum_module.html#yum-module

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值