1. 程式人生 > 實用技巧 >Kickstart 半自動化安裝CentOS系統及pxe安裝雙系統centos6、centos7

Kickstart 半自動化安裝CentOS系統及pxe安裝雙系統centos6、centos7

實驗一:使用 kickstart 半自動化安裝CentOS系統

1製作應答檔案

vim ks7.cfg
install
xconfig  --startxonboot
keyboard --vckeymap=us --xlayouts='us'
rootpw --iscrypted $1$bpNEv8S5$lK.CjNkf.YCpFPHskSNiN0
url --url="http://10.0.0.8/centos/7/os/x86_64"
lang en_US
auth  --useshadow  --passalgo=sha512
text
firstboot --enable
selinux --disabled
skipx
services 
--disabled="chronyd" ignoredisk --only-use=sda install xconfig --startxonboot keyboard --vckeymap=us --xlayouts='us' install xconfig --startxonboot keyboard --vckeymap=us --xlayouts='us' rootpw --iscrypted $6$0V7M8ctDRIVNIUTw$uQZ2EtfbtgpaW1MRS3CCMvt9Z145BUlYHchG4wlNCXSFAnm3W81twhWJhNQjl0HAPAxYq0I7lwJThaYkTRXNk0 url
--url="http://10.0.0.8/centos/7/os/x86_64" lang en_US auth --useshadow --passalgo=sha512 text firstboot --enable selinux --disabled skipx ignoredisk --only-use=sda firewall --disabled network --bootproto=dhcp --device=ens33 reboot timezone Asia/Shanghai --nontp bootloader --append="crashkernel=auto" --location=mbr --boot-drive=sda zerombr clearpart
--all --initlabel part / --fstype="xfs" --ondisk=sda --size=102400 part /boot --fstype="xfs" --ondisk=sda --size=1024 part swap --fstype="swap" --ondisk=sda --size=2048 part /data --fstype="xfs" --ondisk=sda --size=51200 %packages @^minimal vim-enhanced wget curl tree %end %post useradd wang echo centos | passwd --stdin wang %end

2.製作安裝網路源

[root@centos7 ~]#yum -y install httpd;systemctl enable --now httpd

[root@centos7 ~]#mkdir -pv /var/www/html/centos/7/os/x86_64
mkdir: created directory ‘/var/www/html/centos’
mkdir: created directory ‘/var/www/html/centos/7mkdir: created directory ‘/var/www/html/centos/7/os’
mkdir: created directory ‘/var/www/html/centos/7/os/x86_64’

[root@centos7 ~]#mount /dev/sr0 /var/www/html/centos/7/os/x86_64
mount: /dev/sr0 is write-protected, mounting read-only

[root@centos7 ~]#ll /var/www/html/centos/7/os/x86_64
total 1666
-rw-rw-r-- 1 root root      14 Apr 22 01:15 CentOS_BuildTag
drwxr-xr-x 3 root root    2048 Apr 21 02:00 EFI
-rw-rw-r-- 3 root root     227 Aug 30  2017 EULA
-rw-rw-r-- 3 root root   18009 Dec 10  2015 GPL
drwxr-xr-x 3 root root    2048 Apr 21 02:00 images
drwxr-xr-x 2 root root    2048 Apr 21 02:00 isolinux
drwxr-xr-x 2 root root    2048 Apr 21 02:00 LiveOS
drwxr-xr-x 2 root root 1667072 Apr 21 01:42 Packages
drwxr-xr-x 2 root root    4096 Apr 22 07:37 repodata
-rw-rw-r-- 3 root root    1690 Dec 10  2015 RPM-GPG-KEY-CentOS-7
-rw-rw-r-- 3 root root    1690 Dec 10  2015 RPM-GPG-KEY-CentOS-Testing-7
-r--r--r-- 1 root root    2883 Apr 22 08:55 TRANS.TBL

[root@centos7 ~]#mkdir /var/www/html/ksdir
[root@centos7 ~]#cp ks7.cfg /var/www/html/ksdir

3.安裝一個新系統

4.安裝完成驗證分割槽和賬戶

