首页 > 解决方案 > 错误!'copy' 不是 Play 的有效属性

问题描述

我正在尝试制作通过 ssh 连接到服务器并发送文件的 ansible playbook。

我的大部分谷歌搜索都没有产生具体的结果。

- 
  become: true
  hosts: all
  remote_user: artur
  tasks: ~
- 
  copy: 
    dest: /home/artur/grep_error.py
    group: UnixUsers
    mode: 420
    owner: artur
    src: /Users/artur/Desktop/sublime/projects/scripts/grep_error.py
  name: "example copying file with owner and permissions"

我希望将文件复制到 ssh 服务器。

标签: ansibleyaml

解决方案


  1. 花 Y 分钟学习 yaml。特别注意缩进和换行在语法上很重要的事实
  2. 安装yamlint并验证您的 yaml 文件。它将为您节省大量宝贵的时间
  3. 安装ansible-lint并再次验证您的文件。这一篇将介绍特定的 ansible 语法并注意良好的实践
  4. 阅读有关剧本的文档并确保您尊重语法(即了解您从上面的验证器中得到的错误)。

现在我给了你一些参考,这是你的剧本的更正

---
- name: My first play to copy files
  become: true
  hosts: all
  remote_user: artur

  tasks:

    - name: Example copying file with owner and permissions
      copy:
        src: /Users/artur/Desktop/sublime/projects/scripts/grep_error.py
        dest: /home/artur/grep_error.py
        owner: artur
        group: UnixUsers
        mode: 0420

    - name: I'm just a dummy task to show you a play can go on
      debug:
        msg: I'm a dummy task

推荐阅读