taktus.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 推荐的依赖 | 否 |
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 忽略的包 | 否 |
默认情况下,管理包时使用 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