ToB企服应用市场:ToB评测及商务社交产业平台

标题: RockyLinux设置cobbler无人值守安装服务 [打印本页]

作者: 悠扬随风    时间: 2024-8-25 01:07
标题: RockyLinux设置cobbler无人值守安装服务
1. 环境

  
  1. Cobbler=3.2
  2. Linux=RockyLinux-8.6
  3. #客户端测试环境
  4. Linux=RockyLinux-8.6
  5. Linux=CentOS-7.9
  6. #镜像
  7. 官方完整版镜像
复制代码
2. 关闭防火墙和selinux

  
  1. setenforce 0
  2. sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
  3. systemctl disable --now firewalld
复制代码
3. 安装依赖包及Cobbler3.2

  
  1. yum install epel-release  -y
  2. yum module list | grep cobbler
  3. dnf module enable cobbler:3 -y
  4. yum install rsync rsync-daemon httpd dhcp-server tftp tftp-server cobbler cobbler-web pykickstart vim grub2-* yum-utils syslinux* -y
  5. systemctl enable --now cobblerd httpd rsyncd tftp
复制代码
4. 设置Cobbler文件

  
  1. sed -i.bak 's/^server: 127.0.0.1/server: 192.168.75.131/' /etc/cobbler/settings.yaml
  2. sed -i "s#next_server: 127.0.0.1#next_server: 192.168.75.131#" /etc/cobbler/settings.yaml
  3. sed -i "s#manage_dhcp: false#manage_dhcp: true#" /etc/cobbler/settings.yaml
  4. #生成默认系统root密码
  5. openssl passwd -1 -salt "$RANDOM" 'root'
  6. vim /etc/cobbler/settings.yaml
  7. ....
  8. default_password_crypted: "$1$mF86/UHC$WvcIcX2t6crBz2onWxyac."
  9. ....
  10. #验证修改
  11. egrep '^server:|^next_server|^manage_dhcp|^default_password_' /etc/cobbler/settings.yaml
  12. '''
  13. default_password_crypted: "$1$mF86/UHC$WvcIcX2t6crBz2onWxyac."
  14. manage_dhcp: true
  15. next_server: 192.168.75.131
  16. server: 192.168.75.131
  17. '''
复制代码
5. 设置DHCP服务摸版

   vim /etc/cobbler/dhcp.template
  1. ...
  2. subnet 192.168.75.0 netmask 255.255.255.0 {  //修改此处网段
  3.     option routers             192.168.75.2;  //修改此处网关
  4.     option domain-name-servers 114.114.114.114;  //修改此处dns
  5.     option subnet-mask         255.255.255.0;
  6.     range dynamic-bootp        192.168.75.100 192.168.75.200; //地址池
  7.     default-lease-time 21600;
  8.     max-lease-time 43200;
  9.     next-server $next_server;
  10. }
  11. ....
复制代码
5.1 设置DNSMASQ服务摸版(如使用dnsmasq服务设置,替换默认dhcp)

   vim /etc/cobbler/dnsmasq.template
  1. ...
  2. # Cobbler generated configuration file for dnsmasq
  3. # $date
  4. #
  5. # resolve.conf .. ?
  6. #no-poll
  7. #enable-dbus
  8. read-ethers
  9. addn-hosts = /var/lib/cobbler/cobbler_hosts
  10. dhcp-range=192.168.75.100,192.168.75.250,255.255.255.0,12h #内网如果已经有DHCP服务器的地址池,代理DHCP服务器地址池.
  11. dhcp-option=option:router,192.168.75.254  #该网段DHCP服务器IP地址,代理DHCP的IP地址.
  12. #dhcp-range=192.168.7.5,192.168.1.200
  13. #dhcp-option=66,$next_server
  14. dhcp-lease-max=1000
  15. dhcp-authoritative
  16. #dhcp-boot=pxelinux.0
  17. #dhcp-boot=net:normalarch,pxelinux.0
  18. dhcp-boot=grub/grubx64.efi # 修改此处
  19. dhcp-boot=net:x86_64,grub/grubx64.efi  #修改此处
  20. tftp-root=/var/lib/tftpboot  # 增加该行
  21. $insert_cobbler_system_definitions
  22. ...
