kickstart半自動安裝centos系統與pxe自動安裝centos系統

發表於2020-09-12

一、kickstart半自動安裝centos系統

關閉防火牆,關閉selinux使用system-config-kickstart生成kickstart配置檔案,啟動xmanger-Passive

[root@centos7 ~]#export DISPLAY=10.0.0.1:0.0

[root@centos7 ~]#system-config-kickstart

即可進入kickstart配置檔案圖形終端,使用system-config-kickstart生成kickstart配置檔案

步驟:

1、Basic Configuration

#在kickstart應答檔案中會生成以下格式
#platform=x86, AMD64, or Intel EM64T                     #Default Language預設語言                                 lang en_US                                               # Keyboard 鍵盤 keyboard 'us' # timezone 時區(勾選了"Use UTC clock" 會追加[--isUtc]) timezone Asia/Shanghai # Root password rootpw --iscrypted $1$DBk7xfJp$Agxd303XUAfRKIf7gB8DG/ ==================================================== #Advanced Configuration       #勾選就有,不勾沒有 ====================================================
# Reboot after installation reboot # Use text mode install text

2、Installation Method

#在kickstart應答檔案中會生成以下格式
# Install OS instead of upgrade
install
# Upgrade existing installation
upgrade
# Use network installation #如果是光碟就會生成cdrom
url --url="http://(伺服器ip)/Centos/7/os/x86_64"

3、Boot Loader Options

#在kickstart應答檔案中會生成以下格式
# System bootloader configuration
 bootloader --append="ker" --location=mbr --password="123"
#append是核心引數,location是bootloader安裝位置,password是GRUB密碼

4、Partition Information

#在kickstart應答檔案中會生成以下格式
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --linux --initlabel
# Disk partitioning information
part / --fstype="xfs" --size=10240
part /boot --fstype="ext4" --size=1024
part swap --fstype="swap" --size=2048

5、 Network Configuration

#在kickstart應答檔案中會生成以下格式
# Network information
network  --bootproto=dhcp --device=ens33

6、Authentication

#在kickstart應答檔案中會生成以下格式
# System authorization information
auth  --useshadow  --passalgo=md5

7、Firewall Configuration

#在kickstart應答檔案中會生成以下格式
# SELinux configuration
selinux  --disabled
# Firewall configuration
firewall  --disabled

8、Display Configuration

#在kickstart應答檔案中會生成以下格式
# Do not configure the X Window System (如果選了安圖形則沒有這個介面)
skipx  
# Run the Setup Agent on first boot
firstboot --enable

9、Package Selection

如果包安裝的介面不出現可選的包資訊,那麼需要修改yum倉庫配置檔案
[root@centos ~]#vim /etc/yum.repos.d/***.repo
[development]
#把原來"[]"內的內容改成development,其它不變
#選了什麼包就會生成對應的檔案資訊
#在kickstart應答檔案中會生成以下格式
%packages
@development
-byacc
-indent
-intltool
-patchutils
-rcs
-subversion-swig
-systemtap
%end #(必須以%end結尾)

10、Pre-Installation Script

#在kickstart應答檔案中會生成以下格式
%pre    #(安裝前指令碼我一般都不寫)
echo i am pre 
%end

11、Post-Installation Script

