Environment:
CentOS Linux Release 7.6.1810
VMware Workstation Pro 14
View the default file ks
[root@Jaking ~]# cobbler report distros: ========== Name : CentOS-7.6-x86_64 Architecture : x86_64 TFTP Boot Files : {} Breed : redhat Comment : Fetchable Files : {} Initrd : /var/www/cobbler/ks_mirror/CentOS-7.6-x86_64/images/pxeboot/initrd.img Kernel : /var/www/cobbler/ks_mirror/CentOS-7.6-x86_64/images/pxeboot/vmlinuz Kernel Options : {} Kernel Options (Post Install) : {} Kickstart Metadata : {'tree': 'http://@@http_server@@/cblr/links/CentOS-7.6-x86_64'} Management Classes : [] OS Version : rhel6 Owners : ['admin'] Red Hat Management Key : <> Red Hat Management Server : <> Template Files : {} profiles: ========== Name : CentOS-7.6-x86_64 TFTP Boot Files : {} Comment : DHCP Tag : default Distribution : CentOS-7.6-x86_64 Enable gPXE? : 0 Enable PXE Menu? : 1 Fetchable Files : {} Kernel Options : {} Kernel Options (Post Install) : {} Kickstart : /var/lib/cobbler/kickstarts/sample_end.ks Kickstart Metadata : {} Management Classes : [] Management Parameters : <> Name Servers : [] Name Servers Search Path : [] Owners : ['admin'] Parent Profile : Internal proxy : Red Hat Management Key : <> Red Hat Management Server : <> Repos : [] Server Override : <> 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: sq.m.
Note: distros release is that the CD-ROM image information. ks profiles refers to the answer file. It refers Cobbler systems installed on a physical machine name.
[Root @ Jaking ~] # cd / var / lib / cobbler / kickstarts / [Root @ Jaking kickstarts] # ls default.ks legacy.ks sample_esx4.ks sample.ks esxi4-ks.cfg pxerescue.ks sample_esxi4.ks sample_old.seed esxi5-ks.cfg sample_autoyast.xml sample_esxi5.ks sample.seed install_profiles sample_end.ks sample_esxi6.ks sample.seed.28
We can see a lot of the default configuration file.
Upload CentOS7.ks to the Cobbler server. CentOS7.ks This configuration file which installed the development tools related packages.
[Root @ Jaking kickstarts] # rz
[Root @ Jaking kickstarts] # ls CentOS7.ks install_profiles sample_end.ks sample_esxi6.ks sample.seed.28 default.ks legacy.ks sample_esx4.ks sample.ks esxi4-ks.cfg pxerescue.ks sample_esxi4.ks sample_old.seed esxi5-ks.cfg sample_autoyast.xml sample_esxi5.ks sample.seed [Root @ Jaking kickstarts] # cat CentOS7.ks # Cobbler for Kickstart Configurator for CentOS 7 by clsn install url --url=$tree text long en_US.UTF-8 keyboard us zerombr bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet" #Network information $SNIPPET('network_config') #network --bootproto=dhcp --device=eth0 --onboot=yes --noipv6 --hostname=CentOS7 timezone --utc Asia/Shanghai authconfig --enableshadow --passalgo=sha512 rootpw --iscrypted $default_password_crypted clearpart --all --initlabel part /boot --fstype xfs --size 1024 part swap --size 1024 part / --fstype xfs --size 1 --grow firstboot --disable selinux --disabled firewall --disabled logging --level=info reboot %pre $SNIPPET('log_ks_pre') $SNIPPET('kickstart_start') $SNIPPET('pre_install_network_config') # Enable installation monitoring $SNIPPET('pre_anamon') %end %packages @additional-devel @development @platform-devel bash-completion chrony dos2unix kexec-tools lrzsz sysstat tree vim wget git net-tools %end %post systemctl disable postfix.service %end [root@Jaking kickstarts]# cobbler profile list #查看当前启动项,使用的配置文件 CentOS-7.6-x86_64
修改 name 是 CentOS-7.6-x86_64 的 kickstart 文件为 CentOS7.ks
[root@Jaking kickstarts]# cobbler profile edit --name CentOS-7.6-x86_64 --kickstart=/var/lib/cobbler/kickstarts/CentOS7.ks [root@Jaking kickstarts]# cobbler report | grep Kickstart Kickstart Metadata : {'tree': 'http://@@http_server@@/cblr/links/CentOS-7.6-x86_64'} Kickstart : /var/lib/cobbler/kickstarts/CentOS7.ks Kickstart Metadata : {}
通过给内核传参数,修改网卡名称为 eth0
[root@Jaking kickstarts]# cobbler profile edit --name CentOS-7.6-x86_64 --kopts='net.ifnames=0 biosdevname=0'
配置文件内容如下:
[root@Jaking kickstarts]# vim CentOS7.ks #查看配置文件中的,默认就可以,不需要修改 # Cobbler for Kickstart Configurator for CentOS 7 by clsn Install #安装系统 url --url=$tree #url 地址为 Cobbler 内置变量 text #文本方式安装,修改为图形界面则为 Graphical lang en_US.UTF-8 #语言 keyboard us #键盘 zerombr #该参数用于清除引导信息,需要让其生效可以在参数后添加 yes 即可。可选项,一般不用。 bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet" #指定引导装载程序怎样被安装.对于安装和升级,这个选项都是必需的. #Network information $SNIPPET('network_config') #该参数表示使用下方%pre 中的脚本来配置网络,相关脚本存放于/var/lib/cobbler/snippets #如果不需要脚本配置可启用以下配置 #network --bootproto=dhcp --device=eth0 --onboot=yes --noipv6 --hostname=CentOS7 timezone --utc Asia/Shanghai #时区 authconfig --enableshadow --passalgo=sha512 #加密 shadow rootpw --iscrypted $default_password_crypted #设置 root 密码 clearpart --all --initlabel #--all 初除所有分区,后者将磁盘标签初始化为缺省值设置。 part /boot --fstype xfs --size 1024 #boot分区大小 part swap --size 1024 #swap分区大小 part / --fstype xfs --size 1 --grow #根分区大小 firstboot --disable #决定是否在系统第一次引导时启动"设置代理”,禁用。 selinux --disabled #在系统里设置 SELinux 状态 firewall --disabled #在系统狸设置而防火墙状态 logging --level=info #这个命令控制安装过程中anaconda的错误日志,它对安装好的系统没有影响。 reboot #安装后重启 %pre #pre 中定了前面使用的具体脚本名称。 $SNIPPET('log_ks_pre') $SNIPPET('kickstart_start') $SNIPPET('pre_install_network_config') # Enable installation monitoring $SNIPPET('pre_anamon') %end %packages #自定义安装内容,这里可以可以自行生成 ks 文件然后把对应的配置复制到这里。当前配置为最小化安装,以及安装系统常用工具。 @additional-devel @development @platform-devel bash-completion chrony dos2unix kexec-tools lrzsz sysstat tree vim wget git net-tools %end %post #安装后执行操作,可以执行脚本也可以直接执行命令。 systemctl disable postfix.service %end
定制 Cobbler 引导菜单(名称、超时时间、默认启动菜单)
[root@Jaking kickstarts]# vim /etc/cobbler/pxe/pxedefault.template DEFAULT menu PROMPT 0 MENU TITLE Jaking #菜单名称 TIMEOUT 100 #超时时间 TOTALTIMEOUT 6000 ONTIMEOUT $pxe_timeout_profile LABEL local MENU LABEL (local) MENU DEFAULT LOCALBOOT -1 $pxe_menu_items #该变量是我自定义的引导菜单,复制到 LABEL local 配置项上方,否则默认启动还是 local。 MENU end
同步 Cobbler 配置
[root@Jaking kickstarts]# systemctl restart cobblerd [root@Jaking kickstarts]# cobbler sync task started: 2020-01-04_050537_sync task started (id=Sync, time=Sat Jan 4 05:05:37 2020) running pre-sync triggers cleaning trees removing: /var/www/cobbler/images/CentOS-7.6-x86_64 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/images/CentOS-7.6-x86_64 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 files for distro: CentOS-7.6-x86_64 trying hardlink /var/www/cobbler/ks_mirror/CentOS-7.6-x86_64/images/pxeboot/vmlinuz -> /var/lib/tftpboot/images/CentOS-7.6-x86_64/vmlinuz trying hardlink /var/www/cobbler/ks_mirror/CentOS-7.6-x86_64/images/pxeboot/initrd.img -> /var/lib/tftpboot/images/CentOS-7.6-x86_64/initrd.img copying images generating PXE configuration files generating PXE menu structure copying files for distro: CentOS-7.6-x86_64 trying hardlink /var/www/cobbler/ks_mirror/CentOS-7.6-x86_64/images/pxeboot/vmlinuz -> /var/www/cobbler/images/CentOS-7.6-x86_64/vmlinuz trying hardlink /var/www/cobbler/ks_mirror/CentOS-7.6-x86_64/images/pxeboot/initrd.img -> /var/www/cobbler/images/CentOS-7.6-x86_64/initrd.img Writing template files for CentOS-7.6-x86_64 rendering DHCP files generating /etc/dhcp/dhcpd.conf rendering TFTPD files generating /etc/xinetd.d/tftp processing boot_files for distro: CentOS-7.6-x86_64 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 服务端的网络模式一致。
创建过程省略,直接来到开机启动界面:
可以看到,需要安装 1262 个包,不再是原来的最小化安装了。
安装成功后,默认启动命令行模式
输入 root 123456 登录系统:
设置默认启动模式为图形化模式 graphical.target
[root@localhost ~]# systemctl get-default multi-user.target [root@localhost ~]# systemctl set-default graphical.target Removed symlink /etc/systemd/system/default.target. Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/graphical.target. [root@localhost ~]# systemctl get-default graphical.target [root@localhost ~]# reboot
You can not start the graphical mode normal
Graphical software installation
[root@localhost ~]# yum install -y xorg* gnome* glx*
Graphics mode switch to
[root@localhost ~]# init 5
This article Original Address: https://www.linuxprobe.com/?p=170731 Editor: Biography chess, auditors: by Pang Po
REVIEW | After building a good Cobbler server, using the default kickstarts boot files installed on the client system, and the default installation of the system is minimized. We can customize kickstarts boot files so as to realize a custom installation of the system to the client. |