关闭防火墙,SeLinux;

[root@kickstart ~]# iptables –F;systemctl disable firewalld.service
[root@kickstart ~]# setenforce 0;sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config

安装DHCP服务;

  1. [root@kickstart ~]# yum install dhcpd
  2. Loaded plugins: fastestmirror
  3. Loading mirror speeds from cached hostfile
  4. * base: mirrors.aliyun.com
  5. * extras: mirrors.aliyun.com
  6. * updates: mirrors.aliyun.com
  7. No package dhcpd available.
  8. Error: Nothing to do
  9. [root@kickstart ~]# yum install dhcp
  10. Loaded plugins: fastestmirror
  11. Loading mirror speeds from cached hostfile
  12. * base: mirrors.aliyun.com
  13. * extras: mirrors.aliyun.com
  14. * updates: mirrors.aliyun.com
  15. Resolving Dependencies
  16. --> Running transaction check
  17. ---> Package dhcp.x86_64 12:4.2.5-83.el7.centos.1 will be installed
  18. --> Processing Dependency: dhcp-libs(x86-64) = 12:4.2.5-83.el7.centos.1 for package: 12:dhcp-4.2.5-83.el7.centos.1.x86_64
  19. --> Processing Dependency: dhcp-common = 12:4.2.5-83.el7.centos.1 for package: 12:dhcp-4.2.5-83.el7.centos.1.x86_64
  20. --> Running transaction check
  21. ---> Package dhcp-common.x86_64 12:4.2.5-82.el7.centos will be updated
  22. --> Processing Dependency: dhcp-common = 12:4.2.5-82.el7.centos for package: 12:dhclient-4.2.5-82.el7.centos.x86_64
  23. ---> Package dhcp-common.x86_64 12:4.2.5-83.el7.centos.1 will be an update
  24. ---> Package dhcp-libs.x86_64 12:4.2.5-82.el7.centos will be updated
  25. ---> Package dhcp-libs.x86_64 12:4.2.5-83.el7.centos.1 will be an update
  26. --> Running transaction check
  27. ---> Package dhclient.x86_64 12:4.2.5-82.el7.centos will be updated
  28. ---> Package dhclient.x86_64 12:4.2.5-83.el7.centos.1 will be an update
  29. --> Finished Dependency Resolution
  30. Dependencies Resolved
  31. ===========================================================================================================================
  32. Package Arch Version Repository Size
  33. ===========================================================================================================================
  34. Installing:
  35. dhcp x86_64 12:4.2.5-83.el7.centos.1 updates 515 k
  36. Updating for dependencies:
  37. dhclient x86_64 12:4.2.5-83.el7.centos.1 updates 286 k
  38. dhcp-common x86_64 12:4.2.5-83.el7.centos.1 updates 177 k
  39. dhcp-libs x86_64 12:4.2.5-83.el7.centos.1 updates 133 k
  40. Transaction Summary
  41. ===========================================================================================================================
  42. Install 1 Package
  43. Upgrade ( 3 Dependent packages)
  44. Total download size: 1.1 M
  45. Is this ok [y/d/N]: y
  46. Downloading packages:
  47. Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
  48. (1/4): dhclient-4.2.5-83.el7.centos.1.x86_64.rpm | 286 kB 00:00:00
  49. (2/4): dhcp-common-4.2.5-83.el7.centos.1.x86_64.rpm | 177 kB 00:00:00
  50. (3/4): dhcp-4.2.5-83.el7.centos.1.x86_64.rpm | 515 kB 00:00:00
  51. (4/4): dhcp-libs-4.2.5-83.el7.centos.1.x86_64.rpm | 133 kB 00:00:00
  52. ---------------------------------------------------------------------------------------------------------------------------
  53. Total 4.4 MB/s | 1.1 MB 00:00:00
  54. Running transaction check
  55. Running transaction test
  56. Transaction test succeeded
  57. Running transaction
  58. Updating : 12:dhcp-libs-4.2.5-83.el7.centos.1.x86_64 1/7
  59. Updating : 12:dhcp-common-4.2.5-83.el7.centos.1.x86_64 2/7
  60. Installing : 12:dhcp-4.2.5-83.el7.centos.1.x86_64 3/7
  61. Updating : 12:dhclient-4.2.5-83.el7.centos.1.x86_64 4/7
  62. Cleanup : 12:dhclient-4.2.5-82.el7.centos.x86_64 5/7
  63. Cleanup : 12:dhcp-common-4.2.5-82.el7.centos.x86_64 6/7
  64. Cleanup : 12:dhcp-libs-4.2.5-82.el7.centos.x86_64 7/7
  65. Verifying : 12:dhcp-common-4.2.5-83.el7.centos.1.x86_64 1/7
  66. Verifying : 12:dhcp-4.2.5-83.el7.centos.1.x86_64 2/7
  67. Verifying : 12:dhcp-libs-4.2.5-83.el7.centos.1.x86_64 3/7
  68. Verifying : 12:dhclient-4.2.5-83.el7.centos.1.x86_64 4/7
  69. Verifying : 12:dhcp-common-4.2.5-82.el7.centos.x86_64 5/7
  70. Verifying : 12:dhclient-4.2.5-82.el7.centos.x86_64 6/7
  71. Verifying : 12:dhcp-libs-4.2.5-82.el7.centos.x86_64 7/7
  72. Installed:
  73. dhcp.x86_64 12:4.2.5-83.el7.centos.1
  74. Dependency Updated:
  75. dhclient.x86_64 12:4.2.5-83.el7.centos.1 dhcp-common.x86_64 12:4.2.5-83.el7.centos.1
  76. dhcp-libs.x86_64 12:4.2.5-83.el7.centos.1
  77. Complete!

