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检查正在安装的软件包的签名。仅在状态为prsent 或lastest 时才有效。 |
disable_plugin | 要为安装/更新操作禁用的插件名称。禁用的插件不会在事务之外持续存在。 | |
disablerepo | 存储库的repoid禁用安装/更新操作。这些repos不会在室外之外持续存在,当指定多个repo时,以, 分隔开。 |
|
enable_plugin | 要为安装/更新操作启用的插件名称。禁用的插件不会在事务之外持续存在。 | |
enablerepo | 存储库的repoid启用安装/更新操作。这些repos不会在室外之外持续存在,当指定多个repo时,以, 分隔开。 |
|
exclude | 当state=present 或llatest 时要排除的包名称 |
|
installroot | / | 指定备用installroot,相对于该安装根将安装所有软件包。 |
list | 包名称运行等效于yum list <package> ,除了列出包,也可以列出以下内容: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 | 是否安装(present 、installed 、latest )或者移除(absent 、remove )包。present 和 installed 将简单地确保安装了所需的包。latest 将会升级指定包,如果不是最新的可用版本。absent 和 removed 将会删除指定包 |
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"
网友评论