搭建NIS+autofs+nfs企業環境
系統環境:centos7.4
搭建nis1和nis2,主從服務架構;搭建NFS文件共享服務器,利用autofs實現自動掛載,安全可靠。
服務器地址分配如下:
172.16.12.18 nis1
172.16.12.19 nis2
172.16.12.20 nfs
172.16.12.21 client
NIS服務需要以下軟件包:ypserv、rpcbind、ypbind、yp-tools
NFS服務需要以下軟件包:rpcbind、nfs-utils
Autofs服務需要以下軟件包:autofs
NFS安裝配置
1.安裝nfs-utils、rpcbind
#yum install nfs-utils rpcbind -y
2.設置共享目錄
#vim /etc/exports
/home 172.16.12.0/24(rw,sync,no_root_squash)
/app 172.16.12.0/24(rw,sync,no_root_squash)
共享目錄 允許訪問的網絡地址(訪問權限)
rw 讀寫
ro 只讀
sync 同步模式,內存數據實時寫入磁盤 速度很快但是會降低磁盤效率
async 非同步模式 能保證磁盤效率 但是如果服務器斷電,會造成數據丟失
no_root_squash 客戶端掛載NFS共享目錄后,root用戶不受約束,權限很大
root_squash 與上面選項相對,客戶端上的root用戶收到約束,被限定成某個普通用戶
all_squash 客戶端上所有用戶在使用NFS共享目錄時都被限定為一個普通用戶
anonuid/anongid 和上面幾個選項搭配使用,定義被限定用戶的uid和gid
3.啟動服務
#systemctl start rpcbind
#systemctl start nfs
#systemctl enable rpcbind
#systemctl enable nfs
4.查看共享目錄
#showmount -e 172.16.12.20


5.創建測試目錄(后邊需要用到)
#mkdir /app/{admin,atrenta,cadence,GridEngine,mentor,Other,source,synopsys,Xilinx,apache,CAD,env_setup,MathWorks,OA_app,SGE,springsoft,sysadmin} -pv
6.查看目錄


7.添加dns解析記錄
vim /etc/hosts
172.16.12.18 nis-master
172.16.12.19 nis-slave
172.16.12.20 nfs
172.16.12.21 client
搭建Autofs服務
分別在nis1和nis2服務上進行配置
1.安裝autofs
#yum install autofs -y
2.修改主配置文件
#vim /etc/auto.master
注釋掉所有信息,然后添加如下內容即可
/app /etc/auto.app //添加掛載記錄,指定掛載配置文件
/user /etc/auto.home //自定義user目錄掛載配置文件
/etc/auto.master 設置掛載的主配置文件
/etc/auto.misc 光盤自動掛載的配置文件
/etc/auto.net nfs自動掛載的配置文件)
3.創建掛載目錄的配置文件
#mkdir /{app,user}
#vim /etc/auto.home


掛載點 掛載選項 掛載設備
#vim /etc/auto.app


4.添加本地dns解析記錄
#vim /etc/hosts
172.16.12.18 nis-master
172.16.12.19 nis-slave
172.16.12.20 nfs
172.16.12.21 client
5.啟動autofs服務
#systemctl start autofs
#systemctl enable autofs
6.測試自動掛載功能



NIS服務的安裝和配置
NIS是一項目錄服務技術,用來集中控制幾個系統管理數據庫的網絡用品。
nis1的安裝和配置
1.安裝軟件包
#yum install ypserv ypbind yp-tools rpcbind -y
#vim /etc/hosts //添加解析如下記錄
172.16.12.18 nis-master
172.16.12.19 nfs-slave
172.16.12.20 nfs
172.16.12.21 client
2.設置域名
#nisdomainname nis
vim /etc/sysconfig/network
添加:NISDOMAIN=nis
3.配置ypserv.conf
vim /etc/ypserv.conf
末行添加:
dns:no //使用本地地址解析
127.0.0.1/255.255.255.0 : * : * none //允許本地訪問
172.16.12.0/255.255.252.0 : * : * none //允許指定網段訪問
* : * : * deny //拒絕其他訪問
4.啟動ypserv服務
systemctl start ypserv //nis主服務
systemctl start ypxfrd //nis 同步后台服務進程 如果啟動失敗,會造成主從同步失敗
systemctl start yppasswdd //nis用戶在線修改密碼,如果啟動失敗,用戶無法自行修改密碼
systemctl start rpcbind
systemctl enable ypserv
systemctl enable ypxfrd
systemctl enable yppasswdd
systemctl enable rpcbind
5.生成數據庫
/usr/lib64/yp/ypinit -m
輸入nis2,回車 (默認已經添加本地主機localhost,所以只需要添加從nis2即可)
按下:Ctrl+d,輸入:y 即可。
6.查看數據目錄
#ls /var/yp/


