在不推荐apt-key之前,我使用Ansible游戏簿在我的服务器中添加和更新密钥。目前,apt-key不再更新密钥。在很少的搜索中,我发现我现在需要使用gpg。但是,我有很多服务器,我不想手动对每个服务器执行此操作。有什么方法可以用gpg和Ansible来管理我的钥匙环吗?
下面是我的不可接受的任务,并使用了不推荐的apt-key
- apt_key:
url: "https://packages.treasuredata.com/GPG-KEY-td-agent"
state: present
- apt_repository:
repo: "deb http://packages.treasuredata.com/3/ubuntu/{{ ansible_distribution_release }}/ {{ ansible_distribution_release }} contrib"
state: present
filename: "treasure-data" # Name of the pre-compiled fluentd-agent我试过apt-key update,但它对我不起作用。如果一个键已经存在,但它已经过期了,它将不再更新它。
发布于 2022-06-08 15:23:53
简而言之,您需要将GPG键以现代格式放入一个默认不被搜索的单独文件夹中,并将您的存储库配置指向它。
有关独立文件夹的原因,请参见:https://stackoverflow.com/a/71384057/8962143
您可以通过file验证您是否有旧的ASCII GPG格式或较新的二进制GPG格式。
# file elastic-old.gpg
elastic-old.gpg: PGP public key block Public-Key (old)
# file elastic.gpg
elastic.gpg: PGP/GPG key public ring (v4) created Mon Sep 16 17:07:54 2013 RSA (Encrypt or Sign) 2048 bits MPI=0xd70ed6cd267c5b3e...如果您的密钥是旧格式,您将需要解除它通过gpg --dearmor elastic.gpg进入新的二进制格式。
在Ubuntu22.04上,有一个未预加载的文件夹-- /etc/apt/keyrings --或者您可以创建自己的目录并使用它。
对于Ansible部分,您可以使用get_url或file将现代格式的GPG键推送到系统上,然后像以前一样使用apt_repository添加回购,并添加指定键环。
- name: Add Example GPG key
ansible.builtin.get_url:
url: https://example.com/example.gpg
dest: /etc/apt/keyrings/example.asc
mode: '0644'
force: true
- name: Add Example repo
ansible.builtin.apt_repository:
filename: example-repo
repo: 'deb [signed-by=/etc/apt/keyrings/example.gpg] https://example.com/packages/8.x/apt stable main'发布于 2022-09-21 19:16:46
为了对@geerlingguy关于使用.asc扩展的评论进行一些扩展,我最后添加了特格拉夫的存储库。注意influxdb.asc在get_url和apt_repository任务中的使用。
- name: Install InfluxDB key
get_url:
url: https://repos.influxdata.com/influxdb.key
dest: /etc/apt/trusted.gpg.d/influxdb.asc
- name: Add InfluxDB repository
apt_repository:
repo: "deb [signed-by=/etc/apt/trusted.gpg.d/influxdb.asc] https://repos.influxdata.com/debian stable main"
state: present
update_cache: yes
- name: Install telegraf
package:
name: telegraf
state: present您可以使用此方法完全绕过gpg --dearmor步骤。
https://stackoverflow.com/questions/71585303
复制相似问题