PXE网络无人值守装机

PXE网络无人值守装机

  1. 项目目标:PXE实现局域网络中裸机自动安装Linux操作系统。


  2. 项目要求:

  1. 在局域网192.168.11.0/24 内部署一台 PXE 装机服务器(CentOS 6.5系统)


  2. 提供带图片背景的PXE选择菜单,支持为客户机裸机装配64位的CentOS 6.5RHEL 5.9 操作系统:

  1. 倒计时30秒,若未选择则默认安装RHEL 5.9系统(kickstart自动应答)


  2. 添加进RHEL5rescue救援模式的菜单项


  3. 从本地硬盘启动的菜单项

  1. 客户机装配过程实现全自动应答(kickstart 无人值守),并且为装好的客户机做如下调整:

  1. 自动配置好yum 仓库、主机名(stationX.tarena.com)、IP地址


  2. 添加一个名为myadm 的管理员用户(具有root权限),密码设为pwd123


  3. 配置可匿名上传、禁用本地用户的vsftpd 服务,设为开机自运行

  1. 所涉及的软件源均通过HTTP 方式提供给各客户机

环境设定:网络域为test.net;网络网段为192.168.11.0/24,服务器名为pxesvr.test.net服务器地址为192.168.11.254

  1. 实现步骤:

  1. 配置服务器网络参数

[root@pxesvr ~]# vim /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=pxesvr.test.net

