如何使用Ansible将本地容器镜像仓库的SSL证书复制到Docker宿主机
你使用community.crypto.get_certificate模块获取到的证书返回结果中,已经包含标准PEM格式的证书内容,存放在cert.pem属性中,无需额外调用格式转换模块,直接通过Ansible内置copy模块写入目标文件即可实现需求。
完整任务示例如下:
# 前置任务:确保Docker对应镜像仓库的证书目录存在 - name: 确保Docker证书目录存在 file: path: /etc/docker/certs.d/{{ registry_url }} state: directory mode: '0755' owner: root group: root become: yes # 你已有的获取证书任务 - name: 从镜像仓库获取证书 community.crypto.get_certificate: host: "{{ registry_url }}" port: "{{ registry_port }}" delegate_to: localhost become: no register: cert # 写入PEM格式证书文件 - name: 写入证书到目标路径 copy: content: "{{ cert.pem }}" dest: /etc/docker/certs.d/{{ registry_url }}/ca.crt mode: '0644' owner: root group: root become: yes
如果你的场景需要在证书文件中额外包含文本格式的证书详情(对应openssl命令中-text参数的输出),可以额外调用community.crypto.x509_certificate模块读取PEM内容生成文本说明后拼接写入即可。常规Docker私有镜像仓库的证书校验仅需要纯PEM格式内容,上述配置已完全满足需求。
内容的提问来源于stack exchange,提问作者sve_wo
相关产品推荐
相关产品推荐

