实验一:使用 kickstart 半自动化安装CentOS系统

  1. - **准备一个centos7系统的主机**
  2. - **关闭防火墙和selinux**
  3. - **主机为静态ip地址**
  4. - **关闭vmware软件中的DHCP服务,基于NAT模式**

注意:使用 1G 以下内存的主机安装CentOS 7,8 会提示空间不足,建议2G以上

1.在centos7上利用system-config-kickstart工具创建kickstart文件

注意: centos8上面不支持此工具

  1. 安装system-config-kickstart工具

    1. yum install -y system-config-kickstart
  2. 安装完成后,最小化安装的系统是无法启动这个工具的

image.png

  • 需要开启xmanager中的passive工具

image.png

  • 开启后在shell终端执行export DISPLAY=10.0.0.1:0.0命令,然后再执行system-config-kickstart命令即可

然后就会出现一个图形化界面,用来生成kickstart文件
image.png

  • 接下来就选择需要执行的选项,完毕后保存即可

    1.1 centos7的kickstart文件

    1. # 查看kickstart文件:
    2. cat ks7.cfg |grep '^[^#]'
    3. install
    4. keyboard 'us'
    5. rootpw --iscrypted $1$zPeZlZeR$zqJRNG0QmeEnM//6TUQjb/
    6. lang en_US
    7. auth --useshadow --passalgo=sha512
    8. text
    9. firstboot --disable
    10. selinux --disabled
    11. skipx
    12. firewall --disabled
    13. network --bootproto=dhcp --device=eth0
    14. reboot
    15. timezone Asia/Shanghai
    16. url --url="http://10.0.39.7/centos/7/os/x86_64/"
    17. bootloader --append="net.ifnames=0" --location=mbr
    18. zerombr
    19. clearpart --all --initlabel
    20. part / --fstype="xfs" --size=100000
    21. part /boot --fstype="xfs" --size=1024
    22. part swap --fstype="swap" --size=2048
    23. part /data --fstype="xfs" --size=50000
    24. %post
    25. mkdir /etc/yum.repos.d/backup
    26. mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup
    27. cat > /etc/yum.repos.d/base.repo <<EOF
    28. [BaseOS]
    29. name=base
    30. baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/
    31. gpgcheck=0
    32. enabled=1
    33. [epel]
    34. name=epel
    35. baseurl=https://mirrors.aliyun.com/epel/7/x86_64/
    36. gpgcheck=0
    37. enabled=1
    38. [extras]
    39. name=extras
    40. baseurl=https://mirrors.aliyun.com/centos/7/extras/x86_64/
    41. gpgcheck=0
    42. enabled=1
    43. EOF
    44. mkdir /root/.ssh -m 700
    45. cat > /root/.ssh/authorized_keys <<EOF
    46. ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC5+NIbhF2hleE+8T5k8JUld32RUkn/wjYO0K3lVvzemOalxetHCJ+SkDltHRIW0DPvoNcR5k+5mGX92+DxmBGcjFgbKefahDAbTpXnuf/B9NwZypzY9KYNlczNSL0JWnle1qddDHSn/eTSHfWaXtUWiJ1Xbxx8LWJUNq5zP+9v928O+KGVzzf3MIBtNVf1Pf5G8YM5VsGrKUT6ZNwg2EdG6wLbC23OQXJsQqDuS77WC7cwnu3STDvIfxhIhJxqxdWpolZxPbkUyLby6P2oLa4UGEyDBLwLNdR1RjXDY6WZOl/KZVAj/IkkEx6BDDivS5XnDwCg07xSgaZAA3a9vv2P root@centos7.localdomain
    47. EOF
    48. chmod 600 /root/.ssh/authorized_keys
    49. cat > /etc/profile.d/ps.sh <<EOF
    50. PS1="\e[1;32m\][\u@\h \W]\\$\[\e[0m\]"
    51. EOF
    52. %end
    53. %packages
    54. vim
    55. tree
    56. %end

kickstart文件检验命令:ksvalidator

3.定制光盘,结合自制的kickstart文件实现半自动化安装

3.1 创建一个目录,将centos7系统光盘中的isolinux目录下的所有文件复制到该目录下

  1. mkdir iso7
  2. mount /dev/sr0 /mnt/
  3. cp -r /mnt/isolinux/ iso7/

image.png

