PXE + Kickstart無人值守批量安裝OS
PXE作用: 引導裝機
Kickstart作用: 將安裝系統的過程中寫入ks.cfg檔案中,實現無人值守自動安裝
TFTP: PXE Client中從server端下載pxelinux.0檔案(最先下載)、vmlinuz、initrd.img
DHCP: PXE引導過程中獲取IP地址。一共兩次使用到DHCP,第一次是使用TFTP傳檔案時,第二次是使用HTTP傳檔案時
HTTP: 用於下載ks.cfg以及映象檔案
準備工作:
1.關閉防火牆 (這個比較暴力==,建議還是寫iptables吧)
2.關閉selinux
3.準備好系統映象檔案並掛載
4.各伺服器規劃:
TFTP / DHCP / HTTP IP: 10.1.1.69
即所有服務位於同一臺伺服器上(如果需要安裝的伺服器較多,則注意將這幾個服務拆開,以此減輕網路傳輸壓力,尤其是對於異地IDC裝機時,VPN簡直的速度不能忍)
一、安裝HTTP服務並將相關檔案放入httpd根目錄中
1.1 安裝Web服務
#yum install httpd -y
備註:如果有http服務如Nginx,可直接使用,但是要主要相關檔案必須放在Nginx的root目錄下。
1.2 將映象檔案掛載進httpd服務的根目錄中
#mount -o loop xxx.iso /var/www/html/iso
#有的時候版本多,可以改下目錄名,以版本命名
#mv /var/www/html/iso /var/www/html/centos6.6
1.3 生成ks.cfg檔案並將其放入/var/www/html/ 目錄
具體生成這裡不做說明,實際上就是用kicstart工具模擬一次裝系統的步驟==
生成後的檔案如下。
cat /var/www/html/ks.cfg
# Kickstart file automatically generated by anaconda.
#mody 20140311
#version=DEVEL
install
#cdrom
url --url http://10.1.1.69/centos6.6
lang en_US.UTF-8
keyboard us
rootpw --iscrypted $6$Ldc0ppq9soXeP34h$/2Z9DVOUPzEh4gcFMPkd/gf3.Is6rlKfgBht0oQs5tjHN8DL.hp18gftjoNzGZ6SQ69hJYw7zkX24ryMXll0E/
firewall --service=ssh
authconfig --enableshadow --passalgo=sha512
selinux --disabled
timezone --utc Asia/Shanghai
bootloader --location=mbr --driveorder=sda,sdb,sdc
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
#clearpart --none
clearpart --all --initlabel --drives=sda
zerombr
part / --fstype=ext4 --size=70000 --ondisk=sda
part swap --size=20480 --ondisk=sda
part /usr/local --fstype ext4 --size=1 --grow --ondisk=sda
reboot
#repo --name="CentOS" --baseurl=cdrom:sr0 --cost=100
%packages
@additional-devel
@base
@chinese-support
@compat-libraries
@console-internet
@core
@debugging
@development
@directory-client
@hardware-monitoring
@large-systems
@legacy-unix
@network-file-system-client
@performance
@perl-runtime
@server-platform
@server-platform-devel
@server-policy
@system-management
@system-admin-tools
@workstation-policy
libgcrypt-devel
libXinerama-devel
xorg-x11-proto-devel
startup-notification-devel
libgnomeui-devel
libbonobo-devel
libXau-devel
libXrandr-devel
popt-devel
libxslt-devel
libglade2-devel
gnutls-devel
mtools
pax
oddjob
sgpio
device-mapper-persistent-data
systemtap-client
jpackage-utils
samba-winbind
certmonger
pam_krb5
krb5-workstation
tcp_wrappers
perl-DBD-SQLite
ipmitool
OpenIPMI
screen
tree
lsscsi
%end
注意:/var/www/html/ 目錄下的檔案許可權應該為 755,否則無法下載,會出現如下錯誤:
[root@minion ~]# wget http://10.1.1.69/yantao
--2017-02-21 05:09:24-- http://10.1.1.69 /yantao
Connecting to 10.1.1.69 :80... failed: Connection refused.
修改許可權後方可下載。
二、安裝與配置TFTP服務
2.1 安裝與配置
#yum install tftp-server -y
#vim /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot/ -c
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
#mkdir /tftpboot/
#/etc/init.d/xinetd restart
#netstat -anutp | grep ":69"
udp 0 0 0.0.0.0:69 0.0.0.0:* 3551/xinetd
此時TFTP已經安裝結束了,為了驗證TFTP是否安裝成功,可以做如下測試:
服務端(10.1.1.69)
#touch /tftpboot/testfile
客戶端(10.1.1.101)
#yum install tftp -y
#tftp 10.1.1.69
tftp>get yantao
tftp>
get檔案時返回正常,表示服務端TFTP已配置成功。
備註:我在測試時 get /tftpboot/yantao時一直提示“Error code 1: File not found”錯誤,這是因為我使用了全路徑,這裡其實是不需要全路徑的,/tftpboot本身就是根目錄了。
2.2 將PXE引導過程中需要的檔案放入TFTP的根目錄,並配置default檔案
**PXE引導所需檔案:pxelinux.0,initrd.img,vmlinuz,boot.msg **。此外,isolinux.cfg對應default檔案,具體如下:
(1)將pxelinux.0拷入/tftpboot中
#cp /usr/share/syslinux/pxelinux.0 /tftpboot
備註:有的機器沒有syslinux/這個目錄,因此沒有pxelinux.0這個檔案,解決方法是安裝syslinux這個工具:
#yum install syslinux -y
(2)掛載映象,複製相關檔案進入/tftpboot目錄中
#cp /var/www/html/centos6.6/images/pxeboot/{initrd.img,vmlinuz} /tftpboot/
#cp /var/www/html/centos6.6/isolinux/*.msg /tftpboot
#mkdir /tftpboot/pxelinux.cfg
#cp /var/www/html/centos6.6/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
配置default檔案
#cat /tftpboot/pxelinux.cfg/default
default ks
prompt 1
timeout 600
display /tftpboot/boot.msg
menu title Welcome to CentOS 6.6!
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
kernel vmlinuz
append initrd=initrd.img
label text
kernel vmlinuz
label ks
kernel vmlinuz
append initrd=initrd.img ks=http://10.1.1.69/ks.cfg ksdevice=em1
label yantao
kernel vmlinuz
append ks=http://10.1.1.69:80/ks.cfg ksdevice=em1 ip=10.1.1.3 netmask=255.255.255.0 initrd=initrd.img
label memtest86
kernel memtest
append -
注意點:
- label名。該檔案開頭寫了default ks,表示PXE預設使用ks這個label下的配置;但是有時候我們會需要手動輸入label,所以default後的label名可以任意寫一個不存在的,這樣其實就加了一層安全措施,以免在某個IDC裝機時,剛好有其他的伺服器重啟,不知情的情況下,那就悲劇了。
- ks.cfg路徑。ks.cfg位於HTTP服務的根目錄下面,比如這裡的檔案路徑就是:/var/www/html/ ks.cfg。default檔案中用如下方法表示:
ks=http://10.1.1.69/ks.cfg
- 可以在default檔案中配置好IP地址,子網掩碼等,這個IP是在系統裝好後依然會保留的。如下:
ip=10.1.1.3 netmask=255.255.255.0
那麼最後/tftp目錄的整體結構如下:
[root@localhost tftpboot]# pwd
/tftpboot
[root@localhost tftpboot]# tree
.
├── boot.msg
├── initrd.img
├── pxelinux.0
├── pxelinux.cfg
│ └── default
└── vmlinuz
三、安裝配置DHCP服務
3.1 安裝
#yum -y install dhcp
3.2 DHCP配置檔案:/etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.sample
# see 'man 5 dhcpd.conf'
#
ddns-update-style interim;
allow booting;
allow bootp;
next-server 10.1.1.69;
filename "pxelinux.0";
ignore client-updates;
set vendorclass = option vendor-class-identifier;
option pxe-system-type code 93 = unsigned integer 16;
subnet 10.1.1.0 netmask 255.255.255.0 {
option routers 10.1.1.69;
option subnet-mask 255.255.255.0;
range dynamic-bootp 10.1.1.1 10.1.1.254;
default-lease-time 21600;
max-lease-time 43200;
}
# group for Cobbler DHCP tag: default
group {
}
重點:filename "pxelinux.0";這一語句是必須的,這個表示在DHCP中開啟PXE引導功能。
現在可以自動安裝了。安裝時直接將引導設定為PXE啟動即可。
相關文章
- PXE介紹(PXE+kickstart無人值守安裝)
- PXE+Kickstart無人值守安裝安裝Centos7.9CentOS
- PXE高效網路裝機與Kickstart無人值守安裝
- kickstart+PXE+dhcp+nfs 批量無人值守自動化安裝作業系統NFS作業系統
- pxe+kickstart無人值守安裝linux作業系統Linux作業系統
- kickstart無人值守安裝linux(轉)Linux
- [無人值守安裝作業系統]__RHEL6__FTP+TFTP+DHCP+Kickstart+PXE作業系統FTP
- kickstart無人值守方式安裝Linux 7.6Linux
- Linux網路服務-----實驗---PXE和Kickstart的無人值守裝機Linux
- Linux kickstart無人值守安裝RHEL5.5(轉)Linux
- Linux應該這麼學第19章使用 PXE+Kickstart 無人值守安裝服務Linux
- 無人值守批量安裝linux作業系統Linux作業系統
- linux kickstart 無人職守安裝Linux
- Docker-02 無人值守安裝 dockerDocker
- oracle客戶端無人值守安裝 靜默安裝Oracle客戶端
- 搭建 Cobbler 無人值守安裝伺服器伺服器
- 無人值守自動化安裝系統
- kickstart之批量安裝puppet客戶端客戶端
- kickstart半自動安裝centos系統與pxe自動安裝centos系統CentOS
- Linux中的無人職守安裝指令碼kickstartLinux指令碼
- PXE+DHCP+TFTP+NFS+Kickstart網路自動安裝配置簡化版FTPNFS
- 無人值守智慧洗車
- PXE安裝
- 另一種批量裝機神器-----使用PXE批量裝機
- 地磅無人值守系統
- Linux系統下手把手完成無人值守安裝服務Linux
- PXE高效批量網路裝機的解析
- Linux——PXE高效批量網路裝機Linux
- linux安裝配置kickstartLinux
- Redhat kickstart 安裝光碟製作Redhat
- RHEL6 無人值守搭建指令碼指令碼
- 用Kickstart批次安裝Linux(轉)Linux
- 變電站裝置狀態識別無人值守巡檢系統
- Linux下批次部署安裝--PXELinux
- Kickstart 全自動安裝部署RHEL 7.0
- 無人值守的運維到底靠譜不靠譜?運維
- 無人值守自動化效能測試平臺
- PXE+LITENET安裝共略(轉)