03-常用模块(四)-包管理模块

Ansible

Ansible version : 2.6.2

常用模块(四)

包管理模块

包管理模块详细地址:https://docs.ansible.com/ansible/latest/modules/list_of_packaging_modules.html

  • rpm_key
  • yum

模块:rpm_key

概述

在rpm数据库中添加或删除(rpm -import)gpg密钥。

参数
参数(*必选) 默认值 注释
* key 将被修改的密钥,可以是url、文件、或者一个已经存在在数据库里面的keyid
state present 将要导入的key或者从db删除的key
validate_certs yes 如果设置为no并且url使用https,SSL证书将不会被验证。这应仅用于使用自签名证书的个人控制站点。
例子

从url导入key

# Example action to import a key from a url
- rpm_key:
    state: present
    key: http://apt.sw.be/RPM-GPG-KEY.dag.txt

从文件导入key

# Example action to import a key from a file
- rpm_key:
    state: present
    key: /path/to/key.gpg

删除key

# Example action to ensure a key is not present in the db
- rpm_key:
    state: absent
    key: DEADB33F

模块:yum

概述
  • 使用yum软件包管理器安装,升级,降级,删除和列出软件包和组。
  • 此模块仅适用于Python 2.如果需要Python 3支持,请参阅【dnf】模块。
参数
参数(*必选) 默认值 注释
allow_downgrade no 指定指定的包和版本是否被允许降级一个可能已经安装的更高版本的软件包。注意:设置allow_downgrade=True可以使此模块以非幂等方式运行。任务最终可能会得到一组与要安装的完整指定包列表不匹配的包(因为降级包与其他包之间的依赖关系可能会导致对先前事务中的包的更改)。
bugfix no 如果设置为yes,并且state=latest,则仅安装已标记为与bugfix相关的更新。
conf_file 用于事务的远程yum配置文件。
disable_gpg_check no 是否禁用GPG检查正在安装的软件包的签名。仅在状态为prsentlastest时才有效。
disable_plugin 要为安装/更新操作禁用的插件名称。禁用的插件不会在事务之外持续存在。
disablerepo 存储库的repoid禁用安装/更新操作。这些repos不会在室外之外持续存在,当指定多个repo时,以,分隔开。
enable_plugin 要为安装/更新操作启用的插件名称。禁用的插件不会在事务之外持续存在。
enablerepo 存储库的repoid启用安装/更新操作。这些repos不会在室外之外持续存在,当指定多个repo时,以,分隔开。
exclude state=present或llatest时要排除的包名称
installroot / 指定备用installroot,相对于该安装根将安装所有软件包。
list 包名称运行等效于yum list ,除了列出包,也可以列出以下内容:installed, updates, available and repos.
name 包名或者带有指定版本号的包名。如果指定了一个以前的版本号,通常设置allow_downgrade=Ture。当使用state=latest,使用*意思是yum -y update。还可以将url或本地路径传递给rpm文件(使用state=present)。要对多个包进行操作,可以接受逗号分隔的包列表或(在2.0版本中)包列表。
security no 如果设置为yes并且state=latest则只安装已标记为安全相关的更新。
skip_broken no 通过移除在运输过程中引起问题的包装来解决问题。
state present 是否安装(presentinstalledlatest)或者移除(absentremove)包。presentinstalled将简单地确保安装了所需的包。latest将会升级指定包,如果不是最新的可用版本。absentremoved将会删除指定包
update_cache no 强制yum检查缓存是否过期,并在需要时重新下载。只有当状态为present或者latest生效。
update_only no 在使用latest时,只更新已安装的包。不要安装包。只有当状态为latest生效
validate_certs yes 这只适用于使用https url作为rpm源的情况。例如localinstall。如果设置为no,则不会验证SSL证书。

这应该只设置为no,在使用自签名证书的个人控制站点上使用,因为它避免验证源站点。
在2.1之前,代码工作起来就像设置为yes一样。 |

例子

安装多个应用

- name: ensure a list of packages installed
  yum:
    name: "{{ packages }}"
  vars:
    packages:
    - httpd
    - httpd-tools

指定repo

- name: install the latest version of Apache from the testing repo
  yum:
    name: httpd
    enablerepo: testing
    state: present

升级包并排除指定包

- name: upgrade all packages, excluding kernel & foo related packages
  yum:
    name: '*'
    state: latest
    exclude: kernel*,foo*

启用多个源

- name: Install package with multiple repos enabled
  yum:
    name: sos
    enablerepo: "epel,ol7_latest"

你可能感兴趣的:(03-常用模块(四)-包管理模块)