Linux下配置nis+autofs实现集群内用户漫游
模拟的hpc环境需要用户在集群内漫游登录。
一,配置NIS服务器
此处mgmt为nis server,node1-node4为nis client,并确保 /etc/hostname
的名称和/etc/hosts
映射的名称一致
1,配置selinux
在集群内所有机器上执行下面命令然后重启。
sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config
确保selinux 的状态为disabled
2,关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
3,安装nis服务端软件
yum -y install ypserv rpcbind
4,配置nis域名
nisdomainname mgmt
echo "nisdomainname mgmt" >> /etc/rc.local
chmod +x /etc/rc.d/rc.local
echo "NISDOMAIN=mgmt" >> /etc/sysconfig/network
5,配置nis端口
echo 'YPSERV_ARGS="-p 1011"' >> /etc/sysconfig/network
echo 'YPPASSWDD_ARGS="--port 1012""' >> /etc/sysconfig/network
重启ypserv服务并加入开机自启
systemctl restart rpcbind
systemctl restart ypserv
systemctl restart yppasswdd
systemctl enable rpcbind
systemctl enable ypserv
systemctl enable yppasswdd
6,查看ypserv服务
rpcinfo -p localhost
rpcinfo -u localhost ypserv
出现以上信息,则服务端配置正常。
7,初始化ypserv数据库
/usr/lib64/yp/ypinit -m
输入ctrl+d
,然后输入y
8,新建用户
新建4个用户
adduser user1
adduser user2
adduser user3
adduser user4
修改用户的密码
echo user1 | passwd --stdin user1
echo user2 | passwd --stdin user2
echo user3 | passwd --stdin user3
echo user4 | passwd --stdin user4
如果需要实现普通账户在其他主机免密登录,则需要如下操作:
登录普通账户,
ssh-keygen -t rsa
cd /home/user1/.ssh/
cat id_rsa.pub >> authorized_keys
chmod 600 authorized_keys
8,更新NIS账户和资料库
make -C /var/yp
每次新建账号都需要执行此命令
二,配置nis客户端
1,安装nis客户端软件
yum install -y rpcbind yp-tools ypbind
2,设置nis域名
nisdomainname mgmt
echo "nisdomainname mgmt" >> /etc/rc.local
chmod +x /etc/rc.d/rc.local
echo "NISDOMAIN=mgmt" >> /etc/sysconfig/network
3,修改/etc/nsswitch.conf
sed -i '/passwd:/s/sss/nis/' /etc/nsswitch.conf
sed -i '/shadow:/s/sss/nis/' /etc/nsswitch.conf
sed -i '/group:/s/sss/nis/' /etc/nsswitch.conf
sed -i '/hosts:/s/dns myhostname/nis dns/' /etc/nsswitch.conf
4,配置nis认证
输入setup
选择 Authentication configuration
,然后回车
选择Use NIS
,Use Shadow Passwords
,Local authorization is sufficient
,然后选择Next
配置domain和server,选择OK,然后退出即可。
5,启动nis服务并加入开机自启
systemctl restart rpcbind
systemctl restart ypbind
systemctl enable rpcbind
systemctl enable ypbind
6,测试
输入yptest
出现了我们在mgmt管理节点新建的4个用户,表示nis配置正常。
7,测试登录
su - user1
正常登录,但是提示warning: cannot change directory to /home/user1: No such file or directory
,未在node1上找到user1的home 家目录,user1的home在mgmt的/home下,如何在登录user1的的时候,home也能正常使用呢。
有两种方法:
a,把mgmt 的/home 共享,然后在node1-node4上永久挂载
b,把mgmt 的/home共享,在用户登录的时候自动挂载用户的目录
显然,第二种方法更高效,使用的时候会自动挂载,一定时间范围内不用的话,会自动卸载,下次使用再次自动挂载。
三,安装配置autofs
1,安装autofs
yum install -y autofs
2,编辑/etc/autofs配置文件
vi /etc/auto.master
添加以下一行
/home /etc/auto.nfs --timeout=60
autofs 的配置文件有三部分
第一部分/home
表示挂载点为/home
,第二部分指定该挂接点的配置文件为/etc/auto.nfs
,第三部分指定所挂接的文件系统在空闲60秒后自动被卸载。
vi /etc/auto.nfs
编辑如下
* -fstype=nfs mgmt:/home/&
*是什么,&就是什么,后向引用,比如,把user1的家目录/user1
挂载到/home/user1
下
3,开启autofs服务并加入开机自启
systemctl start autofs
systemctl enable autofs
4,测试用户登录
测试之前先df -h
以下
su - user1
df -h
su - user2
df -h
自动挂载了user2的目录。
登录四个用户以后
可以看到自动挂载了4个用户的目录,60秒内,账户不活动的话,会自动卸载。