7.修改Makefile文件(這個非常重要)
#vim /var/yp/Makefile
NOPUSH=false (開啟推送模式)
(
如果在主server端增添賬號、更改密碼或者刪除賬號信息后,就需要重新制作數據庫
#make -C /var/yp
)
all: passwd group hosts rpc services netid protocols mail \
auto.master auto.home auto.app shadow networks (添加如下配置文件即可,如果有多余文件,請刪除,否則會提示你沒有該文件,當然你也可以創建一個與其文件名一樣的空文件,每次出錯請認真查看報錯信息,按照提示去一步一步修改)


添加如下內容:


如下圖,這個auto.app是我自己添加的,復制上邊的auto.home,然后粘貼,稍作修改一致即可。(你寫了多個auto.*的文件,如法炮制。)


(修改以上配置的好處就是,方便在客戶端登錄的時候,只要你客戶端加入nis域,並且啟動autofs功能,主端nis1的自動掛載目錄就會推送到nis的客戶端,不需要在客戶端繁瑣的掛載,非常實用。)
8.更新數據庫,重新啟動服務
#make -C /var/yp
#systemctl restart ypserv
#systemctl restart yppasswdd
#systemctl restart ypxfrd
(
為保證主從nis同步成功還需如下操作:
方法一:做主nis1到從nis2的ssh免密登錄; //有了此操作就可以保證同步了,無需查看方法二
方法二:在nis1上修改/var/yp/Makefile //在NOPUSH=true(關閉推送模式)下,首先還是需要做主到從的免密登錄,才能保證主nis1通過ssh免密登錄到從nis2,執行拉取nis數據庫成功。【建議還是使用方案一,簡單易操作】
#vim /var/yp/Makefile
從第110行后邊插入參數
ssh 從nis服務器IP "/usr/lib64/yp/ypinit -s 主服務器IP" //此命令其實是利用ssh免密登錄到nis2,然后拉取nis1的數據庫信息,與方法一正好相反,方法一是從主nis1將數據庫推送到從nis2。
)


9.ssh的免密碼登錄
【1】在nis1端生成密鑰
#ssh-keygen -t rsa
默認生成密鑰對的位置: /root/.ssh/
id_rsa 私鑰文件
id_rsa.pub 公鑰文件
【2】將公鑰上傳到nis2
#ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.16.12.19
工作原理:
將公鑰文件傳遞到服務器端,服務端用公鑰加密將請求發送客戶端,客戶端接收后用私鑰解密,即可完成關系信任。
1.將傳遞的文件改名為authorized_keys
2.修改文件的權限為600
【3】免密登錄
#ssh 172.16.12.19


nis2的安裝配置
1.安裝
#yum insyall ypserv ypbind yp-tools rpcbind
2.設置域名
#nisdomainname nis
#vim /etc/sysconfig/network
NISDOMAIN=nis
3.配置ypserv.conf
vim /etc/ypserv.conf
末行添加:
dns:no //使用本地地址解析
127.0.0.1/255.255.255.0 : * : * none //允許本地訪問
172.16.12.0/255.255.252.0 : * : * none //允許指定網段訪問
* : * : * deny //拒絕其他訪問
4.設置開機自啟動
systemctl start ypserv
systemctl start ypxfrd
systemctl start yppasswdd
systemctl enable ypxfrd
systemctl enable ypserv
systemctl enable yppasswdd
5.nis2服務器同步nis1數據庫信息
#/usr/lib64/yp/ypinit -s nis1
這里同樣也需要編輯/var/yp/Makefile的文件,和nis1配置過程一樣(同上的步驟七),之后再更新數據庫,執行命令:make -C /var/yp
Client配置
客戶端只需要安裝ypbind和yp-tools這兩個包
1.安裝ypbind、yp-tools、autofs
#yum install ypbind yp-tools -y
2.配置域和服務器
#setup,選擇第一個,然后回車


選擇第三個nis服務(按空格選擇),然后下一步


輸入域名,和服務器地址,多個地址用逗號隔開。


3.啟動ypbind服務
systemctl start ypbind
systemctl enable ypbind
systemctl start autofs
systemctl enable autofs
4.在nis1服務器上創建用於登錄測試系統用戶
(172.16.12.18)#useradd -d /user/wjh -s /bin/bash -m wjh
5.在nis1上更新數據信息(記得重啟ypserv服務)
(172.16.12.18)#make -C /var/yp/
#systemctl restart ypserv
6.測試nis服務是否正常(這個操作在客戶端執行)
#yptest (看到如下信息就證明成功了)


7.客戶端可以使用yppasswd來修改賬戶和密碼
#yppasswd wjh
#ypwhich (該命令主要測試NIS客戶端與服務器之間通信使用的是那些數據庫文件)
8.查看使用數據庫


9.用戶登錄
#su - lxy

