RoboCup仿真3D正式比赛环境搭建——服务器架设

这里介绍NFS和NIS服务器的架设,当然是在文件服务器上架设。这两个服务并不是比赛系统所必须的,但有了这两个服务,可以非常方便的同步队伍Binaries,不用scp不停的拷贝,非常节约时间,也省事。

1. NFS服务器架设

首先安装服务端软件
yum install nfs-utils

这里我们假设整个网段为192.168.1.x,编辑/etc/exports文件
/home 192.168.1.0/24(rw)

启动服务
/etc/init.d/rpcbind start
/etc/init.d/nfs start
/etc/init.d/nfslock start
chkconfig rpcbind on
chkconfig nfs on
chkconfig nfslock on


这里要注意,正式比赛的时候,请把读写属性改成ro,即只读,不然可能会造成非常庞大的数据交换,导致网络崩溃!但比赛间隙的调试时间,可以改成rw,给与写权限。当修改权限后,不需要重启服务,执行下面命令即可。
exportfs -arv

2. NIS服务器架设

同样,先安装服务器端软件
yum install ypserv

设置域名,编辑/etc/sysconfig/network,在文件末尾添加如下内容。其中robocup3d为设定的域名
NISDOMAIN=robocup3d
YPSERV_ARGS="-p 1011"

编辑/etc/ypserv.conf,在末尾添加
* : * : * : none

编辑/etc/hosts,添加如下内容。其中这个IP为文件服务器IP,后面为设定的域名。
192.168.1.200 robocup3d

编辑/etc/sysconfig/yppasswdd,在末尾添加
YPPASSWDD_ARGS="--port 1012"

启动服务
/etc/init.d/ypserv start
/etc/init.d/yppasswdd start
chkconfig ypserv on
chkconfig yppasswdd on

然后要添加用户账号了,这里我写了一个脚本,用来建立账号。点这里下载。

#!/bin/bash

ARRAY=("fantasia" "nwpu" "kylinsky" "cit3d" "jmu" "yushan" "aua" "seuredsun" "taiji" "gstar" "buptrobot" "apollo3d" "dreamwing" "strive3d" "hs" "hfutengine" "nevermore" "nq" "af")

for((i=0;i<19;i++))
do
    pass=$(cat /dev/urandom|tr -dc "0-9"|fold -w 7|head -1)
    useradd -m -u $(($i+1001)) ${ARRAY[$i]}
    echo $pass | passwd –stdin ${ARRAY[$i]} > /dev/null
    mkdir -p /var/log/robocup/${ARRAY[$i]}/log
    ln -s /var/log/robocup/${ARRAY[$i]}/log /home/${ARRAY[$i]}/log
    chown -R ${ARRAY[$i]}:${ARRAY[$i]} /var/log/robocup/${ARRAY[$i]}

    echo
    echo "Username: ${ARRAY[$i]}"
    echo "Password: $pass"
    echo "Please use yppasswd to change your password."
done

这个脚本根据数组里的队伍名称,自动建立用户账号,并且随机分配一个密码并且打印出来。还建立了一个在/var下的符号链接,用于正是比赛时,球队程序的输出重定向用。因为正是比赛时,NFS是只读的,所以只能写在Client的机器中,而不同步到服务器上。

然后执行
/usr/lib64/yp/ypinit -m
这里可能会提示某某文件不存在,touch一下这个文件,然后再执行该命令。

3. 客户端配置

客户端需要在Client机器以及Monitor和Server上配置。
1. NIS客户端配置
先安装软件
yum install yp-tools
然后在终端里输入下面命令
setup
之后会进入一个文本形式的配置界面,选择“Authentication configuration”,然后选择“Use NIS”,之后填写NIS域名以及服务器IP。
这样NIS即配置完成,注销后即可用服务器上的账号登陆了。
2. AutoFS服务配置
开启了NIS后,可以在任意Client上用你自己的账号登陆,但登陆后,没有自己的home目录,这是因为没有挂载,即使NFS服务是开着的。这里使用AutoFS服务来自动挂载,避免手动挂载的麻烦。
安装软件
yum install autofs nfs-utils

编辑/etc/auto.master,添加
/home /etc/auto.home

然后编辑/etc/auto.home
* -rw,soft,bg 192.168.1.200:/home/&

启动服务
service autofs start
/etc/init.d/rpcbind start
/etc/init.d/nfslock start
chkconfig autofs on
chkconfig rpcbind on
chkconfig nfslock on

参考资料

第十三章、檔案伺服器之一:NFS 伺服器
第十四章、帳號控管: NIS 伺服器

RoboCup仿真3D正式比赛环境搭建系列

1.《系统需求
2.《操作系统安装配置
3.《仿真环境安装
4.《服务器架设》
5.《比赛系统使用
6.《其他细节

RoboCup , , , , , , ,

1 comment


  1. Pingback: RoboCup仿真3D正式比赛环境搭建——仿真环境安装 | Michael Base

Leave a Reply

Your email address will not be published. Required fields are marked *