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

Ansible Playbook copy模块执行报错及多证书文件备份需求咨询

报错原因排查
  • 参数不兼容错误:warn 是 shell、command 等执行命令类模块的专属参数,ansible.builtin.copy 模块本身无该参数配置项,你在copy任务下新增了args: warn: no 配置,直接触发了模块不支持参数的报错。
  • 返回值调用错误:copy 模块执行完成后返回的结果集不存在stdout_lines字段,该字段仅在调用执行Shell命令的模块时才会生成,你后续debug输出query1.stdout_lines 也会触发后续报错。
多文件备份+验证Playbook实现

以下为可直接运行的完整实现,支持批量备份多份证书、自动追加.old后缀,同时完成备份结果校验:

---
- name: 备份PostgreSQL服务器证书并验证结果
  hosts: all
  become: true
  become_user: postgres
  vars:
    # 按需修改为你实际需要备份的证书文件绝对路径列表,可自由增减
    cert_files:
      - /<替换为实际绝对路径>/Config/file.crt
      - /<替换为实际绝对路径>/Config/file.key
  tasks:
    # 批量备份证书,自动追加.old后缀
    - name: 备份证书文件为.old格式
      ansible.builtin.copy:
        remote_src: yes
        src: "{{ item }}"
        dest: "{{ item }}.old"
        # 如果不需要覆盖已存在的历史.old备份,删除下一行force配置即可
        force: yes
      loop: "{{ cert_files }}"

    # 执行文件列表查询验证备份结果
    - name: 校验证书备份结果
      shell: |
        hostname
        echo -e "\n==== 原始证书文件列表 ===="
        ls -l --time-style=long-iso {{ cert_files | join(' ') }}
        echo -e "\n==== 备份后.old后缀文件列表 ===="
        ls -l --time-style=long-iso {{ cert_files | map('regex_replace', '$', '.old') | list | join(' ') }}
      register: cert_check_result
      args:
        warn: no

    - name: 输出校验结果
      debug:
        msg: "{{ cert_check_result.stdout_lines }}"

执行命令保持原有逻辑即可:
ansible-playbook pg_ckCerts3.yml --ask-become-pass --limit <替换为实际服务器名>

内容的提问来源于stack exchange,提问作者K. Hilbert

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 07:36:05