GROG.package

软件包

Ansible Galaxy 构建状态 最新标签 Gitter 聊天

这是一个用于在不同操作系统上管理软件包的角色。

该角色目前支持 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_listpackage_list_hostpackage_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_stateitem.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

关于项目

A role for installing packages on different operating systems.

安装
ansible-galaxy install GROG.package
许可证
mit
下载
260k
拥有者
Open Source Science and Technology