实战-使用 Cobbler 安装操作系统

简介: Linux

搭建好 Cobbler 服务端后,使用默认的 kickstarts 引导文件对客户端安装系统,且默认安装的是最小化的系统。我们可以自定义 kickstarts 引导文件进而实现对客户端的自定义安装系统。
环境:
CentOS Linux release 7.6.1810
VMware Workstation Pro 14

定制系统安装的软件包
查看默认的 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                      : kvm

注: distros 是发行版本,即光盘镜像信息。 profiles 指的是 ks 应答文件。 systems 是指通 Cobbler 安装好的物理机名称。

[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
可以看到有很多默认的配置文件。

上传 CentOS7.ks 到 Cobbler 服务器上。CentOS7.ks 这个配置文件里面安装了开发工具相关软件包。

[root@Jaking kickstarts]# rz

实战-使用 Cobbler 自定义安装系统实战-使用 Cobbler 自定义安装系统

[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
lang 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 自定义安装系统实战-使用 Cobbler 自定义安装系统

注意:内存要足够大,网络模式要和 Cobbler 服务端的网络模式一致。

创建过程省略,直接来到开机启动界面:

实战-使用 Cobbler 自定义安装系统实战-使用 Cobbler 自定义安装系统

实战-使用 Cobbler 自定义安装系统实战-使用 Cobbler 自定义安装系统

可以看到,需要安装 1262 个包,不再是原来的最小化安装了。

实战-使用 Cobbler 自定义安装系统实战-使用 Cobbler 自定义安装系统

安装成功后,默认启动命令行模式
输入 root 123456 登录系统:

实战-使用 Cobbler 自定义安装系统实战-使用 Cobbler 自定义安装系统

设置默认启动模式为图形化模式 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
实战-使用 Cobbler 自定义安装系统实战-使用 Cobbler 自定义安装系统

不能正常启动图形化模式

解决方法
安装图形化软件

[root@localhost ~]# yum install -y xorg gnome glx*
切换到图形化模式

[root@localhost ~]# init 5
实战-使用 Cobbler 自定义安装系统实战-使用 Cobbler 自定义安装系统
实战-使用 Cobbler 自定义安装系统实战-使用 Cobbler 自定义安装系统

相关文章
|
4月前
|
关系型数据库 MySQL 数据库
【Mac os系统】安装MySQL数据库
本文详细介绍了在Mac OS系统上安装MySQL数据库的步骤,包括下载、安装、配置环境变量、启动服务、授权设置以及解决常见问题,并提供了一些常用的MySQL命令。
227 0
【Mac os系统】安装MySQL数据库
|
3月前
|
Oracle Java 关系型数据库
CentOS 7.6操作系统部署JDK实战案例
这篇文章介绍了在CentOS 7.6操作系统上通过多种方式部署JDK的详细步骤,包括使用yum安装openjdk、基于rpm包和二进制包安装Oracle JDK,并提供了配置环境变量的方法。
289 80
|
26天前
|
Linux 开发者 iOS开发
Python系统调用实战:如何在不同操作系统间游刃有余🐟
本文介绍了 Python 在跨平台开发中的强大能力,通过实际例子展示了如何使用 `os` 和 `pathlib` 模块处理文件系统操作,`subprocess` 模块执行外部命令,以及 `tkinter` 创建跨平台的图形用户界面。这些工具和模块帮助开发者轻松应对不同操作系统间的差异,专注于业务逻辑。
36 2
|
2月前
|
应用服务中间件 Linux nginx
Mac os 安装 nginx 教程(success)
这篇文章是关于如何在Mac OS系统上使用Homebrew安装nginx及其依赖,并解决安装过程中可能出现的权限问题。
139 0
Mac os 安装 nginx 教程(success)
|
3月前
|
Windows
Windows操作系统部署安装Kerberos客户端
详细介绍了在Windows操作系统上部署安装Kerberos客户端的完整过程,包括下载安装包、安装步骤、自定义安装路径、修改环境变量、配置hosts文件和Kerberos配置文件,以及安装后的验证步骤。
398 3
Windows操作系统部署安装Kerberos客户端
|
3月前
|
Ubuntu 网络安全 开发工具
Ubuntu19.04的安装过程详解以及操作系统初始化配置
本文详细介绍了Ubuntu 19.04操作系统的安装过程、初始化配置、网络设置、软件源配置、SSH远程登录以及终端显示设置。
103 1
Ubuntu19.04的安装过程详解以及操作系统初始化配置
|
4月前
|
编解码 Linux 虚拟化
超详细VMware虚拟机安装Win10操作系统过程图解
这篇文章提供了一个详细的VMware虚拟机安装Windows 10操作系统的图解教程,包括了从创建虚拟机到安装操作系统的全过程,以及安装后的一些基本设置,如屏幕分辨率调整等。作者还提到了后续会分享关于磁盘分区的创建过程。
超详细VMware虚拟机安装Win10操作系统过程图解
|
4月前
|
Ubuntu 安全 iOS开发
Kylin操作系统安装及使用指南
Kylin操作系统安装及使用指南
|
4月前
|
Linux Docker 容器
在CentOS操作系统上使用yum安装/使用/卸载Docker容器引擎
在CentOS操作系统上安装、配置、使用和卸载Docker容器引擎的详细步骤,包括配置Docker镜像加速的方法。
356 0
|
4月前
|
Ubuntu NoSQL 关系型数据库
在Ubuntu操作系统上安装/使用/卸载Docker容器引擎
这篇文章详细介绍了在Ubuntu操作系统上安装、配置、使用、基本操作以及卸载Docker容器引擎的步骤,包括配置Docker镜像加速和使用Docker部署Nginx、MySQL和Redis服务器的方法。
88 0