centos下网络服务器安装

来源:互联网 发布:软件研发合同 编辑:程序博客网 时间:2024/05/16 18:04

一、实现过程


客户端通过网卡PXE启动-->连接到DHCP服务器-->获得IP地址-->客户端从TFTP服务器下载pxelinux.0,根据配置文件(default)下载指定的vmlinuz,initrd-->启动系统内核,加载初始化镜像文件(加载参数是否有ks)-->安装初始化完成-->到指定的位置(NFS|FTP|HTTP服务器上)下载软件包进行安装。

服务器端根据不同的设置,可实现RHEL的手动或自动安装,配置救援模式。还可用于同时安装其他版本的LINUX,如OPEN SUSE LINUX,UBUNTU,Fedora,CentOS等,服务器端配置略有不同。

这里测试的环境是在CentOS6.0上面搭建服务,PXE网络启动安装RHEL6.0的系统。本文比较了在RHEL5.x(适用于CentOS5.x)环境中搭建PXE无人职守安装服务器的差异,并进行了注解。

注:对于RHEL5.x(适用于CentOS5.x)以下称“5的版本”

二、配置步骤


1、最小化安装配置CentOS6.0系统;
2、安装配置TFTP;3、安装配置DHCP;
4、安装配置NFS或HTTP,FTP(ubuntu的安装源必须放在HTTP服务器下);
5、要实现自动安装,需配置KickStart;
6、要实现自动分配主机名,需要配置DNS。

三、具体实现


第一步:配置服务器静态IP。


CentOS6.0默认使用NetworkManager管理网络连接,这是一个Gnome环境的网络管理工具。最小化安装的系统并不会安装NetworkManager服务程序,所以在命令行中对ifcfg-eth0做如下修改,并重启网络服务。

