taktus.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 推荐的依赖
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_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 taktus.package
许可证
mit
下载
112
拥有者