通过为特定分支创建的 Ansible 任务,symlink
我发现它在创建的 中添加了空格和引号symlink
。
- name: "Symlink to git branch"
file:
src: "{{ repository }}/{{ application }}"
dest: "/path/to/my/{{ symlink_name }}"
state: link
vars:
symlink_name: >-
{% if git_branch == 'development' %}
my-development
{% elif git_branch == 'master' %}
newest
{% elif git_branch == 'hotfix' %}
my-hotfix
{% endif %}
其结果是:
root# ls -lha
' my-development ' -> /path/to/my/symlink
它基于development
分支。我尝试在不同的标志之前和之后添加symlink_name
,但不幸的是没有成功。
引号只是操作系统的一种方式,用来指示符号链接包含空格,它们不是链接的一部分。
但是,空格来自您的 Jinja 表达式,因为 Jinja 语句块引入的空格全部位于新行上。
请注意,您使用折叠的 YAML 语法 (
>-
) 会导致这种情况:它用空格替换新行!解决这个问题的一个简单方法是使用Jinja 的空格控制:
解决这个问题的另一种可能更紧凑的方法是创建一个包含分支及其等效符号链接的字典:
(您应该使用 β.εηοιτ.βε 的字典选项)
您也可以选择修剪字符串
请测试一下
给出