3.2 将centos7额应答文件放在http服务器上,并配置菜单文件isolinux.cfg

  1. yum install -y httpd
  2. systemctl enable --now httpd
  3. mkdir /var/www/html/ks
  4. mv ks7.cfg /var/www/html/ks/
  5. #配置菜单文件
  6. vim iso7/isolinux/isolinux.cfg
  7. label linux
  8. menu label Install CentOS 7
  9. kernel vmlinuz
  10. append initrd=initrd.img quiet ks=http://10.0.0.7/ks/ks7.cfg

3.3 刻录光盘并测试

  1. yum install -y mkisofs
  2. mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "centos7 boot" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/centos7.iso /root/iso7/

刻录完成后,将光盘传到windows桌面,然后选择一个新虚拟机,将光盘挂载到新虚拟机下,加电启动
image.png
image.png
测试成功

实验八:实现pxe安装双系统centos6、centos7

  1. - **准备一个centos7系统的主机**
  2. - **关闭防火墙和selinux**
  3. - **主机为静态ip地址**
  4. - **关闭vmware软件中的DHCP服务,基于NAT模式**

注意:使用 1G 以下内存的主机安装CentOS 7,8 会提示空间不足,建议2G以上

1. 安装相关服务包

  1. yum -y install httpd tftp-server dhcp syslinux system-configkickstart
  2. systemctl enable --now httpd tftp dhcpd

1.1 配置dhcp

  1. vim /etc/dhcp/dhcpd.conf
  2. option domain-name "example.com";
  3. default-lease-time 600;
  4. max-lease-time 7200;
  5. subnet 10.0.0.0 netmask 255.0.0.0 {
  6. range 10.0.0.100 10.0.0.200;
  7. option routers 10.0.0.2;
  8. next-server 10.0.39.7;
  9. filename "pxelinux.0";
  10. }

然后再次启动dhcp服务

2. 准备centos6,7的kickstart文件和yum源目录

  1. mkdir /var/www/html/ks/
  2. # 将自制的centos6,7的kickstart文件移动到该目录下
  3. mv ks{67}.cfg /var/www/html/ks/
  4. #创建yum源目录,并将系统光盘挂载到对应的目录下
  5. mkdir -pv /var/www/html/centos/{67}/os/x86_64
  6. mount /dev/sr0 /var/www/html/centos/6/os/x86_64
  7. mount /dev/sr1 /var/www/html/centos/7/os/x86_64

2.1 centos7的自制kickstart文件

  1. install
  2. keyboard 'us'
  3. rootpw --iscrypted $1$zPeZlZeR$zqJRNG0QmeEnM//6TUQjb/
  4. lang en_US
  5. auth --useshadow --passalgo=sha512
  6. text
  7. firstboot --disable
  8. selinux --disabled
  9. skipx
  10. firewall --disabled
  11. network --bootproto=dhcp --device=eth0
  12. reboot
  13. timezone Asia/Shanghai
  14. url --url="http://10.0.39.7/centos/7/os/x86_64/"
  15. bootloader --append="net.ifnames=0" --location=mbr
  16. zerombr
  17. clearpart --all --initlabel
  18. part / --fstype="xfs" --size=100000
  19. part /boot --fstype="xfs" --size=1024
  20. part swap --fstype="swap" --size=2048
  21. part /data --fstype="xfs" --size=50000
  22. %post
  23. mkdir /etc/yum.repos.d/backup
  24. mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup
  25. cat > /etc/yum.repos.d/base.repo <<EOF
  26. [BaseOS]
  27. name=base
  28. baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/
  29. gpgcheck=0
  30. enabled=1
  31. [epel]
  32. name=epel
  33. baseurl=https://mirrors.aliyun.com/epel/7/x86_64/
  34. gpgcheck=0
  35. enabled=1
  36. [extras]
  37. name=extras
  38. baseurl=https://mirrors.aliyun.com/centos/7/extras/x86_64/
  39. gpgcheck=0
  40. enabled=1
  41. EOF
  42. mkdir /root/.ssh -m 700
  43. cat > /root/.ssh/authorized_keys <<EOF
  44. ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC5+NIbhF2hleE+8T5k8JUld32RUkn/wjYO0K3lVvzemOalxetHCJ+SkDltHRIW0DPvoNcR5k+5mGX92+DxmBGcjFgbKefahDAbTpXnuf/B9NwZypzY9KYNlczNSL0JWnle1qddDHSn/eTSHfWaXtUWiJ1Xbxx8LWJUNq5zP+9v928O+KGVzzf3MIBtNVf1Pf5G8YM5VsGrKUT6ZNwg2EdG6wLbC23OQXJsQqDuS77WC7cwnu3STDvIfxhIhJxqxdWpolZxPbkUyLby6P2oLa4UGEyDBLwLNdR1RjXDY6WZOl/KZVAj/IkkEx6BDDivS5XnDwCg07xSgaZAA3a9vv2P root@centos7.localdomain
  45. EOF
  46. chmod 600 /root/.ssh/authorized_keys
  47. cat > /etc/profile.d/ps.sh <<EOF
  48. PS1="\e[1;32m\][\u@\h \W]\\$\[\e[0m\]"
  49. EOF
  50. %end
  51. %packages
  52. vim
  53. tree
  54. %end

