如何移动centos用户';是homedir使用ansible吗?
我有一个CentOS集群,如何移动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用户的身份连接
/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。