作为运维,要养成把复杂多样的事情简单化程序化,而最基本的linux系统安装调优我们就暂交给PXE来做了。
PXE运行原理:在PC上从网络启动Red Hat Linux安装程序的PXE协议,同时需要tftp服务PXE(Pre-boot Execution Environment)是由Intel设计的协议,它可以使计算机通过网络启动。协议分为client和server两端,PXEclient在网卡的ROM中,当计算机引导时,BIOS把PXE client调入内存执行,并显示出命令菜单,经用户选择后,PXE client将放置在远端的操作系统通过网络下载到本地运行。
DHCP+TFTP+http+KICKSTART模式:1.使用TFTPClient,通过TFTP协议到TFTP Server上下载所需的文件,2. DHCP Server是用来给DHCP Client动态分配IP地址的协议,不过由于这里是给PXE Client分配IP地址,所以在配置DHCP Server时,需要增加相应的PXE特有配置,3.kickstart提供无人值守流程。
安装步骤:
1,关闭防火墙:service iptables stop
关闭selinux:
#vim /etc/sysconfig/selinux
SELINUX=disabled
2,yum环境的搭建
光盘文件copy:
#mount /dev/cdrom /mnt
#mkdir /var/www/html/centos -p
#cp –r /mnt/* /var/www/html/centos #将光盘内容全部复制到下载目录,自建目录用来存放系统
镜像文件,也可用其他软件直接将解压的镜像文件传到目录
yum的搭建:
#vim /etc/yum.repo.d/pxeserver.repo
[base]
name=base
baseurl=file:///var/www/html/centos #指定yum指令路径
gpgcheck=no
测试yum的搭建是否正确: #yum list
3,安装dhcpd
yum -y install dhcpd
vim /etc/dhcp/dhcpd.conf
subnet 192.168.0.0 netmask 255.255.255.0 { #dhcpserver 分配ip的子网192.168.0网段,必须
和PXEserver的一个网卡同一个网段
range 192.168.0.100 192.168.0.200; #为客户端分配ip范围
option domain-name "192.168.0.105";
option domain-name-servers 192.168.0.105; #此项不写可能在自动安装时让您手动添加,
这样达不到自动化的目的
option routers 192.168.0.111;
default-lease-time 600;
max-lease-time 7200;
next-server 192.168.0.105; #指定tftp server的ip
filename "pxelinux.0"; #通过tftp找到pxelinux.0文件,并下载
}
DHCP介绍:
ddns-update-style interim:这个是动态获取IP地址啦。必须放在第一项哇。
ignore client-updates:服务端与客户端传输相关
Subnet:获取IP段,要配置正确。
Routers:是路由地址
Range:dhcp分配IP段。
next-server:是tftp地址。
Allow booting bootp:放行传输和协议。
TFTP介绍:
Default:用在于tftp建立传输入协议后会去tftpboot里找文件,啥都找不着之后就会找default。
tftp-server :这个是用来传送引导文件的,
Initrd.img/vmlinux: 看用来安装前的一些工作。但tftp是用来传输这些文件的协议。
网络结构:
如图为网络安装环境的一个原理示意,安装环境由一个局域网和连接到该局域网的启动服务器、安装服务器和待安装客户端,其中启动服务器和安装服务器可以部署在同一台物理机上。
服务相关作用:
Dhcpd: 分发IP地址。
Tftpd: 分发启动文件安装。
Httpd:分发系统文件安装。
3.1 启动dhcpd及自启动
service dhcpd start
chkconfig --add dhcpd
chkconfig dhcpd on
4,apache的安装与配置
#yum install httpd
启动并设置开机启动:
#service httpd start
#chkconfig httpd on
保证通过浏览器访问:http://192.168.0.105/centos可以看到安装文件,http默认读取/var/www/hrml/目录下文件
(注意:iptables 和 selinux)
5,tftp的安装与配置以及syslinux的安装
#yum install tftp*
#vim /etc/xinetd.d/tftp ---tftp依赖于xinetd内核程序,所以配置文件在其目录下
service tftp
{
socket_type = dgram
protocol = udp
wait = yes --改为no的话就是多线程安装,多台同时操作
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot #tftp服务目录
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
启动tftp服务并设置开机启动:
#service xinetd start --直接启动xinetd进程
#chkconfig xinetd on
6,安装syslinux
#yum install syslinux
主要用其提供的pxelinux.0文件
copy内核文件到/var/lib/tftpboot目录下:
# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
#cp /var/www/html/centos/isolinux/initrd.img /var/lib/tftpboot
#cp /var/www/html/centos/isolinux/vmlinuz /var/lib/tftpboot
#cp /var/www/html/centos/isolinux/vesamenu.c32 /var/lib/tftpboot
创建目录:
#mkdir /var/lib/tftpboot/pxelinux.cfg
#cp /var/www/html/centos/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
修改default文件:
#vim /var/lib/tftpboot/pxelinux.cfg/default
default vesamenu.c32
#prompt 1
timeout 30 #这个时间改为30,30秒后自动帮您选择install
display boot.msg
menu background splash.jpg
menu title Welcome to Red Hat Enterprise Linux 6.0!
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 linux
menu label ^Install or upgrade an existing system
menu default
kernel vmlinuz
append initrd=initrd.img ks=http://192.168.0.105/centos/ks.cfg #指明ks.cfg文件的位置
append initrd=initrd.img ks=ftp://192.168.0.105/ks.cfg #指明ftp方式ks.cfg文件的位置
7,kickstart 的安装与配置
#yum install system-config-kickstart
启动kickstark并生成ks.cfg文件到/root目录下:
#system-config-kickstart & --根据需要设置,一般是最简为主
#mv /root/ks.cfg /var/www/html/centos
这一步可能遇到的问题:
a.yum 安装kickstart任然缺少依赖包
解决方法:
把yum源换成Centos6.2的源,众所周知rhel和centos是兼容的;把pxeserver.repo文件内容换为:
#vim /etc/yum.repos.d/pxeserver.repo
[base]
name=CentOS-6.2 - Base
baseurl=http://mirrors.163.com/centos/6.2/os/$basearch/
gpgcheck=0
gpgkey=http://mirrors.163.com/centos/6.2/os/i386/RPM-GPG-KEY-CentOS-6
#released updates
[updates]
name=CentOS-6.2 - Updates
baseurl=http://mirrors.163.com/centos/6.2/os/$basearch/
http://mirrors.163.com/centos/6.2/os/$basearch/
gpgcheck=0
gpgkey=http://mirrors.163.com/centos/6.2/os/i386/RPM-GPG-KEY-CentOS-6
#packages used/produced in the build but not released
[addons]
name=CentOS-6.2 - Addons
baseurl=http://mirrors.163.com/centos/6.2/os/$basearch/
http://mirrors.163.com/centos/6.2/os/$basearch/
gpgcheck=0
gpgkey=http://mirrors.163.com/centos/6.2/os/i386/RPM-GPG-KEY-CentOS-6
#additional packages that may be useful
[extras]
name=CentOS-6.2 - Extras
baseurl=http://mirrors.163.com/centos/6.2/os/$basearch/
http://mirrors.163.com/centos/6.2/os/$basearch/
gpgcheck=0
gpgkey=http://mirrors.163.com/centos/6.2/os/i386/RPM-GPG-KEY-CentOS-6
#additional packages that extend functionality of existingpackages
[centosplus]
name=CentOS-6.2 ¨C Plus
baseurl=http://mirrors.163.com/centos/6.2/os/$basearch/
http://mirrors.163.com/centos/6.2/os/$basearch/
gpgcheck=0
gpgkey=http://mirrors.163.com/centos/6.2/os/i386/RPM-GPG-KEY-CentOS-6
#contrib - packages by Centos Users
[contrib]
name=CentOS-6.2 - Contrib
baseurl=http://mirrors.163.com/centos/6.2/os/$basearch/
http://mirrors.163.com/centos/6.2/os/$basearch/
gpgcheck=0
gpgkey=http://mirrors.163.com/centos/6.2/os/i386/RPM-GPG-KEY-CentOS-6
这样就解决了
b.kickstart启动不了
因为kickstart启动要弹出一个图形化界面,如果你没有安装xwindwow或者不支持桌面,那么kickstart就启动不了。
解决方法:安装桌面环境
#yum groupinstall “X Window System”
#yum groupinstall “Desktop”
再次#system-config-kickstart & 启动就ok了
8,测试
将客户机设置为网络启动,看看效果
9,还有其他的组合方式如nfs、ftp、cd-rom还是Hard Drive,