配置DHCP服务;

  1. [root@kickstart ~]# cd /etc/dhcp/
  2. [root@kickstart dhcp]# ls
  3. dhclient.d dhclient-exit-hooks.d dhcpd6.conf dhcpd.conf scripts
  4. [root@kickstart dhcp]# cat dhcpd.conf
  5. #
  6. # DHCP Server Configuration file.
  7. # see /usr/share/doc/dhcp*/dhcpd.conf.example
  8. # see dhcpd.conf(5) man page
  9. #
  10. [root@kickstart dhcp]# mv dhcpd.conf dhcpd.conf0622
  11. [root@kickstart dhcp]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example dhcpd.conf
  12. [root@kickstart dhcp]# ll
  13. total 12
  14. drwxr-xr-x. 2 root root 6 Jun 10 00:09 dhclient.d
  15. drwxr-xr-x. 2 root root 28 Jun 22 10:51 dhclient-exit-hooks.d
  16. -rw-r--r-- 1 root root 120 Jun 10 00:09 dhcpd6.conf
  17. -rw-r--r-- 1 root root 3262 Jun 22 10:59 dhcpd.conf
  18. -rw-r--r-- 1 root root 117 Jun 10 00:09 dhcpd.conf0622
  19. drwxr-x--- 2 root dhcpd 28 Jun 22 10:51 scripts
  20. dhcpd.conf增加如下配置
  21. subnet 192.168.20.0 netmask 255.255.255.0 {
  22. range 192.168.20.101 192.168.20.200;
  23. option domain-name-servers ns1.internal.example.org;
  24. option domain-name "internal.example.org";
  25. option routers 192.168.20.254;
  26. option broadcast-address 192.168.20.255;
  27. default-lease-time 600;
  28. max-lease-time 7200;
  29. next-server 192.168.20.100;
  30. filename "pxelinux.0";
  31. }

开启服务,并设为开机自动启动;

  1. [root@kickstart ~]# cd /etc/dhcp/
  2. [root@kickstart dhcp]# ls
  3. dhclient.d dhclient-exit-hooks.d dhcpd6.conf dhcpd.conf scripts
  4. [root@kickstart dhcp]# cat dhcpd.conf
  5. #
  6. # DHCP Server Configuration file.
  7. # see /usr/share/doc/dhcp*/dhcpd.conf.example
  8. # see dhcpd.conf(5) man page
  9. #
  10. [root@kickstart dhcp]# mv dhcpd.conf dhcpd.conf0622
  11. [root@kickstart dhcp]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example dhcpd.conf
  12. [root@kickstart dhcp]# ll
  13. total 12
  14. drwxr-xr-x. 2 root root 6 Jun 10 00:09 dhclient.d
  15. drwxr-xr-x. 2 root root 28 Jun 22 10:51 dhclient-exit-hooks.d
  16. -rw-r--r-- 1 root root 120 Jun 10 00:09 dhcpd6.conf
  17. -rw-r--r-- 1 root root 3262 Jun 22 10:59 dhcpd.conf
  18. -rw-r--r-- 1 root root 117 Jun 10 00:09 dhcpd.conf0622
  19. drwxr-x--- 2 root dhcpd 28 Jun 22 10:51 scripts
  20. dhcpd.conf增加如下配置
  21. subnet 192.168.20.0 netmask 255.255.255.0 {
  22. range 192.168.20.101 192.168.20.200;
  23. option domain-name-servers ns1.internal.example.org;
  24. option domain-name "internal.example.org";
  25. option routers 192.168.20.254;
  26. option broadcast-address 192.168.20.255;
  27. default-lease-time 600;
  28. max-lease-time 7200;
  29. next-server 192.168.20.100;
  30. filename "pxelinux.0";
  31. }

