如何移动centos用户';是homedir使用ansible吗?

如何移动centos用户';是homedir使用ansible吗?,ansible,centos,Ansible,Centos,我有一个CentOS集群,/home将通过nfs挂载。所以我认为centos用户的家应该搬到本地的地方,可能是/var/lib/centos或其他什么地方。但是给定的centos是ansible\u用户我不能使用: 主机:集群 变成:是的 任务: -ansible.builtin.user: 姓名:centos 搬回家:是的 主页:“/var/lib/centos” 不出所料,它会以失败告终 usermod:user centos当前由进程45028使用 如果您是以centos用户的身份连接

我有一个CentOS集群,
/home
将通过nfs挂载。所以我认为
centos
用户的家应该搬到本地的地方,可能是
/var/lib/centos
或其他什么地方。但是给定的
centos
ansible\u用户
我不能使用:

主机:集群
变成:是的
任务:
-ansible.builtin.user:
姓名:centos
搬回家:是的
主页:“/var/lib/centos”
不出所料,它会以失败告终

usermod:user centos当前由进程45028使用

如果您是以
centos
用户的身份连接,
用户
模块将无法实现这一点,是否有任何半整洁的解决方法或更好的想法?

我认为您无法实现这一点。但是,如果您自己处理各个步骤,则应该可以:

---
- hosts: centos
  gather_facts: false
  become: true
  tasks:
    - command: rsync -a /home/centos/ /var/lib/centos/
    - command: sed -i 's,/home/centos,/var/lib/centos,' /etc/passwd
      args:
        warn: false
    - meta: reset_connection
    - command: rm -rf /home/centos
      args:
        warn: false
这将重新定位主目录,更新
/etc/passwd
,然后删除旧的主目录。其中的
reset\u连接
用于强制建立新的ssh连接:如果没有这个连接,Ansible在删除主目录时会不高兴


实际上,您可能希望在上面的剧本中添加一些逻辑,使其具有幂等性。

我不认为这是有效的-Been可以是“yes”(我应该说,这是我运行时使用的),您可以设置“Been_user”,但默认值是“root”。我认为问题在于它只是在运行
sudo
,所以您仍然在登录centos。