Yaml 运行fabric命令时的Ansible解析问题

Yaml 运行fabric命令时的Ansible解析问题,yaml,ansible,Yaml,Ansible,我正在尝试从本地计算机上的ansible运行以下结构命令: - name: Deploy api using fabric command: fab -R {{ fabric_deploy_env }} deploy:{{ fabric_deploy_app }},revision={{ fabric_deploy_revision }},restart={{ fabric_deploy_restart }} args: chdir: "{{ fabric_deploy_

我正在尝试从本地计算机上的ansible运行以下结构命令:

- name: Deploy api using fabric
  command: fab -R {{ fabric_deploy_env }} deploy:{{ fabric_deploy_app }},revision={{ fabric_deploy_revision }},restart={{ fabric_deploy_restart }}
    args:
      chdir: "{{ fabric_deploy_path }}"
  delegate_to: 127.0.0.1
  when: fabric_deploy
但是,我得到了以下错误:

ERROR: Syntax Error while loading YAML script, /var/lib/jenkins/infrastructure/provision/roles/rails/tasks/main.yml
Note: The error may actually appear before this position: line 42, column 9

  command: fab -R {{ fabric_deploy_env }} deploy:{{ fabric_deploy_app }},revision={{ fabric_deploy_revision }},restart={{ fabric_deploy_restart }}
    args:
        ^

我已经尝试了很多方法来解决这个问题,但似乎没有任何效果。我相信fabric命令中的=符号会导致ansible解析器出现问题,但似乎无法找到解决方法。

您的问题只是缩进。YAML键只能保存标量或关联数组

但是,您的定义尝试同时执行这两种操作,
command
将可执行命令作为字符串分配,但同时也具有属性
args

  command: fab -R {{ fabric_deploy_env }} deploy:{{ fabric_deploy_app }},revision={{ fabric_deploy_revision }},restart={{ fabric_deploy_restart }}
    args:
      chdir: "{{ fabric_deploy_path }}"
args
必须与
命令处于同一级别

  command: fab -R {{ fabric_deploy_env }} deploy:{{ fabric_deploy_app }},revision={{ fabric_deploy_revision }},restart={{ fabric_deploy_restart }}
  args:
    chdir: "{{ fabric_deploy_path }}"