码迷,mamicode.com
首页 > 其他好文 > 详细

PXE网络无人值守装机

时间:2014-07-27 14:19:39      阅读:307      评论:0      收藏:0      [点我收藏+]

标签:服务器   root权限   局域网   ip地址   

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 ~]# 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 The Fucking 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. 项目实施完毕。


本文出自 “Paundudo” 博客,请务必保留此出处http://paundudo.blog.51cto.com/3741758/1530264

PXE网络无人值守装机

标签:服务器   root权限   局域网   ip地址   

原文地址:http://paundudo.blog.51cto.com/3741758/1530264

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!