我正在做以下事情:
tasks:
- name: Output env vars
shell: echo $PATH $ANDROID_HOME > path.txt
environment:
ANDROID_HOME: "/home/{{ deploy_user }}/android-sdk-linux"
PATH: "{{ ansible_env.ANDROID_HOME }} /tools:/platform-tools:{{ ansible_env.PATH }}"
服务器上的输出是:
$ less path.txt
{{ ansible_env.ANDROID_HOME }}/tools:/platform-tools:{{ ansible_env.PATH }} /home/azureuser/android-sdk-linux}}
似乎字符串没有插值。
与任务完全相同的剧本:
tasks:
- name: Output $PATH
shell: echo $PATH $ANDROID_HOME > path.txt
environment:
ANDROID_HOME: "/home/{{ deploy_user }}/android-sdk-linux"
PATH: "/tools:/platform-tools:{{ ansible_env.PATH }}"
给出
$ less path.txt
/tools:/platform-tools:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games /home/azureuser/android-sdk-linux
这就是我的预期。
答案 0 :(得分:4)
在你的情况下你不能使用未定义的变量
路径:" {{ansible_env.ANDROID_HOME}} / tools:/ platform-tools:{{ansible_env.PATH}}"
我想你没有" ANDROID_HOME"远程节点上的变量,因此不解释所有行。
您需要替换" {{ansible_env.ANDROID_HOME}}" by" {{ANDROID_HOME}}"或使用其他逻辑。