實驗二:實現pxe安裝雙系統centos6、centos7

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 ~]#vim /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp-server/dhcpd.conf.example
#   see dhcpd.conf(5) man page
#
option domain-name "magedu.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.100 10.0.0.200;
  option routers 10.0.0.2;
  next-server 10.0.0.8;
  filename "pxelinux.0";
}

[root@centos8 ~]#systemctl start dhcpd

3.準備yum 源和相關目錄

[root@centos8 ~]#mkdir -pv /var/www/html/centos/{6,7}/os/x86_64/
mkdir: created directory '/var/www/html/centos'
mkdir: created directory '/var/www/html/centos/6'
mkdir: created directory '/var/www/html/centos/6/os'
mkdir: created directory '/var/www/html/centos/6/os/x86_64/'
mkdir: created directory '/var/www/html/centos/7'
mkdir: created directory '/var/www/html/centos/7/os'
mkdir: created directory '/var/www/html/centos/7/os/x86_64/'

[root@centos8 ~]#mount /dev/sr0 /var/www/html/centos/7/os/x86_64/
mount: /var/www/html/centos/7/os/x86_64: WARNING: device write-protected, mounted read-only.
[root@centos8 ~]#ll /var/www/html/centos/7/os/x86_64/
total 1666
-rw-rw-r-- 1 root root      14 Apr 22 01:15 CentOS_BuildTag
drwxr-xr-x 3 root root    2048 Apr 21 02:00 EFI
-rw-rw-r-- 3 root root     227 Aug 30  2017 EULA
-rw-rw-r-- 3 root root   18009 Dec 10  2015 GPL
drwxr-xr-x 3 root root    2048 Apr 21 02:00 images
drwxr-xr-x 2 root root    2048 Apr 21 02:00 isolinux
drwxr-xr-x 2 root root    2048 Apr 21 02:00 LiveOS
drwxr-xr-x 2 root root 1667072 Apr 21 01:42 Packages
drwxr-xr-x 2 root root    4096 Apr 22 07:37 repodata
-rw-rw-r-- 3 root root    1690 Dec 10  2015 RPM-GPG-KEY-CentOS-7
-rw-rw-r-- 3 root root    1690 Dec 10  2015 RPM-GPG-KEY-CentOS-Testing-7
-r--r--r-- 1 root root    2883 Apr 22 08:55 TRANS.TBL

[root@centos8 ~]#mount /dev/sr1 /var/www/html/centos/6/os/x86_64/
mount: /var/www/html/centos/6/os/x86_64: WARNING: device write-protected, mounted read-only.
[root@centos8 ~]#ll /var/www/html/centos/6/os/x86_64/
total 566
-r--r--r-- 2 root root     14 Jun 29  2018 CentOS_BuildTag
dr-xr-xr-x 3 root root   2048 Jun 30  2018 EFI
-r--r--r-- 2 root root    212 Nov 27  2013 EULA
-r--r--r-- 2 root root  18009 Nov 27  2013 GPL
dr-xr-xr-x 3 root root   2048 Jun 30  2018 images
dr-xr-xr-x 2 root root   2048 Jun 30  2018 isolinux
dr-xr-xr-x 2 root root 536576 Jun 30  2018 Packages
-r--r--r-- 2 root root   1363 Jun 29  2018 RELEASE-NOTES-en-US.html
dr-xr-xr-x 2 root root   4096 Jun 30  2018 repodata
-r--r--r-- 2 root root   1706 Nov 27  2013 RPM-GPG-KEY-CentOS-6
-r--r--r-- 2 root root   1730 Nov 27  2013 RPM-GPG-KEY-CentOS-Debug-6
-r--r--r-- 2 root root   1730 Nov 27  2013 RPM-GPG-KEY-CentOS-Security-6
-r--r--r-- 2 root root   1734 Nov 27  2013 RPM-GPG-KEY-CentOS-Testing-6
-r--r--r-- 1 root root   3380 Jun 30  2018 TRANS.TBL

4.準備kickstart檔案

