CentOS 7部署PXE+kickstart無人值守安裝操作系統
1.1kickstart
是一種無人值守的安裝方式。它的工作原理是在安裝過程中記錄人工幹預填寫的各種參數,並生成一個名為ks.cfg的文件。如果在自動安裝過程中出現要填寫參數的情況,安裝程序首先會去查找ks.cfg文件,如果找到合適的參數,就采用所找到的參數;如果沒有找到合適的參數,便會彈出對話框讓安裝者手工填寫。所以,如果ks.cfg文件涵蓋了安裝過程中所有需要填寫的參數,那麽安裝者完全可以只告訴安裝程序從何處下載ks.cfg文件,然後就去忙自己的事情。等安裝完畢,安裝程序會根據ks.cfg中的設置重啟/關閉系統,並結束安裝。
1.2PXE工作過程
2.系統環境準備
[root@CentOS 7 ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
[root@CentOS 7 ~]# uname -r
3.10.0-327.el7.x86_64
[root@CentOS 7 ~]# getenforce
Disabled
[root@CentOS 7 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:40:1a:4e brd ff:ff:ff:ff:ff:ff
inet 10.0.0.201/24 brd 10.0.0.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe40:1a4e/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:40:1a:58 brd ff:ff:ff:ff:ff:ff
inet 172.16.1.201/24 brd 172.16.1.255 scope global eth1
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe40:1a58/64 scope link
valid_lft forever preferred_lft forever
[root@CentOS 7 ~]# hostname
CentOS 7
[root@CentOS 7 ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
3.部署DHCP服務
3.1安裝dhcp
[root@CentOS 7 ~]# yum -y install dhcp
3.2修改DHCP配置文件
[root@CentOS 7 ~]# cat /etc/dhcp/dhcpd.conf
subnet 172.16.1.0 netmask 255.255.255.0 {
range 172.16.1.100 172.16.1.199; ---可分配的IP地址池
option subnet-mask 255.255.255.0; ---子網掩碼
default-lease-time 21600; ---默認deIP租用期限
max-lease-time 43200; ---最大限制的IP租用期限
next-server 172.16.1.201; ---告知客戶端TFTP服務器的IP
filename "/pxelinux.0"; ---告知客戶端從TFTP根目錄下載pexlinux.0
}
3.3啟動服務
[root@CentOS 7 ~]# systemctl start dhcpd
4.部署TFTP服務
4.1安裝tfpt
yum install -y tftp-server
4.2掛在系統鏡像
mkdir -p /var/www/html/CentOS7
mount /dev/cdrom /var/www/html/CentOS7
4.3從鏡像中找到相關的配置文件
cp -a /var/www/html/CentOS7/isolinux/* /var/lib/tftpboot
mkdir -p /var/lib/tftpboot/pxelinux.cfg
cp /var/www/html/CentOS7/isolinux/isolinux.cfg /var/lib/tftpboot/pexlinux.cfg/default-lease-time
4.4編輯default文件(PXE引導文件)
cat /var/lib/tftpboot/pxelinux.cfg/default
default ks
prompt 0
label ks
kernel vmlinuz
append initrd=initrd.img ks=http://172.16.1.201/ks_config/CentOS7-ks.cfg net.ifnames=0 biosdevname=0 ksdevice=eth1
4.6啟動tftp服務
systemctl start ftfp.socket
5.部署HTTP服務
5.1安裝http
yum -y install httpd
5.2編寫KS文件
cat /var/www/html/ks_config/CentOS7-ks.cfg
# Kickstart Configurator for CentOS 7 by fengyuu
install ---安裝
url --url="http://172.16.1.201/CentOS7/" ---系統文件地址
text ---文本界面安裝
lang en_US.UTF-8 ---語言
keyboard us ---鍵盤
zerombr ---清空mbr
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet" ---引導加載程序參數
network --bootproto=static --device=eth0 --gateway=10.0.0.254 --ip=10.0.0.7 --nameserver=223.5.5.5 --netmask=255.255.255.0 --activate ---eth0網絡配置
network --bootproto=static --device=eth1 --ip=172.16.1.7 --netmask=255.255.255.0 --activate ---eth1網絡配置
network --hostname=Cobbler ---主機名
#network --bootproto=dhcp --device=eth1 --onboot=yes --noipv6 --hostname=CentOS7
timezone --utc Asia/Shanghai ---時區
authconfig --enableshadow --passalgo=sha512 ---驗證配置
rootpw --iscrypted $6$X20eRtuZhkHznTb4$dK0BJByOSAWSDD8jccLVFz0CscijS9ldMWwpoCw/ZEjYw2BTQYGWlgKsn945fFTjRC658UXjuocwJbAjVI5D6/ ---root密碼(123456),使用grub-crypt生成
clearpart --all --initlabel ---清空分區
part /boot --fstype xfs --size 1024 ---分區/boot
part swap --size 1024 ---分區swap
part / --fstype xfs --size 1 --grow ---分區
firstboot --disable ---關閉一系列服務
selinux --disabled
firewall --disabled
logging --level=info ---日誌記錄級別
reboot ---重啟
%packages ---包組
@^minimal
@compat-libraries
@debugging
@development
tree
nmap
sysstat
lrzsz
dos2unix
telnet
wget
vim
bash-completion
%end
%post ---安裝完執行命令
systemctl disable postfix.service
%end --- 結束
5.3啟動httpd服務
systemctl start httpd.service
5.4本地檢查
curl http://172.16.1.201/CentOS7
6.無人值守安裝
CentOS 7部署PXE+kickstart無人值守安裝操作系統