My Ansible playbook失败,$USER和$HOME在远程服务器上设置不正确。
我在远程服务器上有一个名为lala
的用户。
大多数任务都是以root用户身份直接通过ssh:执行的
[all:vars]
ansible_user = root
但此任务应通过ssh
:以用户lala
的身份执行
- name: migrate
command: /home/lala/bin/manage.py migrate
remote_user: lala
这失败了。远程进程的uid来自lala
,但像$HOME$USER这样的环境变量仍然来自用户root
。
我想通过ssh直接连接到用户lala
。
如果我使用-vvvv
:,我可以清楚地看到这一点
<coffee-and-sugar.club> SSH: EXEC ssh -vvv ... -o 'User="root"' ...
如何通过ssh lala@remote-server
实现可靠连接?
我找到了一个解决方案。我不使用remote_user
,而是为任务设置变量ansible_user
,如下所示:
- name: migrate
command: /home/lala/bin/manage.py migrate
vars:
ansible_user: lala