天天看點

Kickstart無人值守批量自動安裝CentOS系統1.安裝配置dhcp服務2.安裝配置tftp服務3.安裝配置http服務以及挂載ISO至HTTP站點目錄4.安裝syslinux并且複制所有相關啟動檔案到網絡引導啟動的根路徑下5.建立配置Kickstart自動應答檔案6.配置引導啟動菜單7.安裝測試

1.安裝配置dhcp服務

yum install dhcp -y
vim /etc/dhcp/dhcpd.conf

#新增一個子網資訊

subnet 10.0.0.0 netmask 255.255.255.0 {
  range 10.0.0.10 10.0.0.100;          
  option domain-name-servers 223.5.5.5;
  option routers 10.0.0.2;
  option broadcast-address 10.0.0.255;
  default-lease-time 600;
  max-lease-time 7200;
  next-server 10.0.0.4;
  filename "pxelinux.0";
}

/etc/init.d/dhcpd start 
systemctl enable dhcpd
netstat -lntup |grep 67
           
特殊參數next-server 和 filename說明

filename:網絡引導程式檔案名稱

next-server: tftp服務所在IP位址

2.安裝配置tftp服務

yum install tftp-server -y
vim /etc/xinetd.d/tftp
#主要修改disable,改為no
service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /var/lib/tftpboot
        disable                 = no
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}

service tftp-server start 
systemctl enable tftp-server
netstat -lntup |grep 69
           
**server_args : /var/lib/tftpboot **該路徑為PXE網絡引導啟動的根路徑

3.安裝配置http服務以及挂載ISO至HTTP站點目錄

yum install httpd -y
systemctl start httpd
systemctl enable httpd
#上傳ISO至根目錄
[[email protected] ~]# mkdir -p /var/www/html/pub
[[email protected] ~]# mount /root/CentOS-7-x86_64-DVD-1804.iso  /var/www/html/pub/
mount: /dev/loop0 is write-protected, mounting read-only
[[email protected] ~]# df -Th
Filesystem            Type      Size  Used Avail Use% Mounted on
/dev/mapper/rhel-root xfs        36G  7.4G   29G  21% /
devtmpfs              devtmpfs  2.0G     0  2.0G   0% /dev
tmpfs                 tmpfs     2.0G   80K  2.0G   1% /dev/shm
tmpfs                 tmpfs     2.0G  8.9M  2.0G   1% /run
tmpfs                 tmpfs     2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/sda1             xfs       497M  107M  391M  22% /boot
/dev/loop0            iso9660   4.2G  4.2G     0 100% /var/www/html/pub
           

4.安裝syslinux并且複制所有相關啟動檔案到網絡引導啟動的根路徑下

yum install syslinux -y
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

