GROG.package
软件包
这是一个用于在不同操作系统上管理软件包的角色。
该角色目前支持 apt、yum、dnf、brew、zypper、pacman 和 portage。 欢迎提交请求添加您喜欢的软件包管理器!
注意:
- 该角色处理软件包管理器之间的名称差异,但不处理使用相同软件包管理器的发行版之间的差异。
- 测试覆盖率相对较小,请务必报告错误!
需求
- 主机应已配置好以供 ansible 使用(需安装 python 等)
- 具有 root 权限,例如
become: yes
角色变量
变量 | 描述 | 默认值 |
---|---|---|
package_list |
包列表 (见详情!) | [] |
package_list_host |
主机包列表 (见详情!) | [] |
package_list_group |
群组包列表 (见详情!) | [] |
package_state |
默认包状态 | 'present' |
package_update_cache |
更新缓存? | yes |
package_cache_valid_time |
包缓存有效时间(秒) | 3600 |
package_list
详情
在管理软件包时,package_list
、package_list_host
和 package_list_group
会合并。您可以使用主机和组列表为每个主机或组指定软件包。
软件包列表允许您定义必须管理的软件包。列表中的每个项目可以具有以下属性:
变量 | 描述 | 必需 |
---|---|---|
name |
软件包名称 | 是 |
state |
软件包状态 | 否 |
apt |
apt 的软件包名称 | 否 |
apt_ignore |
忽略 apt 的软件包 | 否 |
apt_install_recommends |
是否安装推荐的依赖项 apt | 否 |
apk |
apk 的软件包名称 | 否 |
apk_ignore |
忽略 apk 的软件包 | 否 |
yum |
yum 的软件包名称 | 否 |
yum_ignore |
忽略 yum 的软件包 | 否 |
dnf |
dnf 的软件包名称 | 否 |
dnf_ignore |
忽略 dnf 的软件包 | 否 |
brew |
brew 的软件包名称 | 否 |
brew_ignore |
忽略 brew 的软件包 | 否 |
zypper |
zypper 的软件包名称 | 否 |
zypper_ignore |
忽略 zypper 的软件包 | 否 |
pacman |
pacman 的软件包名称 | 否 |
pacman_ignore |
忽略 pacman 的软件包 | 否 |
portage |
portage 的软件包名称 | 否 |
portage_ignore |
忽略 portage 的软件包 | 否 |
opkg |
opkg 的软件包名称 | 否 |
opkg_ignore |
忽略 opkg 的软件包 | 否 |
默认情况下,package_state
和 item.name
在管理软件包时会被使用。如果定义了 item.state
或更具体的软件包名称(例如 item.apt
),则会优先使用这些。如果您希望某些软件包在某些管理器中被忽略,可以添加 ***_ignore: yes
。
package_list
示例
package_list:
- name: package
- name: package1
state: absent
- name: package2
apt: package2_apt_name
- name: package3
apt_ignore: yes
yum: package3_yum_name
pacman: package3_pacman_name
portage: package3_portage_name
依赖
无。
示例剧本
---
- hosts: servers
roles:
- { role: GROG.package,
become: yes,
package_list: [
{ name: htop,
brew: htop-osx },
{ name: tree }
]
}
贡献
欢迎所有协助、修改或点子 欢迎!
作者
作者 G. Roggemans
许可
MIT