Kickstart+PXE自動部署
無人值守安裝簡介
無人值守安裝(Unattended Setup)指軟件安裝時無需任何用戶干預,直接按默認或通過應答文件設置安裝,這對于無特殊需求的用戶或企業大批量部署安裝操作系統及軟件時非常方便。無人值守安裝也稱為靜默安裝,在安裝過程中可以靜默安裝好預先設計集成的一些常用軟件,安裝結束以后軟件就已經可以使用,很多軟件都支持靜默安裝
PXE:Pre-boot Execution Environment:一種引導方式,計算機含有個PXE支持的網卡(NIC),即網卡中必須要有PXE Client,這樣就可以通過PXE協議從網絡啟動計算機(網卡必須有PXE芯片),協議分為Client和Server端,PXE Client在網卡的ROM中,當計算機啟動引導時,BIOS把PXE Client調入內存運行,由PXE Client將放置在遠端的文件通過網絡下載到本地運行。運行PXE協議需要設置DHCP服務器和TFTP服務器,DHCP服務器用來給PXE Client (需要安裝系統的主機)分配一個IP地址,由于是給PXE Client分配IP地址,所以在配置DHCP服務器時需要增加相應的PXE設置!此外,PXE Client的ROM中,已經存在了TFTPClient。PXE Client 通過TFTP協議到TFTPServer上下載所需文件!
KickStart是一種無人職守安裝方式。KickStart的工作原理是通過記錄典型的安裝過程中所需人工干預填寫的各種參數,并生成一個名為 ks.cfg的文件;在其后的安裝過程中(不只局限于生成KickStart安裝文件的機器)當出現要求填寫參數的情況時,安裝程序會首先去查找 KickStart生成的文件,當找到合適的參數時,就采用找到的參數,當沒有找到合適的參數時,才需要安裝者手工干預。這樣,如果KickStart文件涵蓋了安裝過程中出現的所有需要填寫的參數時,安裝者完全可以只告訴安裝程序從何處取ks.cfg文件,然后去忙自己的事情。等安裝完畢,安裝程序會根據ks.cfg中設置的重啟選項來重啟系統,并結束安裝
實戰:PXE批量部署linux操作系統
前言
在真實的生產環境中,我們如果遇到新上線很多服務器的話,裝系統是件很麻煩的事情,而且工作效率很低,機房輻射這么大,我們掌握了批量安裝的技能,就可以在一個小時內,解決幾百臺或者更多的系統安裝,下面來講下Kickstart+PXE自動部署
,以后還會更新Cobbler
大家記得關注下
部署dhcp服務
安裝dhcp服務器并關閉selinux及iptables
[root@localhost ~]# setenforce 0 #設置selinux為permissive模式
[root@localhost ~]# getenforce
Permissive
[root@localhost ~]# service iptables stop #關閉防火墻
[root@localhost ~]# yum -y install dhcp #安裝
[root@localhost ~]# rpm -ql dhcp |grep "dhcpd.conf" #檢查
[root@localhost ~]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
cp: overwrite `/etc/dhcp/dhcpd.conf'? y
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf #配置
配置dhcp服務器
ddns-update-style none; # 不進行DDNS的更新
ignore client-updates; # 不允許客戶機更新DNS記錄
subnet 192.168.1.0 netmask 255.255.255.0 # 與下面的range配合聲明可分配IP的范圍
{
option routers 192.168.1.1 ; # 設置網關
range 192.168.1.110 192.168.1.120; # 可分配的起始IP 結束IP
option subnet-mask 255.255.255.0; # 設定netmask
default-lease-time 21600; # 設置默認的IP租用期限
max-lease-time 43200; # 設置最大的IP租用期限
next-server 192.168.1.2 ; # 用來告知主機TFTP服務器的ip
filename "/pxelinux.0"; # tftp服務器根目錄下面的文件名(pxelinux.0是PXE專用的一個boot loader 文件)
}
啟動服務
[root@localhost ~]# service dhcpd start #啟動
[root@localhost ~]# chkconfig dhcpd on #設置開機啟動
[root@localhost ~]# netstat -nlptu |grep dhcp #檢查服務
[root@localhost ~]# sed -i 's/DHCPDARGS= /DHCPDARGS=eth1/g' /etc/sysconfig/dhcpd #僅在eth1上提供dhcp服務
[root@localhost ~]# sed -i 's/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g' /etc/sysctl.conf&&sysctl -p #開啟路由功能
HTTP服務
[root@localhost ~]# yum -y install httpd #安裝
[root@localhost ~]# chkconfig httpd on #開機自啟動
[root@localhost ~]# service httpd start #啟動服務
[root@localhost ~]# mkdir -p /var/www/html/os/6 #創建掛載目錄
[root@localhost ~]# mount /dev/cdrom /var/www/html/os/6 #掛載系統鏡像
TFTP服務
[root@localhost ~]# yum -y install tftp-server #安裝
[root@localhost ~]# 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 #指定默認目錄
disable = no #由原來的yes,改為no
per_source = 11
cps = 100 2
flags = IPv4
}
復制PXE啟動時需要的文件
[root@localhost ~]# yum -y install syslinux #安裝引導程序(提pxelinux.0文件)
[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /tftpboot/ #復制引導文件到TFTP的根目錄
[root@localhost ~]# cp /usr/share/syslinux/{vesamenu.c32,boot.msg,splash.jpg} /tftpboot/
[root@localhost ~]# cp /var/www/html/os/6/images/pxeboot/vmlinuz /tftpboot/
[root@localhost ~]# cp /var/www/html/os/images/pxeboot/initrd.img /tftpboot/
[root@localhost ~]# mkdir -p /tftpboot/pxelinux.cfg
[root@localhost ~]# cp /var/www/html/os/6/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default #拷貝啟動菜單
修改引導啟動菜單
[root@localhost ~]# vim /tftpboot/pxelinux.cfg/default
//然后修改下22行(即在后面添加ks=http://192.168.1.2/ks.cfg ksdevice=eth0 ip=dhcp)。第22行的意思是使安裝程序通過http服務器訪問kickstart文件。
#配置文件
label linux
menu label ^Install or upgrade an existing system
menu default
kernel vmlinuz
append initrd=initrd.img ks=http://192.168.1.2/ks.cfg ksdevice=eth0 ip=dhcp
//檢測文件
[root@localhost ~]# chmod 644 /tftpboot/pxelinux.cfg/default #設置文件權限
[root@localhost ~]# ls /var/lib/tftpboot #檢查
boot.msg initrd.img pxelinux.0 pxelinux.cfg splash.jpg vesamenu.c32 vmlinuz
配置kickstart自動安裝文件(ks.cfg)
[root@localhost ~]# yum -y install system-config-kickstart #建議在圖形化界面內安裝配置
[root@localhost ~]# echo $LANG
en_US.UTF-8
[root@localhost ~]#.UTF-8
[root@localhost ~]# system-config-kickstart
圖形化界面配置:(終端中運行system-config-kickstart命令)圖形界面不在介紹,可設置中文,和安裝的選項沒什么區別
我是通過
system-config-kickstart
制作的
#platform=x86, AMD64, 或 Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --disabled #禁止防火墻
# Install OS instead of upgrade
install #告知安裝程序,這是一次全新安裝,而不是升級
# Use network installation
url --url="http://192.168.1.2/os/6"
# Root password
rootpw --iscrypted $1$H8k1EIfB$BD1WyfZ4SkDNsypX1jjgR0 #設定root的密碼
# System authorization information
auth --useshadow --passalgo=sha512 #設置密碼加密方式為sha512 啟用shadow文件
# Use text mode install
text #使用文本模式安裝
firstboot --disable #禁止firstboot,firstboot就是我們使用圖形化安裝完系統,重啟后有一個初始設置
# System keyboard
keyboard us #使用美式鍵盤
# System language
lang en_US #默認語言是英語
# SELinux configuration
selinux --disabled #禁止selinux
# Installation logging level
logging --level=info #設定安裝過程中的日志級別
# Reboot after installation
reboot #設定安裝完成后重啟
# System timezone
timezone Asia/Shanghai #設置時區
# Network information
network --bootproto=dhcp --device=eth0 --onboot=on #設置安裝完成后的網絡
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr #清空mbr
# Partition clearing information
clearpart --all --initlabel #清空所有分區
# Disk partitioning information
part /boot --fstype="ext4" --size=200 #新建/boot分區
part swap --fstype="swap" --size=2048 #新建swap分區
part / --fstype="ext4" --grow --size=1 #新建swap分區
%post
#加上優化腳本
cd /root
/usr/bin/wget http://192.168.1.2/shell.tar.gz
/bin/tar -zxf shell.tar.gz
/bin/sh ` find ./ -name '*.sh'
%end
#安裝包我選擇的是Basic模式,添加了中文支持
%packages
@base
@chinese-support
@development
@kde-desktop
%end
注意:
grub-crypt #密方式為sha512生成的密碼
Password: rhce
Retype password: rhce
$6$QHOksakPohOoVUL9$CNCHfAMYDZZZzZixAGGKCWdPkK8qVvpRk9DkaDOJtrRXlJkzk5GHMZ9zqCTdr8Qiozl9qHOVT5XnbGaZKt06d0
特別注意分區方面,大小要以機器硬盤大小為主修改編寫(否則出錯),后續還可以加上一些自動化腳本做優化。
原創文章,作者:M20_he,如若轉載,請注明出處:http://www.www58058.com/47167
文章怎么沒有標題?