DHCP配置完成;

安装tftp-server服务;

  1. [root@kickstart ~]# yum install tftp-server xinetd
  2. Loaded plugins: fastestmirror
  3. Loading mirror speeds from cached hostfile
  4. * base: mirrors.aliyun.com
  5. * extras: mirrors.aliyun.com
  6. * updates: mirrors.aliyun.com
  7. Resolving Dependencies
  8. --> Running transaction check
  9. ---> Package tftp-server.x86_64 0:5.2-22.el7 will be installed
  10. ---> Package xinetd.x86_64 2:2.3.15-14.el7 will be installed
  11. --> Finished Dependency Resolution
  12. Dependencies Resolved
  13. ===========================================================================================================================
  14. Package Arch Version Repository Size
  15. ===========================================================================================================================
  16. Installing:
  17. tftp-server x86_64 5.2-22.el7 base 47 k
  18. xinetd x86_64 2:2.3.15-14.el7 base 128 k
  19. Transaction Summary
  20. ===========================================================================================================================
  21. Install 2 Packages
  22. Total download size: 175 k
  23. Installed size: 325 k
  24. Is this ok [y/d/N]: y
  25. Downloading packages:
  26. (1/2): tftp-server-5.2-22.el7.x86_64.rpm | 47 kB 00:00:00
  27. (2/2): xinetd-2.3.15-14.el7.x86_64.rpm | 128 kB 00:00:00
  28. ---------------------------------------------------------------------------------------------------------------------------
  29. Total 868 kB/s | 175 kB 00:00:00
  30. Running transaction check
  31. Running transaction test
  32. Transaction test succeeded
  33. Running transaction
  34. Installing : 2:xinetd-2.3.15-14.el7.x86_64 1/2
  35. Installing : tftp-server-5.2-22.el7.x86_64 2/2
  36. Verifying : tftp-server-5.2-22.el7.x86_64 1/2
  37. Verifying : 2:xinetd-2.3.15-14.el7.x86_64 2/2
  38. Installed:
  39. tftp-server.x86_64 0:5.2-22.el7 xinetd.x86_64 2:2.3.15-14.el7
  40. Complete!

开启tftp服务;

  1. [root@kickstart xinetd.d]# cat /etc/xinetd.d/tftp
  2. # default: off
  3. # description: The tftp server serves files using the trivial file transfer \
  4. # protocol. The tftp protocol is often used to boot diskless \
  5. # workstations, download configuration files to network-aware printers, \
  6. # and to start the installation process for some operating systems.
  7. service tftp
  8. {
  9. socket_type = dgram
  10. protocol = udp
  11. wait = yes
  12. user = root
  13. server = /usr/sbin/in.tftpd
  14. server_args = -s /var/lib/tftpboot
  15. disable = no
  16. per_source = 11
  17. cps = 100 2
  18. flags = IPv4
  19. }
  20. [root@kickstart xinetd.d]# systemctl enable xinetd.service
  21. Created symlink from /etc/systemd/system/multi-user.target.wants/xinetd.service to /usr/lib/systemd/system/xinetd.service.
  22. [root@kickstart xinetd.d]# systemctl enable xinetd.service now

