1. 程式人生 > >CentOS 7部署PXE+kickstart無人值守安裝操作系統

CentOS 7部署PXE+kickstart無人值守安裝操作系統

楓雨

1.簡介


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無人值守安裝操作系統