我正在尝试从本地计算机上的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解析器出现问题,但似乎无法找到解决方法。
答案 0 :(得分:0)
你的问题只是简单。 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 }}"