复制代码
5.2 ###启用dnsmasq

   vim /etc/cobbler/modules.conf
  1. ...
  2. [dhcp]
  3. #module = managers.isc  # 注释默认
  4. module = managers.dnsmasq # 启用dnsmasq
  5. ...
复制代码
6. 检查当前cobbler设置

  
  1. #重启服务
  2. systemctl restart cobblerd httpd rsyncd tftp
  3. #检查
  4. cobbler check
  5. '''
  6. The following are potential configuration items that you may want to fix:
  7. 1: some network boot-loaders are missing from /var/lib/cobbler/loaders. If you only want to handle x86/x86_64 netbooting, you may ensure that you have installed a *recent* version of the syslinux package installed and can ignore this message entirely. Files in this directory, should you want to support all architectures, should include pxelinux.0, menu.c32, and yaboot.
  8. 2: debmirror package is not installed, it will be required to manage debian deployments and repositories
  9. 3: fencing tools were not found, and are required to use the (optional) power management features. install cman or fence-agents to use them
  10. Restart cobblerd and then run 'cobbler sync' to apply changes.
  11. '''
  12. #问题1,需要引导文件:
  13. yum install syslinux* -y
  14. cp /usr/share/syslinux/{menu.c32,pxelinux.0,libutil.c32,ldlinux.c32} /var/lib/cobbler/loaders/
  15. ls /var/lib/cobbler/loaders/
  16. '''
  17. ldlinux.c32  libutil.c32  menu.c32  pxelinux.0
  18. '''
  19. #问题2和问题3可以忽略
  20. 因为是debian系统才需要解决;
  21. debian系统解决办法安装 fence-agents;
复制代码
7. 同步Cobbler设置

  
  1. cobbler sync
  2. #看到这个即为成功同步
  3. '''
  4. ....
  5. shell triggers finished successfully
  6. *** TASK COMPLETE ***  
  7. '''
复制代码
8. 导入镜像

需提前上传完备版RockyLinux8.6镜像到服务器.
  
  1. #创建镜像挂载目录
  2. mkdir -p /Rocky86
  3. #挂载镜像
  4. mount -t iso9660 -o loop,ro /iso/Rocky-8.6-x86_64-dvd1.iso /Rocky86
  5. #导入镜像
  6. cobbler import --path=/Rocky86/ --name=Rocky86 --arch=x86_64
  7. #看到这个结果即为成功
  8. '''
  9. cobbler import --path=/Rocky86/ --name=Rocky86 --arch=x86_64
  10. ....
  11. *** TASK COMPLETE ***
  12. '''
  13. #--path: 镜像路径
  14. #--name: 为安装源定义一个名字
  15. #--arch: 指定安装源是 32 位、64 位、ia64, 目前支持的选项有: x86│x86_64│ia64
  16. #安装源的唯一标示就是根据 name 参数来定义,本例导入成功后,安装源的唯一标示就是:Rocky86-x86_64,如果重复,系统会提示导入失败.
  17. #查看导入镜像
  18. cobbler list
  19. '''
  20. distros:
  21.   Rocky86-x86_64  #镜像
  22. profiles:
  23.   Rocky86-x86_64  #配置文件
  24. ...
  25. '''
  26. #查看导入镜像详细信息
  27. cobbler distro report --name Rocky86-x86_64
