【问题标题】:Ansible parsing issues when running fabric command运行结构命令时的 Ansible 解析问题
【发布时间】:2016-01-15 00:01:16
【问题描述】:

我正在尝试从本地机器上的 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 ansible


    【解决方案1】:

    您的问题只是缩进。 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 处于同一级别。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-21
      • 1970-01-01
      • 2013-12-09
      • 1970-01-01
      • 1970-01-01
      • 2014-10-23
      • 2020-02-25
      相关资源
      最近更新 更多