2.2 centos6的自制kickstart文件

  1. install
  2. text
  3. reboot
  4. url --url="http://10.0.39.7/centos/6/os/x86_64/"
  5. lang en_US.UTF-8
  6. keyboard us
  7. network --onboot yes --device eth0 --bootproto dhcp --noipv6
  8. rootpw --iscrypted $6$HCVpJ2XW0sJOF4sV$a0JJzdfb5c8oaLV6/P9WOwYdT/nioK4oplthVhB/qrQkKGBnPrOyG54TJAS1X06Fe43VrXz2Yt5jlxzI87Qfh0
  9. firewall --disabled
  10. authconfig --enableshadow --passalgo=sha512
  11. selinux --disabled
  12. timezone --utc Asia/Shanghai
  13. bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
  14. zerombr
  15. clearpart --all --initlabel
  16. part /boot --fstype=ext4 --size=2048
  17. part / --fstype=ext4 --size=102400
  18. part /dhttp://10.0.39.7/centos/6/os/x86_64/ata --fstype=ext4 --size=51200
  19. part swap --size=4096
  20. %packages
  21. @core
  22. @server-policy
  23. @workstation-policy
  24. tree
  25. %end
  26. %post
  27. mkdir /etc/yum.repos.d/backup
  28. mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup
  29. cat > /etc/yum.repos.d/base.repo <<EOF
  30. [base]
  31. name=base
  32. baseurl=https://mirrors.aliyun.com/centos/6/os/x86_64/
  33. gpgcheck=0
  34. enabled=1
  35. [epel]
  36. name=epel
  37. baseurl=https://mirrors.aliyun.com/epel/6/x86_64/
  38. gpgcheck=0
  39. enabled=1
  40. [extras]
  41. name=extras
  42. baseurl=https://mirrors.aliyun.com/centos/6/extras/x86_64/
  43. gpgcheck=0
  44. enabled=1
  45. EOF
  46. mkdir /root/.ssh -m 700
  47. cat > /root/.ssh/authorized_keys <<EOF
  48. ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC5+NIbhF2hleE+8T5k8JUld32RUkn/wjYO0K3lVvzemOalxetHCJ+SkDltHRIW0DPv
  49. oNcR5k+5mGX92+DxmBGcjFgbKefahDAbTpXnuf/B9NwZypzY9KYNlczNSL0JWnle1qddDHSn/eTSHfWaXtUWiJ1Xbxx8LWJUNq5zP+9v
  50. 928O+KGVzzf3MIBtNVf1Pf5G8YM5VsGrKUT6ZNwg2EdG6wLbC23OQXJsQqDuS77WC7cwnu3STDvIfxhIhJxqxdWpolZxPbkUyLby6P2o
  51. La4UGEyDBLwLNdR1RjXDY6WZOl/KZVAj/IkkEx6BDDivS5XnDwCg07xSgaZAA3a9vv2P root@centos7.localdomain
  52. EOF
  53. chmod 600 /root/.ssh/authorized_keys
  54. %end

3. 准备pxe启动文件

  1. mkdir /var/lib/tftpboot/pxelinux.cfg/
  2. cp /usr/share/syslinux/{pxelinux.0,menu.c32} /var/lib/tftpboot/
  3. cp /misc/cd/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/
  4. cp /misc/cd/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

image.png

4.修改启动菜单文件

  1. Vim /var/lib/tftpboot/pxelinux.cfg/default
  2. default menu.c32
  3. timeout 600
  4. menu title Install centos linux
  5. label linux
  6. menu label Install centos ^6
  7. kernel centos6/vmlinuz
  8. append initrd=centos6/initrd.img ks=http://10.0.39.7/ks/ks6.cfg
  9. label linux
  10. menu label Install centos ^7
  11. kernel centos7/vmlinuz
  12. append initrd=centos7/initrd.img ks=http://10.0.39.7/ks/ks7.cfg

5.测试

准备一台新的主机,选择网卡引导即可。
image.png
image.png
image.png
测试完成