首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >既然不推荐apt键,我如何使用ansible剧本管理可信的.gpg.d中的密钥环文件?

既然不推荐apt键,我如何使用ansible剧本管理可信的.gpg.d中的密钥环文件?
EN

Stack Overflow用户
提问于 2022-03-23 10:06:54
回答 2查看 5.7K关注 0票数 6

在不推荐apt-key之前,我使用Ansible游戏簿在我的服务器中添加和更新密钥。目前,apt-key不再更新密钥。在很少的搜索中,我发现我现在需要使用gpg。但是,我有很多服务器,我不想手动对每个服务器执行此操作。有什么方法可以用gpg和Ansible来管理我的钥匙环吗?

下面是我的不可接受的任务,并使用了不推荐的apt-key

代码语言:javascript
复制
- 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,但它对我不起作用。如果一个键已经存在,但它已经过期了,它将不再更新它。

EN

回答 2

Stack Overflow用户

发布于 2022-06-08 15:23:53

简而言之,您需要将GPG键以现代格式放入一个默认不被搜索的单独文件夹中,并将您的存储库配置指向它。

有关独立文件夹的原因,请参见:https://stackoverflow.com/a/71384057/8962143

您可以通过file验证您是否有旧的ASCII GPG格式或较新的二进制GPG格式。

代码语言:javascript
复制
# 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_urlfile将现代格式的GPG键推送到系统上,然后像以前一样使用apt_repository添加回购,并添加指定键环。

代码语言:javascript
复制
- 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'
票数 7
EN

Stack Overflow用户

发布于 2022-09-21 19:16:46

为了对@geerlingguy关于使用.asc扩展的评论进行一些扩展,我最后添加了特格拉夫的存储库。注意influxdb.ascget_urlapt_repository任务中的使用。

代码语言:javascript
复制
- 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步骤。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71585303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档