Vam*_*ker 2 curl ansible docker ansible-2.x gpg-signature
我正在尝试执行以下命令,这是 Docker 安装的一部分,但它被卡住了。
gpg
命令的部分被卡住了,如果我在管道之后删除,gpg
它就可以工作。
---
- hosts: all
become: yes
tasks:
- name: add docker GPG key
shell: "curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg"
Run Code Online (Sandbox Code Playgroud)
一般 Ansible 建议:如果您只是在 Ansible 的任务中提供所有命令行shell
,那么您就做错了。
\nAnsible 确实有现有的模块,旨在服务于 Ansible 目标根源的幂等性思想,这将大大简化您将尝试实现的所有任务。
话虽如此,您现在必须了解 Docker 手册中的特定行试图实现的目标。
\ncurl -fsSL https://download.docker.com/linux/ubuntu/gpg \\ \n| gpg --dearmor -o /etc/apt/keyrings/docker.gpg\n
Run Code Online (Sandbox Code Playgroud)\n此命令会将 Docker 的 GPG 密钥添加到节点上的受信任密钥环中,以便它可以验证您稍后将在任务中使用的包的真实性package
。
在 Debian 和 Ubuntu 的最新版本中,密钥可以按 \xe2\x80\x94 的意思传递,无需将其删除 \xe2\x80\x94,只要它在格式中使用并在选项中定义asc
即可signed-by
存储库的。
所以,这两个任务将
\nasc
格式为signed-by
选项请注意,这两项任务要求您从节点收集最少的事实集才能解析变量ansible_distribution_release
。
- get_url:\n url: https://download.docker.com/linux/ubuntu/gpg\n dest: /etc/apt/keyrings/docker.asc\n mode: \'0644\'\n\n- apt_repository:\n repo: >-\n deb\n [arch=amd64 signed-by=/etc/apt/keyrings/docker.asc]\n https://download.docker.com/linux/ubuntu\n {{ ansible_distribution_release }}\n stable\n
Run Code Online (Sandbox Code Playgroud)\n从版本 2.15 开始,有一个新模块deb822_repository
允许一次性完成所有操作 \xe2\x80\x94 添加 GPG 密钥,该密钥将与存储库本身一起对存储库进行签名。
请注意,这需要python3-debian
在目标主机上安装软件包
上述两项任务现在总结为:
\n- deb822_repository:\n name: docker\n types: deb\n uris: https://download.docker.com/linux/ubuntu\n suites: "{{ ansible_distribution_release }}"\n components: stable\n architectures: amd64\n signed_by: https://download.docker.com/linux/ubuntu/gpg\n
Run Code Online (Sandbox Code Playgroud)\n以前,这是模块的目的apt_key
,该模块仍然存在,但由于底层apt-key
命令已被弃用,因此仅保留用于向后兼容的目的。
使用该模块添加 apt 密钥的任务将是:
\n- name: add docker GPG key\n apt_key:\n url: https://download.docker.com/linux/ubuntu/gpg\n
Run Code Online (Sandbox Code Playgroud)\n
归档时间: |
|
查看次数: |
1350 次 |
最近记录: |