[root@centos8 ~]#mkdir /var/www/html/ks/
[root@centos8 ~]#vim /var/www/html/ks/centos6.cfg
install
text
reboot
url --url=http://10.0.0.8/centos/6/os/x86_64/
lang en_US.UTF-8
keyboard us
network --onboot yes --device eth0 --bootproto dhcp  --noipv6
rootpw  --iscrypted $6$j9YhzDUnQVnxaAk8$qv7rkMcPAEbV5yvwsP666DXWYadd3jYjkA9fpxAo9qYotjGGBUclCGoP1TRvgHBpqgc5n0RypMsPTQnVDcpO01
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 wang 
echo magedu | passwd --stdin wang &> /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/ks/centos7.cfg
install
xconfig --startxonboot
keyboard --vckeymap=us --xlayouts='us'
rootpw --iscrypted $6$0V7M8ctDRIVNIUTw$uQZ2EtfbtgpaW1MRS3CCMvt9Z145BUlYHchG4wlNCXSFAnm3W81twhWJhNQjl0HAPAxYq0I7lwJThaYkTRXNk0
url --url="http://10.0.0.8/centos/7/os/x86_64"
lang en_US
auth --useshadow --passalgo=sha512
text
firstboot --enable
selinux --disabled
skipx
ignoredisk --only-use=sda
firewall --disabled
network --bootproto=dhcp --device=eth0
reboot
timezone Asia/Shanghai --nontp
bootloader --append="crashkernel=auto" --location=mbr --boot-drive=sda
zerombr
clearpart --all --initlabel
part / --fstype="xfs" --ondisk=sda --size=102400
part /boot --fstype="xfs" --ondisk=sda --size=1024
part swap --fstype="swap" --ondisk=sda --size=2048
part /data --fstype="xfs" --ondisk=sda --size=51200

%packages
@^minimal
vim-enhanced
wget
curl
tree
%end
%post
useradd wang
echo centos | passwd --stdin wang
%end

5.準備PXE啟動相關檔案

[root@centos8 ~]#mkdir /var/lib/tftpboot/centos{6,7}

[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 /usr/share/syslinux/{pxelinux.0,menu.c32} /var/lib/tftpboot/

[root@centos8 ~]#mount /dev/sr2 /misc
mount: /misc: WARNING: device write-protected, mounted read-only.
[root@centos8 ~]#ll /misc
total 12
dr-xr-xr-x 4 root root 2048 Jan  4  2020 AppStream
dr-xr-xr-x 4 root root 2048 Jan  4  2020 BaseOS
dr-xr-xr-x 3 root root 2048 Jan  4  2020 EFI
dr-xr-xr-x 3 root root 2048 Jan  4  2020 images
dr-xr-xr-x 2 root root 2048 Jan  4  2020 isolinux
-r--r--r-- 1 root root   87 Jan  4  2020 media.repo
-r--r--r-- 1 root root  664 Jan  4  2020 TRANS.TBL

[root@centos8 ~]#cp /misc/isolinux/{ldlinux.c32,libcom32.c32,libutil.c32} /var/lib/tftpboot/

[root@centos8 ~]#vim /var/lib/tftpboot/pxelinux.cfg/default
default menu.c32
timeout 600
menu title Install CentOS Linux
 
label linux7
  menu label Auto Install CentOS Linux ^7
  kernel centos7/vmlinuz
  append initrd=centos7/initrd.img ks=http://10.0.0.8/ks/centos7.cfg
 
label linux6
  menu label Auto Install CentOS Linux ^6
  kernel centos6/vmlinuz
  append initrd=centos6/initrd.img ks=http://10.0.0.8/ks/centos6.cfg

label local
  menu default
  menu label Boot from ^local drive
  localboot 0xffff

[root@centos8 ~]#tree /var/lib/tftpboot
/var/lib/tftpboot
├── centos6
│   ├── initrd.img
│   └── vmlinuz
├── centos7
│   ├── initrd.img
│   └── vmlinuz
├── ldlinux.c32
├── libcom32.c32
├── libutil.c32
├── menu.c32
├── pxelinux.0
└── pxelinux.cfg
    └── default

3 directories, 10 files

6.安裝系統centos6

7.安裝系統centos7