安装bootstrap,并配置tftp引导;

  1. [root@kickstart ~]# yum install syslinux
  2. Loaded plugins: fastestmirror
  3. Loading mirror speeds from cached hostfile
  4. * base: mirrors.aliyun.com
  5. * extras: mirrors.aliyun.com
  6. * updates: mirrors.aliyun.com
  7. Resolving Dependencies
  8. --> Running transaction check
  9. ---> Package syslinux.x86_64 0:4.05-15.el7 will be installed
  10. --> Processing Dependency: mtools for package: syslinux-4.05-15.el7.x86_64
  11. --> Running transaction check
  12. ---> Package mtools.x86_64 0:4.0.18-5.el7 will be installed
  13. --> Finished Dependency Resolution
  14. Dependencies Resolved
  15. ===========================================================================================================================
  16. Package Arch Version Repository Size
  17. ===========================================================================================================================
  18. Installing:
  19. syslinux x86_64 4.05-15.el7 base 990 k
  20. Installing for dependencies:
  21. mtools x86_64 4.0.18-5.el7 base 203 k
  22. Transaction Summary
  23. ===========================================================================================================================
  24. Install 1 Package (+1 Dependent package)
  25. Total download size: 1.2 M
  26. Installed size: 2.6 M
  27. Is this ok [y/d/N]: y
  28. Downloading packages:
  29. (1/2): mtools-4.0.18-5.el7.x86_64.rpm | 203 kB 00:00:00
  30. (2/2): syslinux-4.05-15.el7.x86_64.rpm | 990 kB 00:00:01
  31. ---------------------------------------------------------------------------------------------------------------------------
  32. Total 1.0 MB/s | 1.2 MB 00:00:01
  33. Running transaction check
  34. Running transaction test
  35. Transaction test succeeded
  36. Running transaction
  37. Installing : mtools-4.0.18-5.el7.x86_64 1/2
  38. Installing : syslinux-4.05-15.el7.x86_64 2/2
  39. Verifying : mtools-4.0.18-5.el7.x86_64 1/2
  40. Verifying : syslinux-4.05-15.el7.x86_64 2/2
  41. Installed:
  42. syslinux.x86_64 0:4.05-15.el7
  43. Dependency Installed:
  44. mtools.x86_64 0:4.0.18-5.el7
  45. Complete!
  46. [root@kickstart ~]# updatedb
  47. [root@kickstart ~]# locate pxelinux.0
  48. /usr/share/syslinux/gpxelinux.0
  49. /usr/share/syslinux/pxelinux.0
  50. [root@kickstart ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

拷贝系统安装文件到tftp;

  1. [root@kickstart ~]# mount /dev/cdrom /media/
  2. mount: /dev/sr0 is write-protected, mounting read-only
  3. [root@kickstart ~]# cd /media/
  4. [root@kickstart media]# ls
  5. CentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-CentOS-Testing-7
  6. EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL
  7. [root@kickstart media]# cd isolinux/
  8. [root@kickstart isolinux]# ls
  9. boot.cat grub.conf isolinux.bin memtest TRANS.TBL vmlinuz
  10. boot.msg initrd.img isolinux.cfg splash.png vesamenu.c32
  11. [root@kickstart isolinux]# cp * -r /var/lib/tftpboot/

自定义安装引导菜单;

  1. [root@kickstart isolinux]# mkdir /var/lib/tftpboot/pxelinux.cfg
  2. [root@kickstart isolinux]# cd /var/lib/tftpboot/
  3. [root@kickstart tftpboot]# cp isolinux.cfg pxelinux.cfg/default
  4. 添加自定义菜单项到default文件
  5. label linux-ks
  6. menu label ^Install CentOS 7 Auto
  7. menu default
  8. kernel vmlinuz
  9. append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 ks=ftp://192.168.20.100/pub/ks/centos7-ks.cfg

Tftp配置完成;

安装FTP服务;

  1. [root@kickstart ~]# yum install vsftpd
  2. Loaded plugins: fastestmirror
  3. Loading mirror speeds from cached hostfile
  4. * base: mirrors.aliyun.com
  5. * extras: mirrors.aliyun.com
  6. * updates: mirrors.aliyun.com
  7. Resolving Dependencies
  8. --> Running transaction check
  9. ---> Package vsftpd.x86_64 0:3.0.2-29.el7_9 will be installed
  10. --> Finished Dependency Resolution
  11. Dependencies Resolved
  12. ===========================================================================================================================
  13. Package Arch Version Repository Size
  14. ===========================================================================================================================
  15. Installing:
  16. vsftpd x86_64 3.0.2-29.el7_9 updates 173 k
  17. Transaction Summary
  18. ===========================================================================================================================
  19. Install 1 Package
  20. Total download size: 173 k
  21. Installed size: 353 k
  22. Is this ok [y/d/N]: y
  23. Downloading packages:
  24. vsftpd-3.0.2-29.el7_9.x86_64.rpm | 173 kB 00:00:00
  25. Running transaction check
  26. Running transaction test
  27. Transaction test succeeded
  28. Running transaction
  29. Installing : vsftpd-3.0.2-29.el7_9.x86_64 1/1
  30. Verifying : vsftpd-3.0.2-29.el7_9.x86_64 1/1
  31. Installed:
  32. vsftpd.x86_64 0:3.0.2-29.el7_9
  33. Complete!

开启FTP服务,并设置为开机启动;

[root@kickstart ~]# systemctl enable vsftpd.service —now
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.

拷贝系统镜像到共享目录;

  1. [root@kickstart ftp]# cd /var/ftp/
  2. [root@kickstart ftp]# ls
  3. pub
  4. [root@kickstart ftp]# cd pub/
  5. [root@kickstart pub]# ls
  6. [root@kickstart pub]# mkdir ks
  7. [root@kickstart pub]# mkdir centos7-iso
  8. [root@kickstart pub]# cp /media/* -r centos7-iso/

FTP配置完成;

安装kickstart;

  1. [root@kickstart vsftpd]# yum install system-config-kickstart
  2. Loaded plugins: fastestmirror
  3. Loading mirror speeds from cached hostfile
  4. * base: mirrors.aliyun.com
  5. * extras: mirrors.aliyun.com
  6. * updates: mirrors.aliyun.com
  7. Resolving Dependencies
  8. --> Running transaction check
  9. ---> Package system-config-kickstart.noarch 0:2.9.7-1.el7 will be installed
  10. --> Processing Dependency: system-config-keyboard >= 1.3.1 for package: system-config-kickstart-2.9.7-1.el7.noarch
  11. --> Processing Dependency: pykickstart >= 1.78 for package: system-config-kickstart-2.9.7-1.el7.noarch
  12. --> Processing Dependency: pygtk2 >= 1.99.11 for package: system-config-kickstart-2.9.7-1.el7.noarch
  13. --> Processing Dependency: gtk2 >= 2.6 for package: system-config-kickstart-2.9.7-1.el7.noarch
  14. --> Processing Dependency: gtk2 >= 2.6 for package: system-config-kickstart-2.9.7-1.el7.noarch
  15. --> Processing Dependency: system-config-language for package: system-config-kickstart-2.9.7-1.el7.noarch
  16. --> Processing Dependency: system-config-date for package: system-config-kickstart-2.9.7-1.el7.noarch
  17. --> Processing Dependency: pygtk2-libglade for package: system-config-kickstart-2.9.7-1.el7.noarch
  18. --> Processing Dependency: hicolor-icon-theme for package: system-config-kickstart-2.9.7-1.el7.noarch
  19. --> Running transaction check
  20. ---> Package gtk2.x86_64 0:2.24.31-1.el7 will be installed
  21. --> Processing Dependency: pango >= 1.20.0-1 for package: gtk2-2.24.31-1.el7.x86_64
  22. --> Processing Dependency: libtiff >= 3.6.1 for package: gtk2-2.24.31-1.el7.x86_64
  23. --> Processing Dependency: libXrandr >= 1.2.99.4-2 for package: gtk2-2.24.31-1.el7.x86_64
  24. --> Processing Dependency: atk >= 1.29.4-2 for package: gtk2-2.24.31-1.el7.x86_64
  25. --> Processing Dependency: gtk-update-icon-cache for package: gtk2-2.24.31-1.el7.x86_64
  26. --> Processing Dependency: libpangoft2-1.0.so.0()(64bit) for package: gtk2-2.24.31-1.el7.x86_64
  27. --> Processing Dependency: libpangocairo-1.0.so.0()(64bit) for package: gtk2-2.24.31-1.el7.x86_64
  28. --> Processing Dependency: libpango-1.0.so.0()(64bit) for package: gtk2-2.24.31-1.el7.x86_64
  29. ……
  30. startup-notification.x86_64 0:0.12-8.el7 system-config-date.noarch 0:1.10.6-3.el7.centos
  31. system-config-date-docs.noarch 0:1.0.11-4.el7 system-config-keyboard.noarch 0:1.4.0-5.el7
  32. system-config-keyboard-base.noarch 0:1.4.0-5.el7 system-config-language.noarch 0:1.4.0-9.el7
  33. trousers.x86_64 0:0.3.14-2.el7 usermode.x86_64 0:1.111-6.el7
  34. usermode-gtk.x86_64 0:1.111-6.el7 webkitgtk4.x86_64 0:2.28.2-2.el7
  35. webkitgtk4-jsc.x86_64 0:2.28.2-2.el7 xcb-util.x86_64 0:0.4.0-2.el7
  36. xkeyboard-config.noarch 0:2.24-1.el7 xml-common.noarch 0:0.6.3-39.el7
  37. yelp.x86_64 2:3.28.1-1.el7 yelp-libs.x86_64 2:3.28.1-1.el7
  38. yelp-xsl.noarch 0:3.28.0-1.el7
  39. Complete!

配置ks文件;

image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
配置完成后,保存为.cfg文件;
[root@kickstart ~]# cp centos7-ks.cfg /var/ftp/pub/ks/

KS文件配置完成;

客户端机器设置为网卡启动;

image.png

完成。