网格环境配置(二):配置NIS和NFS服务器

配置 NIS 服务

设置 NIS 服务端 作为一个 NIS服务器,需要安装 ypserv软件包 。直接使用安装光盘中的 ypserv-2.8-3
第一步:设置 ypserv 服务开机后自动启动
[root@vm1 root]# chkconfig ypserv on
[root@vm1 root]# chkconfig ypxfrd on
[root@vm1 root]# chkconfig yppasswdd on
也可以在 setup命令中设置。
第二步:指定 NIS 域名
[root@vm1 root]# nisdomainname grid1
为了重启后仍保持这个域名,修改 /etc/sysconfig/network文件,在其中加上 NISDOMAIN=grid1一行。
第三步:设定哪些主机可以使用哪些映射
修改 /etc/ypserv.conf文件,加上一行:
192.168.56.0/24 : * : * : none
其中 192.168.56.0 DHCP自动分配的 IP网段。
第四步:设定要导出哪些信息
修改 /var/yp/Makefile。这个文件中的每项设置都在注释中明白地讲解了。我的这个文件中的 all部分如下:
# If you don't want some of these maps built, feel free to comment
# them out from this list.


all: passwd group hosts rpc services netid protocols mail /
# netgrp shadow publickey networks ethers bootparams printcap /
# amd.home auto.master auto.home auto.local passwd.adjunct /
# timezone locale netmasks
使用默认的设置。
第五步:启动 ypserv
[root@vm1 root]# service ypserv start
Starting YP server services: [ OK ]
第六步:构建映射数据库
[root@vm1 root]# /usr/lib/yp/ypinit -m


At this point, we have to construct a list of the hosts which will run NIS
servers. vm1 is in the list of NIS server hosts. Please continue to add
the names for the other hosts, one per line. When you are done with the
list, type a <control D>.
next host to add: vm1
next host to add:
The current list of NIS servers looks like this:


vm1


Is this correct? [y/n: y] y
We need a few minutes to build the databases...
Building /var/yp/grid1/ypservers...
Running /var/yp/Makefile...
gmake[1]: Entering directory `/var/yp/grid1'
Updating passwd.byname...
Updating passwd.byuid...
Updating group.byname...
Updating group.bygid...
Updating hosts.byname...
Updating hosts.byaddr...
Updating rpc.byname...
Updating rpc.bynumber...
Updating services.byname...
Updating services.byservicename...
Updating netid.byname...
Updating protocols.bynumber...
Updating protocols.byname...
Updating mail.aliases...
gmake[1]: Leaving directory `/var/yp/grid1'


vm1 has been set up as a NIS master server.

Now you can run ypinit -s vm1 on all slave server.
第七步:测试服务是否正确启动
[root@vm1 root]# rpcinfo -p localhost
program vers proto port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100004 2 udp 679 ypserv
100004 1 udp 679 ypserv
100004 2 tcp 682 ypserv
100004 1 tcp 682 ypserv
[root@vm1 root]# rpcinfo -u vm1 ypserv
program 100004 version 1 ready and waiting
program 100004 version 2 ready and waiting
注:

  1. NIS NFS的运行都需要 RPC支持,可以搜索 NFS NIS的工作原理来学习。
  2. 据资料上的介绍 RPC技术的另一个好处是使得服务的实现者不用考虑太多底层的通信协议的细节,而只专注于服务的功能实现。
  3. ypserv安装后还有 ypxfrd服务和 yppasswdd服务,可以 man一下看看。 ypxfrd用来在 NIS的主服务器和从服务器之间传输信息。 Yppasswdd服务是密码更新守护进程。
  4. 服务器上的信息有变动后一定要在 NIS服务器上重新运行 ypinit构建数据库。

