KickStart+PXE实现自动化部署安装

前言

在日常的生产环境中,需要批量的部署大量相同的操作系统,如果我们去逐台安装无疑会花费大量的时间,通过Kictstart+PXE可以快速的部署安装,可以有效的节省人工和时间。

什么是PXE?

PXE(预启动执行环境),工作在Client/Server的工作模式,通过网络接口启动计算机,不依赖本地存储设备(如硬盘)或本地已安装的操作系统;
由Intel和Systemsoft公司于1999年9月20日公布的技术;

PXE工作原理:
在这里插入图片描述

实验环境

操作系统:centos6.5
server:192.168.42.16
client:dhcp获取
实验需求:通过网络自动化安装 centos6.5 操作系统

准备工作

iptables -F
service iptables save
sed -ri ‘/^SELINUX/c\SELINUX=disabled’ /etc/selinux/config
setenforce 0

服务器安装上安装需要的服务

yum -y install dhcp tftp-server vsftpd xinetd syslinux

dhcp配置

vim /etc/dhcp/dhcpd.conf

[root@centos6 centos6.5]# cat /etc/dhcp/dhcpd.conf 
ddns-update-style   none;
#ignore client-updates;
authoritative;
#option domain-name "example.org";
#option domain-name-servers  8.8.8.8 , 202.96.128.166;
#default-lease-time 600;
#max-lease-time 7200;
log-facility local7;

subnet 192.168.42.0  netmask 255.255.255.0 {
        range 192.168.42.100  192.168.42.200;
        option domain-name-servers  202.96.128.166;
        option domain-name "class.com";
        option routers 192.168.42.2;
        option broadcast-address 192.168.42.255;
        default-lease-time 300;
        max-lease-time 7200;
        allow bootp;
    	allow booting;
        next-server 192.168.42.16;               #tftp服务器地址
	     filename "pxelinux.0";                         #启动引导文件
}

service dhcpd start
chkconfig dhcpd on

挂载系统镜像,通过ftp发布

mkdir /var/ftp/centos6.5
mount /dev/cdrom /var/ftp/centos6.5/

tftp配置

vim /etc/xinetd.d/tftp
disable= no

提供引导菜单所需的文件

cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
cp -rf /var/ftp/centos6.5/isolinux/* /var/lib/tftpboot/
cd /var/lib/tftpboot/
mkdir pxelinux.cfg
cp isolinux.cfg pxelinux.cfg/default

配置引导列表

cd /var/lib/tftpboot/pxelinux.cfg
vim default

default vesamenu.c32     #注意 vesamenu.c32是否存在tftpboot目录下
timeout 600
display boot.msg       #这个文件用来定义欢迎界面
prompt 1

label 1                                          #引导列表名称
   menu Install centos 6              #标签
   kernel  vmlinuz                          #内核文件
   append initrd=initrd.img ks=ftp://192.168.42.16/centos6-ks.cfg                   #initrd定义启动镜像文件

定义kickstart脚本,实现自动化安装

vim /var/ftp/centos6-ks.cfg

#定义安装类型
install
text
reboot
lang en_US.UTF-8
keyboard us
 
url --url="ftp://192.168.42.16/centos6.5"
rootpw --iscrypted     sdkfhiuqdsf14349#$%$%^451f1                * #root用户密码,此处需要填写MD5加密的密码字串*
firewall --disabled
#firewall --service=ssh
authconfig --useshadow --passalgo=sha512
selinux --disabled
timezone --utc Asia/ShangHai
bootloader --location=mbr --append="crashkernel=auto rhgb quiet"
zerombr

#分区
clearpart --all --initlabel
part /boot --fstype=ext4 --size=200
part swap --size=2048
part / --fstype=ext4 --grow --size=1      #这里大小等于1表示使用剩余所有内存

#安装软件包
%packages
@core
@base
wget
tree
psmisc
%end

#安装后操作
%post
rm -rf /etc/yum.repos.d/*
wget -q ftp://192.168.42.16/pub/centos6.5.repo -O /etc/yum.repos.d/centos6.5.repo
yum clean all
yum repolist
echo "nameserver 8.8.8.8" >> /etc/resolv.conf
sed -i "s/ONBOOT.*$/ONBOOT=yes/" /etc/sysconfig/network-scripts/ifcfg-eth0
sed -i "s/rhgb //" /boot/grub/grub.conf
sed -i "s/HOSTNAME=.*$/HOSTNAME=centos6.5/" /etc/sysconfig/network
%end

启动服务

service vsftpd restart
service dhcpd restart
service xinetd restart

检查端口

[root@centos6 /]# ss -ntulp | egrep '21|67|69'
udp    UNCONN     0      0                      *:41869                 *:*      users:(("rpc.statd",1075,8))
udp    UNCONN     0      0                      *:67                    *:*      users:(("dhcpd",1850,7))
udp    UNCONN     0      0                      *:69                    *:*      users:(("xinetd",1785,5))
tcp    LISTEN     0      32                     *:21                    *:*      users:(("vsftpd",1831,3))

客户端测试,整个过程都是自动化安装,无需人为干预。
在这里插入图片描述

在这里插入图片描述

完成。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值