#在kickstart應答檔案中會生成以下格式
%post --nochroot
#可以再安裝後指令碼中建立使用者或建立yum源等等等等
useradd zxc
echo 123456 |passwd --stdin zxc &> /dev/null
mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/* /etc/yum.repos.d/bak
cat > /etc/yum.repos.d/base.repo <<EOF
[base]
name=base
baseurl=file:///misc/cd
gpgcheck=0
EOF

%end

最後生成的應答檔案如下(例如檔名ks7.cfg)

[root@centos7 ~]#vim  ks7.cfg
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --iscrypted ...................(加密的密碼)................
# System language
lang en_US
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use text mode install
text
firstboot --disable
# SELinux configuration
selinux --disabled
 # Firewall configuration
firewall --disabled
# Network information
network  --bootproto=dhcp --device=ens33
#network  --hostname=centos7  #(此項為指定主機名可加可不加)
# Reboot after installation
reboot
# System timezone
timezone Asia/Shanghai
# Use network installation
url --url="http://(伺服器ip)/centos/7/os/x86_64/"
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
ignoredisk --only-use=sda
# Disk partitioning information
part / --fstype="xfs" --size=10240
part /boot --fstype="ext4" --size=1024
part swap --fstype="swap" --size=2048
 %post
useradd zxc
e
cho 123456|passwd --stdin zxc
%end
之後把該檔案放到伺服器上如:/var/www/html/k/下
可以將定製安裝光碟,並結合kickstart實現基於光碟啟動的半自動化安裝        #(嫌麻煩也可以去阿里源下載centos7的netinstall光碟 )

步驟

[root@centos7 ~]#mkdir –pv /data/myiso
[root@centos7 ~]#cp -r /mnt/isolinux/ /data/myiso/
[root@centos7 ~]#vim /data/myiso/isolinux/isolinux.cfg
label linux
 menu label ^Auto Install CentOS Linux 7
 kernel vmlinuz
 append initrd=initrd.img quiet ks=http://10.0.0.18/k/ks7.cfg
label rescue
 menu label ^Rescue a CentOS Linux system
 kernel vmlinuz
 append initrd=initrd.img inst.repo=http://10.0.0.18/centos/7/os/x86_64/ rescue 
quiet
label local
 menu default
 menu label Boot from ^local drive
 localboot 0xffff
[root@centos7 ~]#cp /root/myks.cfg /data/myiso/
[root@centos7 ~]#dnf -y install mkisofs
[root@centos7 ~]#mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --bootinfo-table -V "CentOS 8.0 x86_64 boot" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/boot.iso /data/myiso/
#從而生成boot.iso光碟

把生成的光碟boot.iso映象燒錄到U盤,插到一臺新機器上

在啟動選單介面,任意選中一項安裝方法,按ESC鍵進入boot:介面

 

 輸入linux   ks=http://伺服器ip/k/ks7.cfg   ip=dhcp  然後回車

 

 然後您可以出去抽個煙,溜達溜達回來後應該就已經安裝好了

 

二、pxe自動安裝centos系統

關閉防火牆和SELINUX,DHCP伺服器靜態IP

(溫馨提示:如果同時安裝數量太多可能會發生意想不到的事情呦!)

1、安裝相關軟體包並啟動

[root@centos8 ~]#dnf -y install dhcp-server tftp-server httpd syslinux-nonlinux 
[root@centos8 ~]#systemctl enable --now httpd tftp dhcpd

 2、配置DHCP服務

[root@centos8 ~]#cp /usr/share/doc/dhcp-server/dhcpd.conf.example 
/etc/dhcp/dhcpd.conf
[root@centos8 ~]#vim /etc/dhcp/dhcpd.conf 
option domain-name "example.com";
option domain-name-servers 180.76.76.76,223.6.6.6;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet 10.0.0.0 netmask 255.255.255.0 {
 range 10.0.0.1 10.0.0.200;
 option routers 10.0.0.1;
 next-server 10.0.0.100;
 filename "pxelinux.0"; }
[root@centos8 ~]#systemctl start dhcpd

3、準備yum 源和相關目錄

[root@centos8 ~]#mkdir -pv /var/www/html/centos/{6,7,8}/os/x86_64/ 
[root@centos8 ~]#mount /dev/sr0 /var/www/html/centos/6/os/x86_64/
[root@centos8 ~]#mount /dev/sr1 /var/www/html/centos/7/os/x86_64/
[root@centos8 ~]#mount /dev/sr2 /var/www/html/centos/8/os/x86_64/

4、準備kickstart檔案

[root@centos8 ~]#mkdir /var/www/html/k/         #應答檔案可根據需求可自行更改,也可參考“一”生成的檔案
[root@centos8 ~]#vim /var/www/html/k/ks6.cfg  
install
text
reboot
url --url=http://10.0.0.18/centos/6/iso/x86_64/
lang en_US.UTF-8
keyboard us
network --onboot yes --device eth0 --bootproto dhcp  --noipv6
rootpw --iscrypted $6$loeMb/DwOAMWO9MT$lvxCJFWGgvkfhk4u3mez23BCzNS4bv.yAMcObpH/zzzwoJ.kJriKpyh1YG7gBQYDfFXr8UOV9dco2lS54ag/50
firewall --disabled
authconfig --enableshadow --passalgo=sha512
selinux --disabled
timezone Asia/Shanghai
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
zerombr
clearpart --all --initlabel
part /boot --fstype=ext4 --size=1024
part / --fstype=ext4 --size=50000
part /data --fstype=ext4 --size=30000
part swap --size=2048
%packages
@core
@server-policy
@workstation-policy
autofs
vim-enhanced
%end
%post
useradd zxc
echo asd9420 | passwd --stdin zxc &> /dev/null
mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/* /etc/yum.repos.d/bak
cat > /etc/yum.repos.d/base.repo <<EOF
[base]
name=base
baseurl=file:///misc/cd
gpgcheck=0
EOF
%end
================================================================================ [root@centos8 ~]#vim /var/www/html/k/ks7.cfg install xconfig --startxonboot keyboard --vckeymap=us --xlayouts='us' rootpw --iscrypted $6$xI3rPwQBFxqTNl1M$Imk2HHxf3jTIy1qVzBn/DAYX6RJLbc2amakegO/fQgmQ.6NJBEOBufkHx2B10ZXfScr/SExe.j5j1BDfqM4J21 url --url="
http://10.0.0.18/centos/7/iso/x86_64" lang en_US.UTF-8 auth --useshadow --passalgo=sha512 text firstboot --enable selinux --disabled skipx services --disabled="chronyd" ignoredisk --only-use=sda firewall --disabled network --bootproto=dhcp --device=ens33 reboot timezone Asia/Shanghai --nontp autopart --type=lvm zerombr clearpart --all --initlabel %post useradd zxc echo asd9420 | passwd --stdin zxc & >/dev/null %end %packages @^minimal vim-enhanced %end
======================================================================================
[root@centos8 ~]#vim /var/www/html/k/ks8.cfg ignoredisk --only-use=sda zerombr clearpart --all --initlabel text url --url=
http://10.0.0.18/centos/8/iso/x86_64 keyboard --vckeymap=cn --xlayouts='cn' lang zh_CN.UTF-8 firewall --disabled network --bootproto=dhcp --device=ens160 --ipv6=auto --activate network --hostname=CentOS8 rootpw --iscrypted $6$loeMb/DwOAMWO9MT$lvxCJFWGgvkfhk4u3mez23BCzNS4bv.yAMcObpH/zzzwoJ.kJriKpyh1YG7gBQYDfFXr8UOV9dco2lS54ag/50 firstboot --enable skipx services --disabled="chronyd" timezone Asia/Shanghai --isUtc --nontp user --name=zxc --password=$6$L/YFB8zwDbSjnHQK$vkKhMNIKIqZKHsvPzUaud.BuKYKwnaHUl.4lbA9Nkesbjbpdec6eNi5j3msQ285LUx7.3kgM5AirHz/4Fvjut. --iscrypted --gecos="zxc" selinux --disabled reboot autopart --type=lvm %packages @^minimal-environment @container-management @legacy-unix @network-server @rpm-development-tools @security-tools @system-tools kexec-tools %end %addon com_redhat_kdump --enable --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 %post useradd zxc echo asd9420 | passwd --stdin zxc & >/dev/null %end

5、準備PXE啟動相關檔案

[root@centos8 ~]#mkdir /var/lib/tftpboot/centos{6,7,8}
#準備CentOS6,7,8各自的核心相關檔案
[root@centos8 ~]#cp /var/www/html/centos/6/os/x86_64/isolinux/{vmlinuz,initrd.img}  /var/lib/tftpboot/centos6
[root@centos8 ~]#cp /var/www/html/centos/7/os/x86_64/isolinux/{vmlinuz,initrd.img}  /var/lib/tftpboot/centos7
[root@centos8 ~]#cp /var/www/html/centos/8/os/x86_64/isolinux/{vmlinuz,initrd.img}  /var/lib/tftpboot/centos8
[root@centos8 ~]#cp /usr/share/syslinux/{pxelinux.0,menu.c32} /var/lib/tftpboot/ 
#以下三個檔案是CentOS8安裝所必須檔案,CentOS6,7則不需要 [root@centos8
~]#cp /var/www/html/centos/8/os/x86_64/isolinux/{ldlinux.c32,libcom32.c32,libutil.c32} /var/lib/tftpboot/ #生成安裝選單檔案 [root@centos8 ~]#mkdir /var/lib/tftpboot/pxelinux.cfg/ [root@centos8 ~]#vim /var/lib/tftpboot/pxelinux.cfg/default
default menu.c32
timeout 60

menu title CentOS Linux 6\7\8

label linux8
  menu label Auto Install CentOS Linux ^8
  kernel centos8/vmlinuz
  append initrd=centos8/initrd.img quiet ks=http://10.0.0.18/k/ks8.cfg

label linux7
  menu label Auto Install CentOS Linux ^7
  kernel centos7/vmlinuz
  append initrd=centos7/initrd.img quiet ks=http://10.0.0.18/k/ks7.cfg

label linux6
  menu label Auto Install CentOS Linux ^6
  kernel centos6/vmlinuz
  append initrd=centos6/initrd.img quiet ks=http://10.0.0.18/k/ks6.cfg


label rescue #參考這個也可以生成6,7的救援選單,不生成也不影響啟動
  menu label ^Rescue a CentOS Linux system
  kernel centos8/vmlinuz
  append initrd=centos8/initrd.img inst.repo=http://10.0.0.18/centos/8/iso/x86_64/ rescue   quiet
      
label local
  menu default
  menu label Boot from ^local drive
  localboot 0xffff

6、測試客戶端基於PXE實現自動安裝

準備一臺新主機,v>

設定網路卡引導,可看到看啟動選單,並實現自動安裝centos(或6、7、8),

 

 之後選擇對應的對應的版本回車就行

 

 

 

 

 

 

相關文章