You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Ansible替换证书并修改证书文件名

解决方案

你可以利用Ansible内置的主机变量动态生成目标文件名,核心是用{{ inventory_hostname }}(或其他主机相关变量)获取目标主机名称,直接在复制或重命名步骤中拼接文件名。

方法一:复制时直接重命名(推荐)

如果还没完成复制,或者想一步到位覆盖并命名,用copy模块直接指定带主机名的目标路径:

- name: 复制并重命名证书到目标主机
  hosts: all
  tasks:
    - name: 复制证书文件(重命名为主机名-cert.pem)
      ansible.builtin.copy:
        src: /本地路径/原始证书.pem
        dest: /远程目标路径/{{ inventory_hostname }}-cert.pem
        mode: '0644'
        force: yes  # 强制覆盖已存在的文件

    - name: 复制密钥文件(重命名为主机名-key.pem)
      ansible.builtin.copy:
        src: /本地路径/原始密钥.pem
        dest: /远程目标路径/{{ inventory_hostname }}-key.pem
        mode: '0600'  # 密钥文件建议设置严格权限
        force: yes

方法二:已复制后重命名

如果已经把证书复制到远程主机,现在需要重命名,用command模块执行mv命令:

- name: 重命名已存在的证书文件
  hosts: all
  tasks:
    - name: 重命名证书
      ansible.builtin.command: mv /远程路径/旧证书名.pem /远程路径/{{ inventory_hostname }}-cert.pem
      args:
        creates: /远程路径/{{ inventory_hostname }}-cert.pem  # 避免重复执行重命名

    - name: 重命名密钥
      ansible.builtin.command: mv /远程路径/旧密钥名.pem /远程路径/{{ inventory_hostname }}-key.pem
      args:
        creates: /远程路径/{{ inventory_hostname }}-key.pem

变量选择说明

  • inventory_hostname:对应你Ansible inventory文件中定义的主机名(比如myserver.datacenter.com),最常用。
  • ansible_fqdn:目标主机的系统完全限定域名(需要Ansible收集facts,默认开启),如果inventory里是短名但你需要FQDN,用这个。
  • ansible_hostname:目标主机的短主机名,不带域名后缀。

内容的提问来源于stack exchange,提问作者Rick van Oosterhout

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 00:21:26