You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 15:13:11