cobbler无人值守装机
安装
[root@ c7-41 ~]# yum -y install cobbler cobbler-web tftp-server pykickstart httpd dhcp xinetd debmirror
启动相关程序
[root@ c7-41 ~]# systemctl start httpd cobblerd [root@ c7-41 ~]# systemctl enable httpd cobblerd
检查cobbler的配置
[root@ c7-41 ~]# cobbler check The following are potential configuration items that you may want to fix: 1 : The 'server' field in /etc/cobbler/settings must be set to something other than localhost, or kickstarting features will not work. This should be a resolvable hostname or IP for the boot server as reachable by all machines that will use it. 2 : For PXE to be functional, the 'next_server' field in /etc/cobbler/settings must be set to something other than 127.0.0.1, and should match the IP of the boot server on the PXE network. 3 : change 'disable' to 'no' in /etc/xinetd.d/tftp 4 : Some network boot-loaders are missing from /var/lib/cobbler/loaders, you may run 'cobbler get-loaders' to download them, or, 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, elilo.efi, and yaboot. The 'cobbler get-loaders' command is the easiest way to resolve these requirements. 5 : enable and start rsyncd.service with systemctl 6 : comment out 'dists' on /etc/debmirror.conf for proper debian support 7 : comment out 'arches' on /etc/debmirror.conf for proper debian support 8 : The default password used by the sample templates for newly installed machines (default_password_crypted in /etc/cobbler/settings) is still set to 'cobbler' and should be changed, try: "openssl passwd -1 -salt 'random-phrase-here' 'your-password-here'" to generate new one 9 : fencing tools were not found, and are required to use the (optional) power management features. install cman or fence-agents to use them Restart cobblerd and then run 'cobbler sync' to apply changes.
解决问题,首先设置为动态
[root@ c7-41 ~]# sed -ri '/allow_dynamic_settings:/c\allow_dynamic_settings: 1' /etc/cobbler/settings [root@ c7-41 ~]# grep allow_dynamic_settings /etc/cobbler/settings allow_dynamic_settings: 1 [root@ c7-41 ~]# systemctl restart cobblerd
开始解决问题
The 'server' field in /etc/cobbler/settings must be set to something other than localhost, or kickstarting features will not work. This should be a resolvable hostname or IP for the boot server as reachable by all machines that will use it. 解决办法 [root@ c7-41 ~]# cobbler setting edit --name=server --value=10.0.0.41 For PXE to be functional, the 'next_server' field in /etc/cobbler/settings must be set to something other than 127.0.0.1, and should match the IP of the boot server on the PXE network. 解决办法 [root@ c7-41 ~]# cobbler setting edit --name=next_server --value=10.0.0.41 change 'disable' to 'no' in /etc/xinetd.d/tftp 解决办法 [root@ c7-41 ~]# sed -ri '/disable/c\disable = no' /etc/xinetd.d/tftp Some network boot-loaders are missing from /var/lib/cobbler/loaders, you may run 'cobbler get-loaders' to download them, or, 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, elilo.efi, and yaboot. The 'cobbler get-loaders' command is the easiest way to resolve these requirements. 解决办法 [root@ c7-41 ~]# systemctl enable xinetd [root@ c7-41 ~]# systemctl restart xinetd [root@ c7-41 ~]# cobbler get-loaders task started: 2020-05-07_192906_get_loaders task started (id=Download Bootloader Content, time=Thu May 7 19:29:06 2020) downloading https://cobbler.github.io/loaders/README to /var/lib/cobbler/loaders/README downloading https://cobbler.github.io/loaders/COPYING.elilo to /var/lib/cobbler/loaders/COPYING.elilo downloading https://cobbler.github.io/loaders/COPYING.yaboot to /var/lib/cobbler/loaders/COPYING.yaboot downloading https://cobbler.github.io/loaders/COPYING.syslinux to /var/lib/cobbler/loaders/COPYING.syslinux downloading https://cobbler.github.io/loaders/elilo-3.8-ia64.efi to /var/lib/cobbler/loaders/elilo-ia64.efi downloading https://cobbler.github.io/loaders/yaboot-1.3.17 to /var/lib/cobbler/loaders/yaboot downloading https://cobbler.github.io/loaders/pxelinux.0-3.86 to /var/lib/cobbler/loaders/pxelinux.0 downloading https://cobbler.github.io/loaders/menu.c32-3.86 to /var/lib/cobbler/loaders/menu.c32 downloading https://cobbler.github.io/loaders/grub-0.97-x86.efi to /var/lib/cobbler/loaders/grub-x86.efi downloading https://cobbler.github.io/loaders/grub-0.97-x86_64.efi to /var/lib/cobbler/loaders/grub-x86_64.efi *** TASK COMPLETE *** enable and start rsyncd.service with systemctl 解决办法 [root@ c7-41 ~]# systemctl start rsyncd [root@ c7-41 ~]# systemctl enable rsyncd comment out 'dists' on /etc/debmirror.conf for proper debian support 解决办法 [root@ c7-41 ~]# sed -i 's#@dists="sid";#\#@dists="sid";#gp' /etc/debmirror.conf comment out 'arches' on /etc/debmirror.conf for proper debian support 解决办法 [root@ c7-41 ~]# sed -i 's#@arches="i386";#\#@arches="i386";#g' /etc/debmirror.conf The default password used by the sample templates for newly installed machines (default_password_crypted in /etc/cobbler/settings) is still set to 'cobbler' and should be changed, try: "openssl passwd -1 -salt 'random-phrase-here' 'your-password-here'" to generate new one 解决办法 [root@ c7-41 ~]# openssl passwd -1 -salt `openssl rand -hex 4` '123456' $1$ff281a82$t6KM54B116neojwiYjbGu/ [root@ c7-41 ~]# cobbler setting edit --name=default_password_crypted --value='$1$ff281a82$t6KM54B116neojwiYjbGu/' fencing tools were not found, and are required to use the (optional) power management features. install cman or fence-agents to use them 解决办法 [root@ c7-41 ~]# yum -y install fence-agents
重启cobbler [root@ c7-41 ~]# systemctl restart cobblerd [root@ c7-41 ~]# cobbler sync task started: 2020-05-07_193756_sync task started (id=Sync, time=Thu May 7 19:37:56 2020) running pre-sync triggers cleaning trees removing: /var/lib/tftpboot/grub/images copying bootloaders trying hardlink /var/lib/cobbler/loaders/pxelinux.0 -> /var/lib/tftpboot/pxelinux.0 trying hardlink /var/lib/cobbler/loaders/menu.c32 -> /var/lib/tftpboot/menu.c32 trying hardlink /var/lib/cobbler/loaders/yaboot -> /var/lib/tftpboot/yaboot trying hardlink /usr/share/syslinux/memdisk -> /var/lib/tftpboot/memdisk trying hardlink /var/lib/cobbler/loaders/grub-x86.efi -> /var/lib/tftpboot/grub/grub-x86.efi trying hardlink /var/lib/cobbler/loaders/grub-x86_64.efi -> /var/lib/tftpboot/grub/grub-x86_64.efi copying distros to tftpboot copying images generating PXE configuration files generating PXE menu structure rendering TFTPD files generating /etc/xinetd.d/tftp cleaning link caches running post-sync triggers running python triggers from /var/lib/cobbler/triggers/sync/post/* running python trigger cobbler.modules.sync_post_restart_services running shell triggers from /var/lib/cobbler/triggers/sync/post/* running python triggers from /var/lib/cobbler/triggers/change/* running python trigger cobbler.modules.manage_genders running python trigger cobbler.modules.scm_track running shell triggers from /var/lib/cobbler/triggers/change/* *** TASK COMPLETE ***
[root@ c7-41 ~]# cobbler check No configuration problems found. All systems go. 问题解决了
配置DHCP
[root@ c7-41 ~]# cobbler setting edit --name=manage_dhcp --value=1 [root@ c7-41 ~]# vim /etc/cobbler/dhcp.template subnet 10.0.0.0 netmask 255.255.255.0 { option routers 10.0.0.254; option domain-name-servers 223.5.5.5; option subnet-mask 255.255.255.0; range dynamic-bootp 10.0.0.100 10.0.0.254; default-lease-time 21600; max-lease-time 43200; next-server 10.0.0.41; [root@ c7-41 ~]# cobbler sync task started: 2020-05-07_194644_sync task started (id=Sync, time=Thu May 7 19:46:44 2020) running pre-sync triggers cleaning trees removing: /var/lib/tftpboot/pxelinux.cfg/default removing: /var/lib/tftpboot/grub/images removing: /var/lib/tftpboot/grub/grub-x86.efi removing: /var/lib/tftpboot/grub/grub-x86_64.efi removing: /var/lib/tftpboot/grub/efidefault removing: /var/lib/tftpboot/s390x/profile_list copying bootloaders trying hardlink /var/lib/cobbler/loaders/grub-x86.efi -> /var/lib/tftpboot/grub/grub-x86.efi trying hardlink /var/lib/cobbler/loaders/grub-x86_64.efi -> /var/lib/tftpboot/grub/grub-x86_64.efi copying distros to tftpboot copying images generating PXE configuration files generating PXE menu structure rendering DHCP files generating /etc/dhcp/dhcpd.conf rendering TFTPD files generating /etc/xinetd.d/tftp cleaning link caches running post-sync triggers running python triggers from /var/lib/cobbler/triggers/sync/post/* running python trigger cobbler.modules.sync_post_restart_services running: dhcpd -t -q received on stdout: received on stderr: running: service dhcpd restart received on stdout: received on stderr: Redirecting to /bin/systemctl restart dhcpd.service running shell triggers from /var/lib/cobbler/triggers/sync/post/* running python triggers from /var/lib/cobbler/triggers/change/* running python trigger cobbler.modules.manage_genders running python trigger cobbler.modules.scm_track running shell triggers from /var/lib/cobbler/triggers/change/* *** TASK COMPLETE ***
cobbler命令
上传镜像
创建挂载点并挂载
[root@ c7-41 ~]# mkdir /centos6.10 [root@ c7-41 ~]# mount -o loop CentOS-6.10-x86_64-bin-DVD1.iso /centos6.10 mount: /dev/loop0 is write-protected, mounting read-only [root@ c7-41 ~]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 475M 0 475M 0% /dev tmpfs 487M 0 487M 0% /dev/shm tmpfs 487M 7.7M 479M 2% /run tmpfs 487M 0 487M 0% /sys/fs/cgroup /dev/mapper/centos-root 17G 5.9G 12G 35% / /dev/sda1 1014M 137M 878M 14% /boot tmpfs 98M 0 98M 0% /run/user/0 /dev/loop0 3.8G 3.8G 0 100% /centos6.10
查看挂载后的目录
[root@ c7-41 ~]# ll /centos6.10/ 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
导入镜像
[root@ c7-41 ~]# cobbler import --path=/centos6.10 --name=centos6.10 --arch=x86_64 # --path 镜像路径 # --name为安装源定义-个名字 # --arch指定安装源是32位、64位、 ia64, 目前支持的选项有: x86 |x86_ 64|ia64 #安装源的唯标示就是根据name参数来定义 ,本例导入成功后,安装源的唯一标示就是: centos6.10,如果重复,系统会提示导入失败。
查看导入后镜像
[root@ c7-41 ~]# cobbler distro report --name=centos6.10-x86_64 Name : centos6.10-x86_64 Architecture : x86_64 TFTP Boot Files : {} Breed : redhat Comment : Fetchable Files : {} Initrd : /var/www/cobbler/ks_mirror/centos6.10-x86_64/images/pxeboot/initrd.img Kernel : /var/www/cobbler/ks_mirror/centos6.10-x86_64/images/pxeboot/vmlinuz Kernel Options : {} Kernel Options (Post Install) : {} Kickstart Metadata : {'tree': 'http://@@http_server@@/cblr/links/centos6.10-x86_64'} Management Classes : [] OS Version : rhel6 Owners : ['admin'] Red Hat Management Key : <<inherit>> Red Hat Management Server : <<inherit>> Template Files : {}
配置ks文件
[root@ c7-41 ~]# cd /var/lib/cobbler/kickstarts/ [root@ c7-41 kickstarts]# cp sample_end.ks centos6.10.ks [root@ c7-41 kickstarts]# vim centos6.10.ks # This kickstart file should only be used with EL > 5 and/or Fedora > 7. # For older versions please use the sample.ks kickstart file. # Install OS instead of upgrade install # Use text mode install text # System keyboard keyboard us # System language lang en_US # System timezone timezone Asia/ShangHai #Root password rootpw --iscrypted $default_password_crypted # System authorization information auth --useshadow --enablemd5 # Firewall configuration firewall --disabled # SELinux configuration selinux --disabled # Use network installation url --url=$tree # Clear the Master Boot Record zerombr # System bootloader configuration bootloader --location=mbr # Partition clearing information clearpart --all --initlabel part /boot --fstype=ext4 --size=200 part swap --fstype=swap --size=2048 part / --fstype=ext4 --grow --size=200 --asprimary # If any cobbler repo definitions were referenced in the kickstart profile, include them here. $yum_repo_stanza # Network information $SNIPPET('network_config') # Do not configure the X Window System skipx # Run the Setup Agent on first boot firstboot --disable # Reboot after installation reboot %pre $SNIPPET('log_ks_pre') $SNIPPET('kickstart_start') $SNIPPET('pre_install_network_config') # Enable installation monitoring $SNIPPET('pre_anamon') %end %packages $SNIPPET('func_install_if_enabled') @core @base tree nmap wget lftp lrzsz telnet %end %post --nochroot $SNIPPET('log_ks_post_nochroot') %end %post $SNIPPET('log_ks_post') # Start yum configuration $yum_config_stanza # End yum configuration $SNIPPET('post_install_kernel_options') $SNIPPET('post_install_network_config') $SNIPPET('func_register_if_enabled') $SNIPPET('download_config_files') $SNIPPET('koan_environment') $SNIPPET('redhat_register') $SNIPPET('cobbler_register') # Enable post-install boot notification $SNIPPET('post_anamon') # Start final steps $SNIPPET('kickstart_done') # End final steps sed -ri "/^#UseDNS/c\UseDNS no" /etc/ssh/sshd_config sed -ri "/^GSSAPIAuthentication/c\GSSAPIAuthentication no" /etc/ssh/sshd_config %end
动态编辑指定kickstart文件
[root@ c7-41 kickstarts]# cobbler profile edit --name=centos6.10-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos6.10.ks 检测是否更改成功 [root@ c7-41 kickstarts]# cobbler profile report --name=centos6.10-x86_64 Name : centos6.10-x86_64 TFTP Boot Files : {} Comment : DHCP Tag : default Distribution : centos6.10-x86_64 Enable gPXE? : 0 Enable PXE Menu? : 1 Fetchable Files : {} Kernel Options : {} Kernel Options (Post Install) : {} Kickstart : /var/lib/cobbler/kickstarts/centos6.10.ks Kickstart Metadata : {} Management Classes : [] Management Parameters : <<inherit>> Name Servers : [] Name Servers Search Path : [] Owners : ['admin'] Parent Profile : Internal proxy : Red Hat Management Key : <<inherit>> Red Hat Management Server : <<inherit>> Repos : [] Server Override : <<inherit>> Template Files : {} Virt Auto Boot : 1 Virt Bridge : xenbr0 Virt CPUs : 1 Virt Disk Driver Type : raw Virt File Size(GB) : 5 Virt Path : Virt RAM (MB) : 512 Virt Type : kvm