复制代码
9. 创建kickstarts自动安装脚本

   ks模板脚本默认文件存放在/var/lib/cobbler/templates/
  1. cd /var/lib/cobbler/templates/
  2. #生成模板文件
  3. cobbler profile get-autoinstall --name Rocky86-x86_64 > rocky86.ks
  4. #修改生成的模板文件,如下:
  5. vim rocky86.ks
  6. '''
  7. authselect --useshadow --enablemd5
  8. bootloader --location=mbr --boot-drive=sda
  9. clearpart --all --initlabel --drives=sda
  10. text
  11. firewall --disabled
  12. services --disabled=firewall
  13. firstboot --disable
  14. keyboard us
  15. lang en_US
  16. url --url=$tree
  17. repo --name=source-1 --baseurl=http://192.168.1.10/cobbler/distro_mirror/Rocky86-x86_64/BaseOS
  18. repo --name=source-2 --baseurl=http://192.168.1.10/cobbler/distro_mirror/Rocky86-x86_64/Minimal
  19. network --bootproto=dhcp --device=eth0 --onboot=on
  20. network --hostname=ksInstallLinux
  21. reboot
  22. rootpw --iscrypted $1$32090$Z9bo6zoIURFVMsJydfw.L/
  23. selinux --disabled
  24. skipx
  25. timezone Asia/Shanghai
  26. zerombr
  27. ignoredisk --only-use=sda
  28. reqpart
  29. part /boot --fstype=xfs --size=1024
  30. part / --fstype=ext4 --grow
  31. %packages
  32. @^minimal-environment
  33. %end
  34. '''
  35. #验证目录下的ks文件语法是否有误(/var/lib/cobbler/templates/)
  36. cobbler validate-autoinstalls
  37. '''
  38. running python triggers from /var/lib/cobbler/triggers/task/validate_autoinstall_files/pre/*
  39. running shell triggers from /var/lib/cobbler/triggers/task/validate_autoinstall_files/pre/*
  40. shell triggers finished successfully
  41. *** TASK COMPLETE ***  //说明无误
  42. '''
  43. #修改profile,将我们新建的ks文件设为默认的kickstarts安装文件,修改网卡名称.
  44. cobbler profile edit --name Rocky86-x86_64 --kernel-options='net.ifnames=0 biosdevname=0' --autoinstall rocky86.ks
  45. #或者导入镜像时也可以导入模板
  46. cobbler import --path=/Rocky86/ --name=Rocky86 --arch=x86_64 --kernel-options='net.ifnames=0 biosdevname=0' --autoinstall rocky86.ks
  47. cobbler profile report --name Rocky86-x86_64
  48. '''
  49. Name : Rocky86-x86_64
  50. Automatic Installation Template : rocky86.ks  //说明成功
  51. Automatic Installation Metadata : {}
  52. TFTP Boot Files : {}
  53. Comment :
  54. DHCP Tag : default
  55. Distribution : Rocky86-x86_64
  56. Enable gPXE? : False
  57. Enable PXE Menu? : True
  58. Fetchable Files : {}
  59. DHCP Filename Override : <<inherit>>
  60. Kernel Options : {'net.ifnames': '0', 'biosdevname': '0'}  //说明成功
  61. Kernel Options (Post Install) : {}
  62. Management Classes : []
  63. ....
  64. '''
  65. #重新同步cobbler
  66. cobbler sync
  67. '''
  68. ...
  69. shell triggers finished successfully
  70. *** TASK COMPLETE *** //说明成功
  71. '''
  72. # 重启所有相关服务
  73. systemctl restart httpd cobblerd rsyncd dhcpd
