使用本地流浪汉VM,我想部署.war文件。运行以下简单的ansible-playbook,我卡住了。 ansible-master-playbook包含在Vagrantfile中,并在'vagrant provision'过程中运行。长话短说:下面的剧本正在运行。
---
- copy: src={{ ci files }}/app.war dest=/path/to/webapps/app.war
[...]
变量'files'继承自master-playbook。
- hosts: all
sudo: yes
remote_user: vagrant
vars:
ci_files: /local-user/ci
这是错误:
fatal: [default] => Failed to template src={{ files }}/opencms.war dest=/usr/local/tomcat/webapps/ mode=0755: template error while templating string: expected token 'end of print statement', got 'files'
在撰写此问题时找到答案,并提供以下解决方案。
答案 0 :(得分:2)
Ansible 变量可能不包含空格。修复参考解决了问题:
- copy: src={{ ci_files }}/app.war dest=/path/to/webapps/app.war
让我们理解Ansible的所作所为:
它试图解析字符串{{ ci files }}
。然而,第二个空格表示变量的结束已达到。因此,Ansible期望下一部分字符(标记)成为右括号,但得到files
。右括号是end of print statement
的标记。