2016-01-15 42 views
0

我試圖從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_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命令中的=符號導致了可靠的解析器問題,但似乎無法找出解決方法。

回答

0

您的問題只是縮進。 YAML鍵只能包含標量或關聯數組。

你的定義雖然試圖一舉兩得,具有可執行命令,分配一個字符串,但也具有財產argscommand

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 }}"