cans.package-source

cans.package-source

构建状态 Ansible Galaxy 许可证

简单的角色,用于添加和/或删除分发包源及其各自的 GPG 密钥。

每个要添加或删除的包源必须按照以下格式描述:

- repo: "仓库名称"      # 必需
  codename: "<发行版代号>"       # 可选,默认为:未定义
  key_id: "<GPG 密钥 ID>"              # 可选,默认为:未定义
  key_server: "<密钥服务器网址>"      # 可选,默认为:未定义
  key_url: "<公钥文件网址>"    # 可选,默认为:未定义
  keyring: "<密钥环路径>"        # 可选,默认为:未定义
  update_cache: <yes|no>              # 可选,默认为:no

该角色将先添加,然后删除源。由于仓库是按列表指定的,因此它们被添加或删除的顺序是确定的,并且按照您的剧本中指定的顺序。

所有默认值为_未定义_ 的值如果未指定将被忽略。

repo 是唯一的必需值,应该是有效的 APT 仓库描述行。

如果您希望在给定源旁边安装密钥,您必须指定 key_id,以避免在 APT 的密钥环中插入不必要的密钥。然后,key_urlkey_server 其中一个变为必需,以便以某种方式获取密钥。

通常,改变 update_cache 的默认值不是一个好主意,因为这会极大地降低剧本的执行速度。而且,若您添加包源,很可能在不久之后使用它们。因此,建议在添加源后更新缓存,而不是在添加时就更新。请注意,这样做的缺点是无法验证您的新仓库。如果您仍然希望在执行此角色期间发生验证,请使用 update_cache,如下面的示例剧本所示。

要求

此软件包依赖于 Ansible 的分发包源管理模块:

角色变量

此模块的所有变量都以前缀 pkgsources 命名空间。

  • pkgsource_present: 您希望确保可用的源列表(默认为 []);
  • pkgsource_absent: 您希望确保可用的源列表(默认为 []);

废弃变量

  • pkgsource_user: 此变量已被废弃,因为您可以在导入角色或在剧本级别定义它。该变量实际上未被使用(默认为 ansible_user_id)。

依赖项

该角色没有外部依赖项。

示例剧本

在此剧本中,我们向 APT 添加两个新源并删除一个。 对于第二个添加的源,我们还将安装该仓库的 GPG 密钥。最后,由于此角色先添加后删除仓库,因此在最后(唯一)删除的仓库上,我们强制更新缓存,以确保配置确实有效并且 APT 可以验证所有仓库和软件包签名。

- hosts: servers
  roles:
     - role: "cans.package-source"
       pkgsource_present:
         # 简单确保 Debian 当前发行版本回退包的仓库可用
         - repo: "deb http://ftp.fr.debian.org/debian/ stable-backports main"

         # Heroku 的工具包仓库(CLI 工具)
         - repo: "deb https://toolbelt.heroku.com/ubuntu/ ./"
           # 这两行将确保在将仓库添加到源列表之前先安装 Heroku 的 GPG 密钥。
           key_id: C927EBE00F1B0520
           key_url: "https://toolbelt.herokuapp.com/apt/release.key"

       # 您希望删除的废弃源。
       pkgsource_absent:
         - "deb http://ftp.fr.debian.org/debian/ wheezy main"
           # 强制在最后一个添加或删除的仓库上更新缓存以验证新配置
           update_cache: yes

许可证

Ansible 角色 package-source 是自由软件:您可以根据自由软件基金会发布的 GNU 通用公共许可证第 2 版的条款重新分发和/或修改它。

package-sources 的分发是希望它会有用,但没有任何保证;甚至没有适销性或适合特定用途的隐含保证。有关更多细节,请参见 GNU 通用公共许可证。

您应该在收到 package-sources 时随附了一份 GNU 通用公共许可证的副本。如果没有,请访问 http://www.gnu.org/licenses/

作者信息

版权所有 © 2017-2018, Nicolas CANIART。

关于项目

Role to manage Distribution Package Sources and their Encryption Keys

安装
ansible-galaxy install cans.package-source
许可证
gpl-2.0
下载
138
拥有者