ansible.builtin.apt_key 模块 – 添加或删除 apt 密钥
注意
此模块是 ansible-core 的一部分,包含在所有 Ansible 安装中。在大多数情况下,即使不指定 collections 关键字,您也可以使用简短的模块名称 apt_key。但是,我们建议您使用 完全限定集合名称 (FQCN) ansible.builtin.apt_key,以便轻松链接到模块文档并避免与可能具有相同模块名称的其他集合冲突。
概要
- 添加或删除一个 *apt* 密钥,也可以选择下载它。 
需求
在执行此模块的主机上需要以下需求。
- gpg 
参数
| 参数 | 注释 | 
|---|---|
| 要添加到密钥环的密钥文件内容。 | |
| 远程服务器上要添加到密钥环的密钥文件的路径。 | |
| 密钥的标识符。 包含此项允许检查模式正确报告更改状态。 如果指定子密钥的 ID,请注意 apt-key 不知道如何通过子密钥 ID 删除密钥。请改用主密钥的 ID。 当  | |
| 
 | |
| 从中检索密钥的密钥服务器。 | |
| 确保密钥存在(已添加)或不存在(已吊销)。 选项 
 | |
| 从中检索密钥的 URL。 | |
| 如果为  选项 
 | 
属性
| 属性 | 支持 | 描述 | 
|---|---|---|
| 支持:完全支持 | 可以在 check_mode 下运行并返回更改状态预测,而无需修改目标,如果不支持,则会跳过该操作。 | |
| 支持:不支持 | 在 diff 模式下,将返回有关已更改内容(或可能需要在 check_mode 下更改的内容)的详细信息 | |
| 平台: debian | 可以对其进行操作的目标操作系统/系列 | 
备注
注意
- 此模块使用的 - apt-key命令已被弃用。有关详细信息,请参阅 Debian wiki。保留此模块是为了向后兼容仍然使用- apt-key作为管理 apt 存储库密钥主要方式的系统。
- 作为健全性检查,下载的密钥 ID 必须与指定的密钥 ID 匹配。 
- 使用完整指纹(40 个字符)密钥 ID 以避免密钥冲突。要生成完整指纹导入密钥: - apt-key adv --list-public-keys --with-fingerprint --with-colons。
- 如果您同时指定密钥 - id和- url并将- state=present,则任务可以根据需要验证或添加密钥。
- 添加新密钥需要更新 apt 缓存(例如,使用 ansible.builtin.apt 模块的 - update_cache选项)。
另请参阅
另请参阅
- ansible.builtin.deb822_repository
- 添加和删除 deb822 格式的存储库。 
示例
- name: One way to avoid apt_key once it is removed from your distro, armored keys should use .asc extension, binary should use .gpg
  block:
    - name: somerepo | no apt key
      ansible.builtin.get_url:
        url: https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x36a1d7869245c8950f966e92d8576a8ba88d21e9
        dest: /etc/apt/keyrings/myrepo.asc
        checksum: sha256:bb42f0db45d46bab5f9ec619e1a47360b94c27142e57aa71f7050d08672309e0
    - name: somerepo | apt source
      ansible.builtin.apt_repository:
        repo: "deb [arch=amd64 signed-by=/etc/apt/keyrings/myrepo.asc] https://download.example.com/linux/ubuntu {{ ansible_distribution_release }} stable"
        state: present
- name: Add an apt key by id from a keyserver
  ansible.builtin.apt_key:
    keyserver: keyserver.ubuntu.com
    id: 36A1D7869245C8950F966E92D8576A8BA88D21E9
- name: Add an Apt signing key, uses whichever key is at the URL
  ansible.builtin.apt_key:
    url: https://ftp-master.debian.org/keys/archive-key-6.0.asc
    state: present
- name: Add an Apt signing key, will not download if present
  ansible.builtin.apt_key:
    id: 9FED2BCBDCD29CDF762678CBAED4B06F473041FA
    url: https://ftp-master.debian.org/keys/archive-key-6.0.asc
    state: present
- name: Remove a Apt specific signing key, leading 0x is valid
  ansible.builtin.apt_key:
    id: 0x9FED2BCBDCD29CDF762678CBAED4B06F473041FA
    state: absent
# Use armored file since utf-8 string is expected. Must be of "PGP PUBLIC KEY BLOCK" type.
- name: Add a key from a file on the Ansible server
  ansible.builtin.apt_key:
    data: "{{ lookup('ansible.builtin.file', 'apt.asc') }}"
    state: present
- name: Add an Apt signing key to a specific keyring file
  ansible.builtin.apt_key:
    id: 9FED2BCBDCD29CDF762678CBAED4B06F473041FA
    url: https://ftp-master.debian.org/keys/archive-key-6.0.asc
    keyring: /etc/apt/trusted.gpg.d/debian.gpg
- name: Add Apt signing key on remote server to keyring
  ansible.builtin.apt_key:
    id: 9FED2BCBDCD29CDF762678CBAED4B06F473041FA
    file: /tmp/apt.gpg
    state: present
返回值
常见返回值在此处有说明 此处,以下是此模块特有的字段
| 键 | 描述 | 
|---|---|
| 任何修改后 apt 密钥 ID 或指纹的列表 返回:如有更改 示例:  | |
| 任何修改前 apt 密钥 ID 或指纹的列表 返回:始终返回 示例:  | |
| 要导入的密钥的指纹 返回:始终返回 示例:  | |
| 来自源的密钥 ID 返回:始终返回 示例:  | |
| 计算出的密钥 ID,它应该与“id”相同,但可能不同 返回:始终返回 示例:  | |
| 计算出的短密钥 ID 返回:始终返回 示例:  | 