设置 NIS 客户端 作为 NIS客户端,需要安装 ypbind yp-tools 同样直接使用安装光盘中的安装包。
第一步:指定 NIS 域名
vm1上已经设置好,在 vm2 vm3上分别修改 /etc/sysconfig/network,加上 NISDOMAIN=grid1一行。
[root@vm2 root]# vim /etc/sysconfig/network
[root@vm2 root]# nisdomainname grid1
第二步:设定 NIS 服务器
/etc/yp.conf文件中指定 NIS服务器。在 vm1上: ypserver localhost ,在 vm2 vm3上: domain grid1 broadcast
第三步:设置 ypbind 开机自动启动
[root@vm1 root]# chkconfig ypbind on
vm2,vm3上进行同样的设置。
每四步:启动 ypbind
[root@vm2 root]# service ypbind start
Binding to the NIS domain: [ OK ]
Listening for an NIS domain server.
另外两台机器上同样。
第五步:测试客户端设置
[root@vm2 root]# ypwhich
vm1
[root@vm2 root]# rpcinfo -u vm1 ypserv
program 100004 version 1 ready and waiting
program 100004 version 2 ready and waiting
例如在 vm1上新建一个用户:
[root@vm1 root]# useradd jcwkyl
[root@vm1 root]# passwd jcwkyl
Changing password for user jcwkyl.
New password:
BAD PASSWORD: it is too simplistic/systematic
Retype new password:
passwd: all authentication tokens updated successfully.
重新构建数据库:
[root@vm1 root]# /usr/lib/yp/ypinit -m
vm2上:
[root@vm2 root]# ypcat passwd
jcwkyl:$1$Q0CyXfd3$r.cbifNU0/tbn53eqxv911:500:500::/home/jcwkyl:/bin/bash
[root@vm2 root]# ypcat group
jcwkyl:!:500:
vm3上:
[root@vm3 root]# yptest
Test 1: domainname
Configured domainname is "grid1"


Test 2: ypbind
Used NIS server: 192.168.56.101


Test 3: yp_match
WARNING: No such key in map (Map passwd.byname, key nobody)


Test 4: yp_first
jcwkyl jcwkyl:$1$Q0CyXfd3$r.cbifNU0/tbn53eqxv911:500:500::/home/jcwkyl:/bin/bash


Test 5: yp_next


Test 6: yp_master
vm1


Test 7: yp_order
1259269592


Test 8: yp_maplist
mail.aliases
protocols.bynumber
services.byservicename
netid.byname
services.byname
rpc.bynumber
rpc.byname
hosts.byaddr
hosts.byname
group.bygid
group.byname
passwd.byname
protocols.byname
ypservers
passwd.byuid


Test 9: yp_all
jcwkyl jcwkyl:$1$Q0CyXfd3$r.cbifNU0/tbn53eqxv911:500:500::/home/jcwkyl:/bin/bash
1 tests failed
至此, NIS服务设置成功。
注:

  1. 在客户端上需要修改 /etc/nsswitch.conf文件来指定当客户端查询某信息时优先向谁发起查询。比如在 /etc/nsswitch.conf中有 hosts : files nis dns,就表示进行主机名解析时,首先查询本地 /etc/hosts文件,如果没有查到则查询 nis服务器,最后查询 dns服务器。如果其中没有指定 nis,则尽管 NIS服务器导出了 hosts文件,客户端在进行主机名解析时仍然不会查询 NIS服务器。
  2. 我不太喜欢使用 yppasswd来修改用户密码,还是喜欢用 passwd改完以后再运行一次 /usr/lib/yp/ypinit -m命令重新构建一次数据库。要注意的是我的 NIS服务器上同时也运行着 NIS客户端,所以在使用 passwd修改用户密码时要先把 ypbind服务关掉,否则可能会出错。
  3. /etc/hosts文件如果配置不当,很可能会影响 NIS

配置 NFS 服务
接下来,配置 NFS服务, vm1作为 NFS服务器。在安装 SGE时, vm1 $HOME目录和 $SGE_ROOT被导出。
安装配置 NFS服务器,作为 NFS服务器,需要安装 nfs-utils NFS的配置极简单:
在服务器端,修改 /etc/exports ,在其中指定要导出的目录
/home 192.168.56.0/24 (rw,sync)
在客户端, mount 服务器导出的目录:
[root@vm2 root]# mount -t nfs vm1:/home /home
mount来查看已经 mount上的目录:
[root@vm2 root]# mount
/dev/hda2 on / type ext3 (rw)
none on /proc type proc (rw)
none on /dev/pts type devpts (rw,gid=5,mode=620)
usbdevfs on /proc/bus/usb type usbdevfs (rw)
/dev/hda1 on /boot type ext3 (rw)
none on /dev/shm type tmpfs (rw)
vm1:/home on /home type nfs (rw,addr=192.168.56.101)
这里只是个演示, NFS服务器的安全和性能设置不再探究。相关的命令有: showmount, exportfs
Exportfs -r可以重新导出所有在 /etc/exports中设定为导出的目录。这个命令的输出可以用来检查 /etc/exports文件是不是有什么不规范的地方,根据它的警告信息修改 /etc/exports

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值