使用PXE+kickstart無人值守安裝服務(wù)
? 使用光盤鏡像來安裝Linux系統(tǒng)的方法辩诞,該方法適用于只安裝少量Linux系統(tǒng)的情況痹束。如果生產(chǎn)環(huán)境中有數(shù)百臺(tái)服務(wù)器都需要安裝系統(tǒng)秀菱,這種方式就不合時(shí)宜了基显。這時(shí)挑随,我們就需要使用PXE + TFTP +HTTP + DHCP + Kickstart服務(wù)搭建出一個(gè)無人值守安裝系統(tǒng)分歇。這種無人值守安裝系統(tǒng)可以自動(dòng)地為數(shù)十臺(tái)服務(wù)器安裝系統(tǒng)傀蓉,這一方面將運(yùn)維人員從重復(fù)性的工作中解救出來,也大大提升了系統(tǒng)安裝的效率职抡。
? PXE(Preboot eXecute Environment葬燎,預(yù)啟動(dòng)執(zhí)行環(huán)境)是由Intel公司開發(fā)的技術(shù),可以讓計(jì)算機(jī)通過網(wǎng)絡(luò)來啟動(dòng)操作系統(tǒng)(前提是計(jì)算機(jī)上安裝的網(wǎng)卡支持PXE技術(shù))缚甩,主要用于在無人值守安裝系統(tǒng)中引導(dǎo)客戶端主機(jī)安裝Linux操作系統(tǒng)谱净。Kickstart是一種無人值守的安裝方式,其工作原理是預(yù)先把原本需要運(yùn)維人員手工填寫的參數(shù)保存成一個(gè)ks.cfg文件擅威,當(dāng)安裝過程中需要填寫參數(shù)時(shí)則自動(dòng)匹配Kickstart生成的文件壕探。所以只要Kickstart文件包含了安裝過程中需要人工填寫的所有參數(shù),那么從理論上來講完全不需要運(yùn)維人員的干預(yù)
所需配置服務(wù)及安裝包
DHCP #獲取IP地址,并提供pxelinux.0文件位置
TFTP #支持PXE下載內(nèi)核引導(dǎo)文件
HTTP #下載ks.cfg以及系統(tǒng)鏡像文件
Syslinux #提供引導(dǎo)文件
systemctl stop firewalld #關(guān)閉防火墻selinux
setenforce 0
配置DHCP服務(wù)
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";
}
##啟動(dòng)dhcp服務(wù)
systemctl start dhcpd
##開機(jī)自啟動(dòng)
systemctl enable dhcpd
##查看有無端口
netstat -lntup|grep dhcpd
配置TFTP服務(wù)
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服務(wù)
systemctl start httpd
systemctl enable httpd
##創(chuàng)建掛載點(diǎn)
mkdir –p /media/cdrom
##掛載CentOS7光盤
mount /dev/cdrom /media/cdrom
mkdir -p /var/www/html/centos/7/x86_64
##綁定掛載到http默認(rèn)目錄下
mount --bind /media/cdrom /var/www/html/centos/7/x86_64
使用瀏覽器訪問郊丛,進(jìn)行測(cè)試李请。
配置SYSLinux服務(wù)
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 #修改內(nèi)容與行數(shù)如下
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
##開機(jī)自啟動(dòng)
systemctl enable tftp
##啟動(dòng)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地址、路徑錯(cuò)誤
虛擬機(jī)內(nèi)存不足
服務(wù)未啟動(dòng)