Ansible中$HOME环境变量时而生效时而失效的问题咨询
Ansible中$HOME环境变量时而生效时而失效的问题咨询
大家好,我最近在使用Ansible时碰到了一个挺奇怪的问题,想跟各位请教下:
我写了一段复制脚本的Playbook,代码如下:
- name: "copy some script" become: yes become_user: "{{ tomcat_user }}" ansible.builtin.copy: src: myscript.sh dest: $HOME/
这段代码有时候能正常工作,把脚本复制到目标用户的家目录,但有时候在部分服务器上完全没反应——既不报错,脚本也没复制过去,就好像$HOME变量没正确识别一样。
但是当我把dest路径改成绝对路径之后,每次执行都能正常完成复制:
- name: "copy some script" become: yes become_user: "{{ tomcat_user }}" ansible.builtin.copy: src: myscript.sh dest: /home/{{ tomcat_user }}/
为了排查问题,我加了一段调试任务:
- name: "display debug info about $HOME" become: yes become_user: "{{ tomcat_user }}" ansible.builtin.debug: msg: "{{ lookup('ansible.builtin.env', 'HOME') }}"
结果返回的是/home/ansible,可我不确定这个结果是不是已经切换到become_user的环境下的——因为我明明已经切换到tomcat_user了,按道理HOME应该是这个用户的家目录才对,实在搞不懂哪里出问题了...
备注:内容来源于stack exchange,提问作者Nico
相关产品推荐
相关产品推荐