[root@365linux ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE="eth0" HWADDR="00:0C:29:AD:FE:AC" NM_CONTROLLED="no" ONBOOT="yes" BOOTPROTO="static" IPADDR="192.168.166.200" NETMASK="255.255.255.0" GATEWAY="192.168.166.254"    [root@365linux ~]# service network restart

第二歩:安装所需的服务和软件包,通过 YUM 和RPM的安装方式都可以,这里以YUM为例。


1、安装tftp服务器端
2、安装dhcp服务器
3、安装nfs服务器
4、安装syslinux

5、安装网络引导目录相关文件system-config-netboot(可选,但装了方便配置很多。经测试RHEL6包括CentOS6已经移除了system-config-netboot软件包,红帽建议使用Cobbler和Red Hat Satellite,当然后者是要付费的。)

安装使用的命令如下:

[root@365linux ~]# yum install -y tftp-server [root@365linux ~]# yum install -y dhcp [root@365linux ~]# yum install -y nfs-utils rpcbind    //注:rpcbind是端口地图服务,在5的版本里面被称作portmap [root@365linux ~]# yum install -y syslinux

第三歩:配置相关的服务


——————DHCP的配置————————

[root@365linux ~]# cat /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample  /etc/dhcp/dhcpd.conf    [root@365linux ~]# vim /etc/dhcp/dhcpd.conf option domain-name "365linux.com";     //搜索域; option domain-name-servers 192.168.166.200, 202.96.128.86;   //指定DNS服务器地址; default-lease-time 600;              //租约时间; max-lease-time 7200; log-facility local7;             //日志方式;  subnet 192.168.166.0 netmask 255.255.255.0 {         //网段,要与dhcpd监听的网卡处在同一网段;   range dynamic-bootp 192.168.166.1 192.168.166.253;    //分配IP地址范围;   option routers 192.168.166.254;     //指定客户端路由;   filename "linux-install/pxelinux.0";    //pxe启动引导文件,放置在tftp的根目录下,使用相对路径;   server-name "192.168.166.200";       //网络引导服务器的IP,也可以使用next-server。 }

——————TFTP的配置————————

[root@365linux ~]# vim /etc/xinetd.d/tftp  disable                 = no   //修改yes为no,xinetd超级守护进程启动时即启动被托管的tftp服务器。

注:值得一提的是,在5的版本中,tftp服务器的根目录为/tftpboot,而在6的版本中为/var/lib/tftpboot/。

——————NFS的配置————————

[root@365linux ~]# mkdir -p /systemiso/rhel6 [root@365linux ~]# vim /etc/exports /systemiso/rhel6 *(ro,sync)

NFS 共享目录,将要安装的系统ISO镜像放在此目录下。所有网段内的主机只读访问,光盘镜像就放到这里来,NFS方式在局域网内最方便速度最快,而且不用将系统ISO解开。

注意:如果是RHEL6(CentOS6)的版本,即使不解开ISO,也需要将镜像中的images目录提取出来放到NFS镜像目录。

第四歩:创建TFTP目录下引导文件


在5的版本中,如果安装了system-config-netboot,那么在/tftpboot的目录下自动生成一个linux-install文件夹,我们将所有的文件统一放到这个目录下面,以便需要提供多个系统安装时方便管理。

在RHEL6版本里没有该软件包,我们只能手动一步步建立需要的目录跟文件了。

[root@365linux ~]# mkdir /var/lib/tftpboot/linux-install/

创建PXE工作的根目录,在DHCP服务器中定义过,保持目录名一致。

[root@365linux ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/linux-install/

注:5版本里面路径是/usr/lib/syslinux/pxelinux.0
复制PXE网络引导程序到工作目录。该程序有syslinux软件包提供,理论上光盘中的isolinux/isolinux.bin也可以。

[root@365linux ~]# mount -o loop /dev/cdrom /mnt

挂载光盘到系统目录,我们需要几个系统安装引导的文件。

[root@365linux ~]# mkdir /var/lib/tftpboot/linux-install/pxelinux.cfg [root@365linux ~]# cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/linux-install/pxelinux.cfg/default

从光盘中复制启动引导配置菜单到工作目录的下的pxelinux.cfg目录下。稍后根据要引导安装的系统修改菜单的内容。

[root@365linux ~]# cp /mnt/isolinux/boot.msg /var/lib/tftpboot/linux-install/pxelinux.cfg/

一个字符终端界面的背景图,可以写一些提示上去。5版本主要靠这个文件实现都系统引导的提示。

[root@365linux ~]# cp /mnt/isolinux/vesamenu.c32  /var/lib/tftpboot/linux-install/pxelinux.cfg/

如果你想使用RHEL6版本支持的的图形菜单的话,需要这个文件。

[root@365linux ~]# cp /root/gdlc_splash.jpg /var/lib/tftpboot/linux-install/pxelinux.cfg/

为启动菜单创建一个背景图,我这里是定制的,大小为640×480像素的jpg图片,你可以使用默认的。

第五歩:提取准备安装的系统的安装引导内核文件


[root@365linux ~]# mkdir /var/lib/tftpboot/linux-install/rhel6 [root@365linux ~]# umount /mnt [root@365linux ~]# mount -o loop /systemiso/rhel6/rhel-server-6.0-i386-dvd.iso  /mnt [root@365linux mnt]# cd /mnt/images/pxeboot/ [root@365linux isolinux]# cp vmlinuz initrd.img /var/lib/tftpboot/linux-install/rhel6/

从RHEL6的光盘中提取内核vmlinuz和驱动镜像initrd.img到安装工作目录下的RHEL6子目录。

第六步:针对性的修改DEFAULT文件,形成菜单。


[root@365linux ~]# vim /var/lib/tftpboot/linux-install/pxelinux.cfg/default default pxelinux.cfg/vesamenu.c32    //默认使用图形菜单,注意这个文件的相对路径; #prompt 1   //不使用图形菜单,而是用boot.msg定义的菜单时,要启用该项; timeout 600 //等待时间60#display pxelinux.cfg/boot.msg  //文本背景模式,我注释掉了; menu background pxelinux.cfg/gdlc_splash.jpg  //图形背景模式; menu title Welcome to gdlc installation system!  //菜单标题; menu color border 0 #ffffffff #00000000  //颜色定义; menu color sel 7 #ffffffff #ff000000 menu color title 0 #ffffffff #00000000 menu color tabmsg 0 #ffffffff #00000000 menu color unsel 0 #ffffffff #00000000 menu color hotsel 0 #ff000000 #ffffffff menu color hotkey 7 #ffffffff #ff000000 menu color scrollbar 0 #ffffffff #00000000 label rhel6  //菜单选项,这里有两个,安装RHEL6和从本地启动。     menu label ^Install or upgrade RHEL6 X86     kernel rhel6/vmlinuz     append initrd=rhel6/initrd.img label local     menu label Boot from ^local drive     menu default    //60秒后默认加载的选项。    localboot 0xffff   //启动本地系统。

第七步:启动所有服务


[root@365linux ~]# service dhcpd restart [root@365linux ~]# service xinetd restart [root@365linux ~]# /etc/init.d/rpcbind restart [root@365linux ~]# /etc/init.d/nfs restart
[root@365linux ~]# chkconfig dhcpd on [root@365linux ~]# chkconfig xinetd on [root@365linux ~]# chkconfig rpcbind on [root@365linux ~]# chkconfig nfs on

再验证共享目录:
[plain] view plaincopy
[root@xenserver1-NEW ~]# showmount -e 127.0.0.1  
mount clntudp_create: RPC: Program not registered  


[root@xenserver1-NEW ~]# showmount -e 192.168.1.233  
Export list for 192.168.1.233:  
/newvol/vm  192.168.1.233,192.168.1.232  
/newvol/iso 192.168.1.0/24  
[root@xenserver1-NEW ~]#  

可以了!

现在从 xenserver2测试一下nfs连接。注意,测试的客户机也必须启动pormap服务,否则会收到mount.nfs: Input/output error,默认是启动的。

[root@xenserver2 ~]# mkdir /mnt/nfsiso  
[root@xenserver2 ~]# mount -t nfs 192.168.1.233:/newvol/iso /mnt/nfsiso  


测试了一下,/mnt/nfsiso是只读的,/mnt/nfsvm是读写的。

从客户机卸载已挂载的nfs共享:
[plain] view plaincopy
[root@xenserver2 ~]# umount /mnt/nfsiso  

再重启服务器一次吧,重启后测试一切正常。

至此,XenServer NFS安装完成了。

重新将xenserver1 加入到资源池中,为资源池指定NFS ISO library(192.168.1.233:/newvol/iso), NFS virtual disk storage(192.168.1.233:/newvol/vm /mnt/nfsvm),并且成功把xenserver2上的虚拟机移动到NFS virtual disk storage 中。

========================================================
排错过程中,找到一个办法是用nmap验证端口状态:
[plain] view plaincopy
[root@xenserver ]# yum install nmap  
[root@xenserver ]#  

用nmap验证端口状态:
[plain] view plaincopy
[root@xenserver1-NEW ~]# nmap 192.168.1.233  
 
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2011-12-20 15:48 CST  
Interesting ports on 192.168.1.233:  
Not shown: 1673 closed ports  
PORT     STATE SERVICE  
22/tcp   open  ssh  
80/tcp   open  http  
111/tcp  open  rpcbind  
443/tcp  open  https  
600/tcp  open  ipcserver  
690/tcp  open  unknown  
2049/tcp open  nfs  
 
Nmap finished: 1 IP address (1 host up) scanned in 1.284 seconds  
[root@xenserver1-NEW ~]#  
有111/tcp  open  rpcbind,就说明portmap可以对外服务了,而更改/etc/sysconfig/portmap之前,是没有111/tcp  open  rpcbind这条的。


四、客户机网络引导安装RHEL6

安装时选择nfs时有问题,可以http方式安装;
yum更新也可以从http处更新
原创粉丝点击