cp -a /var/www/html/pub/isolinux/* /var/lib/tftpboot/
           

5.建立配置Kickstart自動應答檔案

5.1參考其他系統的ks.cfg檔案,再加已修改使用

紅帽系的系統可以參考根路徑下的ks檔案,這個檔案是安裝完系統後,自動生成的記錄檔案,預設在/root/目錄下

#建立Kickstart應答檔案存放目錄:
 mkdir -p /var/www/html/ks
           
[[email protected] ~]# cat /root/anaconda-ks.cfg 
#platform=86, AMD64, or Intel EM64T

#version=DEVEL
# System authorization information
auth --useshadow  --passalgo=sha512
# Install OS instead of upgrade
install
# Use network installation
url --url="http://10.0.0.4/pub"
# Use graphical install
graphical
# Firewall configuration
firewall --disabled
# Run the Setup Agent on first boot
firstboot --enable
ignoredisk --only-use=sda
# Keyboard layouts
# old format: keyboard us
# new format:
keyboard --vckeymap=us --xlayouts='us'
# System language
lang en_US.UTF-8

# Network information
network  --bootproto=dhcp --device=None --activate
network  --hostname=localhost.localdomain
# Reboot after installation
reboot
# Root password
rootpw --iscrypted $1$Bj2DiIyk$NoDoZmT1i2fLwrQrL/VGE0
# SELinux configuration
selinux --disabled
# System services
services --enabled="chronyd"
# System timezone
timezone Asia/Shanghai
# System bootloader configuration
bootloader --location=mbr --boot-drive=sda
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --asprimary --fstype="xfs" --ondisk=sda --size=512
part pv.92 --asprimary --fstype="lvmpv" --ondisk=sda --size=60927
volgroup vg0 --pesize=4096 pv.92
logvol swap  --fstype="swap" --size=1024 --name=swap --vgname=vg0
logvol /  --fstype="xfs" --grow --size=1024 --name=root --vgname=vg0

%packages
@^minimal
@core
chrony

%end

%addon com_redhat_kdump --disable --reserve-mb='auto'

%end

%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end
           
該reference檔案是CentOS7.5 minial機器下生成的,個人感覺磁盤分區那一塊還不夠完善,若要使用還需要修改
#磁盤邏輯卷分區reference參考如下:
clearpart --all --initlabel
part /boot --fstype=xfs  --ondisk=sda --size=512  --asprimary
part pv.1 --grow --fstype=lvmpv --ondisk=sda  --size=1 --asprimary 
volgroup vg0  --pesize=4096  pv.1
logvol /    --fstype=xfs --grow --name=root --size=1024 --vgname=vg0 
logvol swap --fstype="swap"      --name=swap --size=1024 --vgname=vg0
           

ondisk : 強制在特定磁盤上建立分區

asprimary : 強制将分區自動配置設定為主分區,否則分區失敗

grow : 告訴邏輯卷增長以填充可用空間,如果沒有maxsize最大值限制,可自動增長至最大

5.2利用CentOS提供的一個圖形化配置工具system-config-kickstart生成

啟動工具指令:

system-config-kickstart
           
Kickstart無人值守批量自動安裝CentOS系統1.安裝配置dhcp服務2.安裝配置tftp服務3.安裝配置http服務以及挂載ISO至HTTP站點目錄4.安裝syslinux并且複制所有相關啟動檔案到網絡引導啟動的根路徑下5.建立配置Kickstart自動應答檔案6.配置引導啟動菜單7.安裝測試
Perform installation in text mode(graphical is default) : 預設不勾選安裝的是graphical圖形界面

Pre-installation script表示安裝前的腳本設定,可用參數很少,一般不使用

Post-installation Script 表示安裝後的腳本設定,可用于安裝完成後的系統初始化設定

因為用kickstart圖形化配置工具會有個别細節參數沒有涉及到,類似分區等等,是以我這裡采用的是第三種方式參考官方文檔配置

5.3參考Kickstart官方文檔手動配置

Kickstart官方文檔連結

最小化安裝
[[email protected] ~]# cat /var/www/html/ks/ks.cfg 
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'# Reboot after installation
reboot
# Root password
rootpw --iscrypted $1$Bj2DiIyk$NoDoZmT1i2fLwrQrL/VGE0
# System timezone
timezone Asia/Shanghai
# Use network installation
url --url="http://10.0.0.4/pub"
# System language
lang en_US
# Firewall configuration
firewall --disabled
# Network information
network  --bootproto=dhcp --device=None
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use graphical install
graphical
firstboot --enable
# SELinux configuration
selinux --disabled

# System bootloader configuration
bootloader --location=mbr --boot-drive=sda
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel 
# Disk partitioning information
#part /boot --fstype="xfs" --size=300
#part / --fstype="xfs" --size=20480
#part swap --fstype="swap" --size=2048
part /boot --fstype=xfs  --ondisk=sda --size=512  --asprimary
part pv.1 --grow --fstype=lvmpv --ondisk=sda  --size=1 --asprimary 
volgroup vg0  --pesize=4096  pv.1
logvol /    --fstype=xfs --grow --name=root --size=1024 --vgname=vg0 
logvol swap --fstype="swap"      --name=swap --size=1024 --vgname=vg0

%packages
@^minimal
@core

%end

%addon com_redhat_kdump --disable --reserve-mb='auto'

%end

%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end
           

6.配置引導啟動菜單

[[email protected] ~]# mkdir -p /var/www/html/ks
[[email protected] ~]# mkdir -p /var/lib/tftpboot/pxelinux.cfg
[[email protected] ~]# cp /var/www/html/pub/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

[[email protected] ~]# vim /var/lib/tftpboot/pxelinux.cfg/default 
##下面配置檔案選擇其中一種模式編寫##

####################簡化版#########################
default linux
prompt 0
label linux
  kernel vmlinuz
  append initrd=initrd.img ks=http://10.0.0.4/ks/ks.cfg

################支援多選擇版#########################
xxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxx
#直接模仿label修改增加一個新label即可,注意kernel和initrd引導檔案相對于根路徑的路徑問題
label linux
  menu label ^Install CentOS 7
  kernel vmlinuz
  append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet
xxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxx
           

注意:拷貝後的啟動引導菜單名稱需為default,否則網絡引導安裝系統時識别不到該菜單

特殊參數說明

  • timeout : 逾時時間
  • menu default : 預設菜單
  • kernel : 系統核心
  • initrd : 核心啟動時候解開該檔案作為根檔案系統使用
  • ks : Kickstart自動應答檔案路徑

7.安裝測試

安裝過程中…

Kickstart無人值守批量自動安裝CentOS系統1.安裝配置dhcp服務2.安裝配置tftp服務3.安裝配置http服務以及挂載ISO至HTTP站點目錄4.安裝syslinux并且複制所有相關啟動檔案到網絡引導啟動的根路徑下5.建立配置Kickstart自動應答檔案6.配置引導啟動菜單7.安裝測試
Kickstart無人值守批量自動安裝CentOS系統1.安裝配置dhcp服務2.安裝配置tftp服務3.安裝配置http服務以及挂載ISO至HTTP站點目錄4.安裝syslinux并且複制所有相關啟動檔案到網絡引導啟動的根路徑下5.建立配置Kickstart自動應答檔案6.配置引導啟動菜單7.安裝測試

注意:如果是用虛拟機做實驗,記憶體設定必須大于2GB,否則會報/dev/root/ does not found 的錯誤

Kickstart無人值守批量自動安裝CentOS系統1.安裝配置dhcp服務2.安裝配置tftp服務3.安裝配置http服務以及挂載ISO至HTTP站點目錄4.安裝syslinux并且複制所有相關啟動檔案到網絡引導啟動的根路徑下5.建立配置Kickstart自動應答檔案6.配置引導啟動菜單7.安裝測試
登入系統參考上文給定的分區reference方案檢視系統安裝後的分區卷組邏輯卷情況
part /boot --fstype=xfs  --ondisk=sda --size=512  --asprimary
part pv.1 --grow --fstype=lvmpv --ondisk=sda  --size=1 --asprimary 
volgroup vg0  --pesize=4096  pv.1
logvol /    --fstype=xfs --grow --name=root --size=1024 --vgname=vg0 
logvol swap --fstype="swap"      --name=swap --size=1024 --vgname=vg0
           
Kickstart無人值守批量自動安裝CentOS系統1.安裝配置dhcp服務2.安裝配置tftp服務3.安裝配置http服務以及挂載ISO至HTTP站點目錄4.安裝syslinux并且複制所有相關啟動檔案到網絡引導啟動的根路徑下5.建立配置Kickstart自動應答檔案6.配置引導啟動菜單7.安裝測試

繼續閱讀