首页 > 解决方案 > 在 Ansible Playbook 中获取复制任务错误

问题描述

我正在尝试将远程服务器上的文件复制到相同的文件名,并附加“.old” - 所以 file.crt 将有一个名为 file.crt.old 的副本。

我有一本包含以下陈述的剧本:

---
- name: Copy current certificate files to 'old' for the PostgreSQL servers
  hosts: all
  become: true
  become_user: postgres
  tasks:
    - name: Copy file
      ansible.builtin.copy:
        remote_src: yes
        src: /<abs path>/Config/file.crt
        dest: /<abs path>/Config/file/server.crt.old

      register: query1
      args:
        warn: no

    - debug: msg="{{ query1.stdout_lines }}"

我使用以下命令执行剧本:

ansible-playbook pg_ckCerts3.yml --ask-become-pass --limit <server name> > test.txt

我不断收到以下错误:

TASK [Copy file] *****************************************************************************************************
fatal: [server name]: FAILED! => {"changed": false, "msg": "Unsupported parameters for (copy) module: warn Supported parameters include: _original_basename, attributes, backup, checksum, content, delimiter, dest, directory_mode, follow, force, group, local_follow, mode, owner, regexp, remote_src, selevel, serole, setype, seuser, src, unsafe_writes, validate"}

谁能告诉我我的剧本有什么问题?我已经尝试了十几种不同的方式......在文件名周围加上引号,没有,remote_src 是或真,复制和 ansible.builtin.copy,remote_src 首先或最后指定。无论如何,我总是遇到同样的错误。

一旦我让它工作,我实际上想要复制多个文件 - file.crt 和 file.key 文件然后列出要验证的文件,所以如果有人也可以提供帮助,那也将是非常重要的赞赏。

我通常使用以下代码列出文件,但我似乎一次只能在剧本中执行一项任务:

...
  tasks:
    - name: Get hostname, list current certificate files
      shell: |
        hostname
        echo -e "\nCurrent cert files:"
        ls -l --time-style=long-iso /var/lib/pgsql/*/*/<filename>*

      register: query1
      args:
        warn: no

    - debug: msg="{{ query1.stdout_lines }}"

谢谢,卡琳

标签: ansible

解决方案


Ansible 告诉您这warn不是copy模块支持的参数。

请尝试删除它:

---
- name: Copy current certificate files to 'old' for the PostgreSQL servers
  hosts: all
  become: true
  become_user: postgres
  tasks:
    - name: Copy file
      ansible.builtin.copy:
        remote_src: yes
        src: /<abs path>/Config/file.crt
        dest: /<abs path>/Config/file/server.crt.old

推荐阅读