[root@pxesvr ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

HWADDR=00:0C:29:5F:F1:6A

TYPE=Ethernet

UUID=bac27caf-cc9c-4992-bc86-4d3ecdf5e4d9

ONBOOT=yes

NM_CONTROLLED=no

BOOTPROTO=static

IPADDR=192.168.11.254

NETMASK=255.255.255.0

[root@pxesvr ~]# service network restart

[root@pxesvr ~]# service iptables stop

[root@pxesvr ~]# chkconfig iptables off

[root@pxesvr ~]# vim /etc/selinux/config

SELINUX=disabled

SELINUXTYPE=targeted

[root@pxesvr ~]# setenforce 0

  1. 搭建YUM


    1. 安装httpd服务:


[root@pxesvr ~]# yum -y install httpd

[root@pxesvr ~]# service httpd start

[root@pxesvr ~]# chkconfig httpd on


    1. 拷贝系统安装文件:


[root@pxesvr ~]# mkdir /var/www/html/{centos6,rhel5}

插入CentOS 6.5光盘

[root@pxesvr ~]# cp -rf /misc/cd/* /var/www/html/centos6/

切换RHEL 5.10光盘

[root@pxesvr ~]# cp -rf /misc/cd/* /var/www/html/rhel5/


    1. 编制centos.repo并复制一份放置至网站根目录以便其他客户机(CentOS6.5)获取


[root@pxesvr ~]# vim /etc/yum.repos.d/centos.repo

[centos]

name=CentOS 6

baseurl=http://pxesvr.test.net/centos6/

enabled=1

gpgcheck=0


    1. 编制centos.repo放置至网站根目录以便客户机(RHEL5.9)获取


[root@pxesvr ~]# vim /var/www/html/rhel.repo

[rhel]

name=RHEL

baseurl=http://pxesvr.test.net/rhel5/Server/

enabled=1

gpgcheck=0

  1. 安装配置DHCP服务

[root@pxesvr ~]# yum install -y dhcp

[root@pxesvr ~]# vim /etc/dhcp/dhcpd.conf

option domain-name "test.net";

option domain-name-servers pxesvr.test.net;

subnet 192.168.11.0     netmask 255.255.255.0 {

range   192.168.11.1    192.168.11.250;

option  routers 192.168.11.254;

}

[root@pxesvr ~]# service dhcpd start

[root@pxesvr ~]# chkconfig dhcpd on

  1. 安装配置DNS服务

[root@pxesvr ~]# yum install -y bind bind-chroot

[root@pxesvr ~]# vim /var/named/chroot/etc/named.conf

options {

directory "/var/named";

};


zone "test.net" IN {

type   master;

file   "test.net.zone";

};


zone "11.168.192.in-addr.arpa" IN {

type   master;

file   "192.168.11.arpa";

};

[root@pxesvr ~]# vim /var/named/chroot/var/named/test.net.zone

$TTL    84600

@       IN     SOA     test.net.       root.test.net. (

2014072201

8H

2H

4H

1D

)

@       IN     NS      pxesvr.test.net.

http    IN      A      192.168.11.254

ftp     IN      A      192.168.11.254

tftp    IN      A      192.168.11.254

pxesvr  IN      A      192.168.11.254

$GENERATE 1-200 station$ IN A 192.168.11.$

[root@pxesvr ~]# vim /var/named/chroot/var/named/192.168.11.arpa

$TTL    84600

@       SOA     test.net.       root.test.net. (

2014072201

8H

2H

4H

1D

)

@       IN     NS      test.net.

254     IN     PTR     pxesvr.test.net.

$GENERATE 1-200 $ IN PTR station$.test.net.

[root@pxesvr ~]# service named start

[root@pxesvr ~]# chkconfig named on

  1. 安装配置TFTP服务及PXE


    1. 安装启动TFTP


[root@pxesvr ~]# yum install -y tftp-server

[root@pxesvr ~]# chkconfig tftp on

[root@pxesvr ~]# service xinetd start

[root@pxesvr ~]# chkconfig xinetd on


    1. 准备客户机网络启动所需文件(vmlinuz, inittrd.img


[root@pxesvr ~]# mkdir /var/lib/tftpboot/{centos,rhel}

[root@pxesvr ~]# cp /var/www/html/centos6/isolinux/{vmlinuz,initrd.img} /var/lib

/tftpboot/centos/

[root@pxesvr ~]# cp /var/www/html/rhel5/isolinux/{vmlinuz,initrd.img} /var/lib

/tftpboot/rhel/


    1. 准备PXE配置文件、网络启动文件及图形菜单相关文件


[root@pxesvr ~]#yum install -y syslinux

[root@pxesvr ~]# cp /usr/share/syslinux/{pxelinux.0,vesamenu.c32} /var/lib/tftpboot/

[root@pxesvr ~]# mkdir /var/lib/tftpboot/pxelinux.cfg

[root@pxesvr ~]# cp /var/www/html/centos6/isolinux/isolinux.cfg /var/lib

/tftpboot/pxelinux.cfg/default

[root@pxesvr ~]# vim /var/lib/tftpboot/pxelinux.cfg/default

UI vesamenu.c32

timeout 600

menu background a.jpg       //此图像自定义,放置在/var/lib/tftp/目录下

menu title Welcome to  Linux Installation!


label RedHat Enterprise Linux

menu label ^Install RHEL5

menu default

kernel rhel/vmlinuz

append ks=http://192.168.11.254/rhel5/ks.cfg  initrd=rhel/initrd.img

label RHEL5 Rescue

menu label RHEL5 Rescue ^Mode

kernel rhel/vmlinuz

append initrd=rhel/initrd.img rescue

label CentOS 6

menu label Install^CentOS 6

kernel centos/vmlinuz

append ks=http://192.168.11.254/centos6/ks.cfg  initrd=centos/initrd.img


label Boot from Local

local boot 1


    1. 编辑dhcp配置文件,添加tftp服务地址及网络启动文件信息


[root@pxesvr ~]# vim /etc/dhcp/dhcpd.conf

option domain-name "test.net";

option domain-name-servers pxesvr.test.net;

subnet 192.168.11.0     netmask 255.255.255.0 {

range   192.168.11.1    192.168.11.250;

option routers 192.168.11.254;

      next-server    192.168.11.254;

       filename       "pxelinux.0";

}

[root@pxesvr ~]# service dhcpd restart

  1. 制作Kickstart无人值守脚本


    1. 制作CentOS ks脚本


[root@pxesvr ~]# yum install -y system-config-kickstart

[root@pxesvr ~]# system-config-kickstart


制作完成的脚本保存至/var/www/html/centos6/ks.cfg如下:


firewall --disabled


install


url --url="http://192.168.11.254/centos6/"


rootpw --iscrypted $1$1R/sO31L$YjlWwUaUhBRpa.PhLik231


auth --useshadow  --passalgo=sha512


text


firstboot --disable


keyboard us


lang zh_CN


selinux --disabled


logging --level=info




timezone Asia/Shanghai


network --bootproto=dhcp --device=eth0 --onboot=on


bootloader --location=mbr


zerombr


clearpart --all --initlabel


part /boot --fstype="ext4" --size=200


part swap --fstype="swap" --size=2048


part / --fstype="ext4" --grow --size=1




%post --interpreter=/bin/bash


rm -rf /etc/yum.repos.d/*


wget http://pxesvr.test.net/centos.repo -O /etc/yum.repos.d/centos.repo


yum clean all


yum install -y vsftpd


wget http://pxesvr.test.net/vsftpd.conf -O /etc/vsftpd/vsftpd.conf


chmod 757 /var/ftp/pub/


service vsftpd restart


chkconfig vsftpd on


useradd -u 0 -o myadm


echo pwd123 | passwd --stdin myadm


%end




%packages


@basic-desktop


@chinese-support


@desktop-debugging


@desktop-platform


@fonts


@general-desktop


@graphical-admin-tools


@input-methods


@legacy-x


@remote-desktop-clients


@x11




%end



    1. 制作RHEL ks脚本



[root@rhel ~]# yum install -y system-config-kickstart


[root@rhel ~]# system-config-kickstart


制作完成的脚本保存至/var/www/html/centos6/ks.cfg如下:


auth --useshadow  --enablemd5


bootloader --location=mbr


zerombr


clearpart --all --initlabel


text


firewall --disabled


firstboot --disable


key 2515dd4e215225dd


keyboard us


lang zh_CN


logging --level=info


url --url=http://192.168.11.254/rhel5/


network --bootproto=dhcp --device=eth0 --onboot=on


reboot


rootpw --iscrypted $1$dwY1zvXs$SlYtPTfRSrhJBLL8wJJCl1




selinux --disabled


timezone Asia/Shanghai


install


xconfig --defaultdesktop=GNOME --depth=8 --resolution=640x480


part /boot --bytes-per-inode=4096 --fstype="ext3" --size=200


part swap --bytes-per-inode=4096 --fstype="swap" --size=2049


part / --bytes-per-inode=4096 --fstype="ext3" --grow --size=1


%post --interpreter=/bin/bash


rm -rf /etc/yum.repos.d/*


wget http://192.168.11.254/rhel.repo -O /etc/yum.repos.d/rhel.repo


yum clean all


yum install -y vsftpd


wget http://192.168.11.254/vsftpd.conf -O /etc/vsftpd/vsftpd.conf


chmod 757 /var/ftp/pub/


service vsftpd restart


chkconfig vsftpd on


useradd -u 0 -o myadm


echo pwd123 | passwd --stdin myadm


wget http://192.168.11.254/rhel5/inittab -O /etc/


init 6




%packages


@chinese-support


@gnome-desktop


@base-x



  1. 项目实施完毕。


你可能感兴趣的:(服务器,局域网,IP地址,root权限)