复制代码
10. 设置UEFI引导自动安装

  
  1. #执行时会有报错 但不影响
  2. bash /usr/share/cobbler/bin/mkgrub.sh
  3. '''
  4. + grub2-mkimage -O arm64-efi -o /var/lib/cobbler/loaders/grub/grubaa64.efi --prefix= all_video boot cat configfile echo true font gfxmenu gfxterm gzio halt iso9660 jpeg minicmd normal part_apple part_msdos part_gpt password_pbkdf2 png reboot search search_fs_uuid search_fs_file search_label sleep test video fat loadenv linux btrfs ext2 xfs jfs reiserfs tftp http luks gcry_rijndael gcry_sha1 gcry_sha256 mdraid09 mdraid1x lvm serial regexp tr efinet
  5. + set +x
  6. + grub2-mkimage -O i386-pc-pxe -o /var/lib/cobbler/loaders/grub/grub.0 --prefix= all_video boot cat configfile echo true font gfxmenu gfxterm gzio halt iso9660 jpeg minicmd normal part_apple part_msdos part_gpt password_pbkdf2 png reboot search search_fs_uuid search_fs_file search_label sleep test video fat loadenv linux btrfs ext2 xfs jfs reiserfs tftp http luks gcry_rijndael gcry_sha1 gcry_sha256 mdraid09 mdraid1x lvm serial regexp tr chain pxe biosdisk
  7. + set +x
  8. + grub2-mkimage -O powerpc-ieee1275 -o /var/lib/cobbler/loaders/grub/grub.ppc64le --prefix= all_video boot cat configfile echo true font gfxmenu gfxterm gzio halt iso9660 jpeg minicmd normal part_apple part_msdos part_gpt password_pbkdf2 png reboot search search_fs_uuid search_fs_file search_label sleep test video fat loadenv linux btrfs ext2 xfs jfs reiserfs tftp http luks gcry_rijndael gcry_sha1 gcry_sha256 mdraid09 mdraid1x lvm serial regexp tr net ofnet
  9. grub2-mkimage: error: cannot open `/usr/lib/grub/powerpc-ieee1275/moddep.lst': No such file or directory.
  10. + set +x
  11. + grub2-mkimage -O x86_64-efi -o /var/lib/cobbler/loaders/grub/grubx64.efi --prefix= all_video boot cat configfile echo true font gfxmenu gfxterm gzio halt iso9660 jpeg minicmd normal part_apple part_msdos part_gpt password_pbkdf2 png reboot search search_fs_uuid search_fs_file search_label sleep test video fat loadenv linux btrfs ext2 xfs jfs reiserfs tftp http luks gcry_rijndael gcry_sha1 gcry_sha256 mdraid09 mdraid1x lvm serial regexp tr chain efinet
  12. + set +x
  13. '''
  14. #配置因为文件做出改变,所以需要同步
  15. cobbler sync
复制代码
11. 修改PXE grub菜单

   vim /var/lib/tftpboot/grub/grub.cfg
  1. cat /var/lib/tftpboot/grub/grub.cfg
  2. '''
  3. #-------------------------------------------------------------------------------
  4. # Set defaults (is re-set by machine specific configuration file)
  5. #-------------------------------------------------------------------------------
  6. set arch='x86_64'
  7. set hostname='dummy'
  8. set system='dummy'
  9. set lang=en
  10. set serial_console=false
  11. set serial_baud=115200
  12. set serial_line=0
  13. set k_console=""
  14. set local_boot_file=""
  15. set kernel_options=""
  16. #调整超时时间10秒
  17. set timeout=10
  18. #调整默认安装系统
  19. set default='Rocky86-x86_64'
  20. set gfxpayload=text
  21. ....
  22. '''
  23. #!!!执行cobbler sync都会覆盖此文件!!!
复制代码
12. 虚拟机客户端安装留意

  
  1. #测试UEFI需要将虚拟机设置成UEFI启动方式;
  2. #虚拟机大小为2核4G;
复制代码
13. Cobbler设置文件说明

   部分
  1. /etc/cobbler    #配置文件目录
  2. /etc/cobbler/boot_loader_conf #pxe模板配置文件
  3. /etc/cobbler/dhcp.template  #dhcp目录
  4. # 数据文件目录
  5. /var/lib/cobbler/loaders #各种引导文件
  6. /var/lib/cobbler/scripts #脚本文件
  7. /var/lib/cobbler/templates #存放kickstart文件目录
  8. # 日志目录
  9. /var/log/cobbler
复制代码



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4