使用PXE+kickstart无人值守安装服务

使用PXE+kickstart无人值守安装服务

​ 使用光盘镜像来安装Linux系统的方法,该方法适用于只安装少量Linux系统的情况。如果生产环境中有数百台服务器都需要安装系统,这种方式就不合时宜了。这时,我们就需要使用PXE + TFTP +HTTP + DHCP + Kickstart服务搭建出一个无人值守安装系统。这种无人值守安装系统可以自动地为数十台服务器安装系统,这一方面将运维人员从重复性的工作中解救出来,也大大提升了系统安装的效率。

​ PXE(Preboot eXecute Environment,预启动执行环境)是由Intel公司开发的技术,可以让计算机通过网络来启动操作系统(前提是计算机上安装的网卡支持PXE技术),主要用于在无人值守安装系统中引导客户端主机安装Linux操作系统。Kickstart是一种无人值守的安装方式,其工作原理是预先把原本需要运维人员手工填写的参数保存成一个ks.cfg文件,当安装过程中需要填写参数时则自动匹配Kickstart生成的文件。所以只要Kickstart文件包含了安装过程中需要人工填写的所有参数,那么从理论上来讲完全不需要运维人员的干预

所需配置服务及安装包

DHCP        #获取IP地址,并提供pxelinux.0文件位置
TFTP            #支持PXE下载内核引导文件
HTTP        #下载ks.cfg以及系统镜像文件
Syslinux        #提供引导文件
systemctl stop firewalld #关闭防火墙selinux

setenforce 0

配置DHCP服务

yum -y install dhcp 
vim /etc/dhcp/dhcpd.conf
subnet 192.168.91.0 netmask 255.255.255.0 {
range 192.168.91.100 192.168.91.199;
option subnet-mask 255.255.255.0;
default-lease-time 21600;
max-lease-time 43200;
next-server 192.168.91.140;
filename "/pxelinux.0";
}
##启动dhcp服务
systemctl start dhcpd
##开机自启动
systemctl enable dhcpd
##查看有无端口
netstat -lntup|grep dhcpd

配置TFTP服务

yum install tftp-server
vim /etc/xinetd.d/tftp
service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /var/lib/tftpboot
        disable                 = no   #此处由yes 改为no
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
systemctl restart tftp
systemctl enable tftp

配置HTTP服务

systemctl start httpd
systemctl enable httpd
##创建挂载点
mkdir –p /media/cdrom
##挂载CentOS7光盘
mount /dev/cdrom /media/cdrom
mkdir -p /var/www/html/centos/7/x86_64
##绑定挂载到http默认目录下
mount --bind /media/cdrom /var/www/html/centos/7/x86_64

使用浏览器访问,进行测试。

配置SYSLinux服务

yum install syslinux
cd /var/lib/tftpboot
cp /usr/share/syslinux/pxelinux.0 .
cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} .
cp /media/cdrom/isolinux/{vesamenu.c32,boot.msg} .
mkdir pxelinux.cfg
cp /media/cdrom/isolinux/isolinux.cfg pxelinux.cfg/default
vim pxelinux.cfg/default #修改内容与行数如下
1  default linux
64 append initrd=initrd.img inst.stage2=ftp://192.168.10.10 ks=ftp://192.168.10.10/pub/ks.cfg quiet
##开机自启动
systemctl enable tftp
##启动tftp
systemctl start tftp

配置kickstart的 ks.cfg文件

mkdir /var/www/html/ks
vim /var/www/html/ks/ks.cfg
#Kickstart Configurator for CentOS 7 by Mine
#version=DEVEL
# System authorization information
auth --enableshadow --passalgo=sha512
# Use CDROM installation media
#cdrom
# Install OS instead of upgrade
install
# Use network installation
url --url=http://10.0.0.61/centos/7/x86_64
# Use graphical install
graphical
# Run the Setup Agent on first boot
firstboot --enable
#ignoredisk --only-use=sda
# Keyboard layouts
keyboard --vckeymap=cn --xlayouts='cn'
# System language
lang zh_CN.UTF-8
# Network information
#network  --bootproto=static --device=eth0 --gateway=10.0.0.254 --ip=10.0.0.100 --nameserver=223.5.5.5 --netmask=255.255.255.0 --activate 
#network  --bootproto=static --device=eth1 --ip=172.16.1.100 --netmask=255.255.255.0 --activate
network  --bootproto=dhcp --device=eth0 --onboot=off --ipv6=auto
network  --hostname=hostname

# Root password
rootpw --iscrypted $1$$GmbL3iXOMZR57QuGDLv.L1
#perl -e 'print crypt("123",q($1$)),"\n"' 使用的密码为123 
# System timezone
timezone Asia/Shanghai --isUtc
# System bootloader configuration
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
autopart --type=lvm
# Partition clearing information
clearpart --none --initlabel

%packages
@^minimal
@core
kexec-tools
vim
wget
httpd
%end
%addon com_redhat_kdump --enable --reserve-mb='auto'
%end
selinux --disabled
reboot
失败原因:

IP地址、路径错误

虚拟机内存不足

服务未启动

你可能感兴趣的:(使用PXE+kickstart无人值守安装服务)