网络安装服务器套件 Cobbler(补鞋匠)从前,我们一直在做装机民工这份很有前途的职业。自打若干年前 Red Hat 推出了 Kickstart,此后我们顿觉身价倍增。不再需要刻了光盘一台一台地安装 Linux,只要搞定 PXE、DHCP、TFTP,还有那满屏眼花缭乱不知所云的 Kickstart 脚本,我们就可以像哈里波特一样,轻点魔棒,瞬间安装上百台服务器。这一堆花里胡哨的东西可不是一般人都能整明白的,没有大专以上学历,通不过英语四级, 根本别想玩转。总而言之,这是一份多么有前途,多么有技术含量的工作啊。很不幸,Red Hat 最新(Cobbler项目最初在2008年左右发布)发布了网络安装服务器套件 Cobbler(补鞋匠),它已将 Linux 网络安装的技术门槛,从大专以上文化水平,成功降低到初中以下,连补鞋匠都能学会。
Cobbler 的优点:自动管理各个服务器间的配置,更强大的管理功能。而且它还有 Web 管理界面,可以通过点一点鼠标就可以安装一台主机,Kickstart 的模板文件可以配置多个。
参照上图所示,Cobbler 运行流程如下:
- Server 端:
- 启动 Cobbler 服务
- 进行 Cobbler 错误检查,执行 Cobbler check 命令
- 进行配置同步,执行 Cobbler sync 命令
- 复制相关启动文件文件到 TFTP 目录中
- 启动 DHCP 服务,提供地址分配
- DHCP 服务分配 IP 地址
- TFTP 传输启动文件
- Server 端接收安装信息
- Server 端发送 ISO 镜像与 Kickstart 文件
- Client 端:
- 客户端以 PXE 模式启动
- 客户端获取 IP 地址
- 通过 TFTP 服务器获取启动文件
- 进入 Cobbler 安装选择界面
- 客户端确定加载信息
- 根据配置信息准备安装系统
- 加载 Kickstart 文件
- 传输系统安装的其它文件
- 进行安装系统
下面我们开始搭建 Cobbler 无人值守安装服务器
- 关闭 selinux、iptables和 Friewall
- 需要使用 yum 的 epel 源,具体设置请参照拙作:https://blog.csdn.net/gaofei0428/article/details/102903468
- 安装 Cobbler 有一部分软件会被当做依赖进行安装上去,比如 tftp 和 httpd 服务
- yum -y install cobbler cobbler-web dhcp tftp-server pykickstart httpd rsync xinetd
- cobbler #Cobbler 程序包
- cobbler-web #Cobbler 的 Web 服务包
- pykickstart #Cobbler 检查 kickstart 语法错误
- httpd #Apache Web 服务
- xinetd #超级守护进程
- 注:如果安装过程中缺少 rpm 包,可以到以下网站自行下载安装
- https://pkgs.org/
-
/etc/cobbler # 配置文件目录 /etc/cobbler/settings # Cobbler 主配置文件,这个文件是 YAML 栺式,Cobbler 是 python 写的程序。 /etc/cobbler/dhcp.template # DHCP服务的配置模板 /etc/cobbler/tftpd.template # tftp 服务的配置模板 /etc/cobbler/rsync.template # rsync 服务的配置模板 /etc/Cobbler/iso # iso 模板配置文件目录 /etc/cobbler/pxe # pxe 模板文件目录 /etc/cobbler/power # 电源的配置文件目录 /etc/cobbler/users.conf # Web 服务授权配置文件 /etc/cobbler/users.digest # 用于 Web 访问的用户名密码配置文件 /etc/cobbler/dnsmasq.template # DNS 服务的配置模板 /etc/cobbler/modules.conf # Cobbler 模块配置文件 /var/lib/cobbler # Cobbler 数据目录 /var/lib/cobbler/config # 配置文件 /var/lib/cobbler/kickstarts # 默认存放 kickstart 文件 /var/lib/cobbler/loaders # 存放的各种引导程序 /var/www/cobbler # 系统安装镜像目录 /var/www/cobbler/ks_mirror # 导入的系统镜像列表 /var/www/cobbler/images # 导入的系统镜像启动文件 /var/www/cobbler/repo_mirror # yum 源存储目录 /var/log/cobbler # 日志目录 /var/log/cobbler/install.log # 客户端系统安装日志 /var/log/cobbler/cobbler.log # Cobbler 日志
下面开始配置 Cobbler
- 首先启动 Cobbler 和 httpd 服务
- systemctl start cobblerd httpd
- 设置为开机自启动
- systemctl enable cobblerd
- systemctl enable httpd
- 启动无误后,编辑 /etc/cobbler/settings Cobbler 主配置文件
-
vim /etc/cobbler/settings
-
搜索 server 和 next_server 修改为对应的服务器 IP
-
修改安装操作系统默认 root 用户密码,使用 openssl 加密
-
openssl passwd -1 -salt 'root' '123456'
-
$1$root$j0bp.KLPyr.u9kgQ428D10
-
修改 Cobbler 管理 dhcp 服务
-
manage_dhcp: 1
-
manage_tftpd: 1 #默认已开启
- 防止客户端重复安装操作系统,增加默认从本机硬盘启动菜单
- pxe_just_once: 1
-
修改 tftp 服务被 xinetd 服务管理
- vim /etc/xinetd.d/tftp
- 安装完默认是 disable = yes 关闭状态
-
下载操作系统引导文件
-
cobbler get-loaders
-
开启 rsyncd 服务,设置为开机自启动
-
systemctl start rsyncd
-
systemctl enable rsyncd
配置 DHCP,Cobbler 自动管理 DHCP 服务,只需要修改 Cobbler 中的模板配置文件
- vim /etc/cobbler/dhcp.template
-
subnet 192.168.10.0 netmask 255.255.255.0 #配置默认为 192.168.1.0 网段,具体要看你的装机 vlan 划分
-
option routers 192.168.10.2; #按照实际的网关为准
-
option domain-name-servers 192.168.10.2; #修改 DNS 地址
-
range dynamic-bootp 192.168.10.100 192.168.10.254; # 可分配的起始IP-结束IP
-
$next_server 为变量值(前面修改的主配置文件中的地址 192.168.10.2)
-
导入镜像以及配置
- 挂载光驱
-
导入镜像(时间较长)
-
cobbler import --path=/mnt/cdrom --name=CentOS-7.5 --arch=x86_64
-
查看镜像,上面是镜像名称,下面是启动菜单
-
cobbler list
-
确认配置无误后,同步配置文件,需要先重启 Cobblerd
-
systemctl restart cobblerd
-
cobbler sync
-
检查配置
-
cobbler check
-
下面这2个错误可以忽略
-
定制 ks 自动应答文件
- cobbler profile list
- cobbler profile report --name=CentOS-7.5-x86_64
- 默认使用的是 /var/lib/cobbler/kickstarts/sample_end.ks
- 改变默认的 ks 文件(需要 root 用户)
- cobbler profile edit --distro=CentOS-7.5-x86_64 --name=CentOS-7.5-x86_64 --kickstart=/var/lib/cobbler/kickstarts/CentOS7.5.ks
- cobbler profile list
- cobbler profile report --name=CentOS-7.5-x86_64
- 编辑 vim /var/lib/cobbler/kickstarts/CentOS7.5.ks 文件
-
install #全新安装
text #安装模式为文字界面
url --url=$tree # 指定 ks 自动应答文件位置,引用Cobbler的内置变量 $tree
auth --enableshadow --passalgo=sha512 #设置系统的授权选项
firstboot --enable
reboot #安装完成后自动重启
keyboard us #默认键盘设置
lang en_US.UTF-8 #默认语言设置
timezone --utc Asia/Shanghai #默认时区设置
rootpw --iscrypted $default_password_crypted #默认 root 用户密码设置,引用 /etc/cobbler/settings 中设置的变量
firewall --disable #关闭防火墙以及selinux
selinux --disable
ignoredisk --only-use=sda #指定安装到哪个硬盘
bootloader --append="quiet crashkernel=auto" --location=mbr --boot-drive=sda #指定在那个硬盘安装 mbr 引导
network --bootproto=dhcp --device=eth0 --onboot=on #指定网卡名称以及启动方式
zerombr #清空硬盘的 mbr 信息
clearpart --all --initlabel #清空硬盘所有分区
part /boot --fstype="xfs" --ondisk=sda --size=200 #创建 boot 分区 指定大小为 200MB
part pv.156 --fstype="lvmpv" --ondisk=sda --size=1 --grow #创建 pv 卷组,自动扩展到最大容量
volgroup centos --pesize=4096 pv.156 #创建 vg 指定 pesize 为 4096 KB
logvol swap --fstype="swap" --size=2047 --name=swap --vgname=centos #创建swap 分区 ,指定大小为 2047 MB
logvol / --fstype="xfs" --vgname=centos --size=1 --grow #创建 lvm 根分区 自动扩展到最大容量%packages #定制安装为 最小化安装
@^minimal
@core
chrony
kexec-tools
%end
- 新建一个虚拟机测试安装
- 注意安装 CentOS 7.X 的内存不能小于 2G ,否则会报错
-
添加新的安装选项 Centos-6.9-x86_64
- 挂载 Centos-6.9 光盘
- mount /sr0 /mnt/cdrom && mount /sr1 /mnt/cdrom1
- Centos 6.9 有2张 安装DVD,导入DVD1 镜像后,将第2张 DVD上的 Packages/ 文件夹下,所有文件拷贝到 /var/www/cobbler/ks_mirro/Centos-6.9-x86_64/Packages 下面即可
- 首先导入第一张DVD镜像
- cobbler import --path=/mnt/cdrom --name=Centos-6.9 --arch=x86_64
- 拷贝文件
- \cp -r -a /mnt/cdrom1/Packages/* /var/www/cobbler/ks_mirror/Centos-6.9-x86_64/Packages/
- 查看列表
- cobbler profile list
- 总大小为 5.8 G
- 使用 cobbler profile list 命令查看列表有错误的话,可以删除掉重新添加
- cobbler profile remove --name=对应错误的名称
- 复制一份之前创建的 ks 自动应答文件,修改为对应的启动菜单名称
- \cp -a /var/lib/cobbler/kickstarts/CentOS7.5.ks /var/lib/cobbler/kickstarts/CentOS6.9.ks
-
注意 CentOS 6 系列默认不支持 xfs 硬盘分区格式,要做适当修改
- bootloader --append="crashkernel=auto rhgb quiet" --location=mbr --driveorder="sda" #这里要改成 --driveorder
network --bootproto=dhcp --device=eth0 --onboot=on
zerombr
clearpart --all --initlabel
part /boot --fstype=ext4 --size=200 #修改为 ext4 ,低版本CentOS的要修改成 ext3
part pv.008002 --grow --size=1
volgroup VolGroup --pesize=4096 pv.008002
logvol / --fstype=ext4 --name=lv_root --vgname=VolGroup --grow --size=1 #修改为 ext4 ,低版本CentOS的要修改成 ext3
logvol swap --name=lv_swap --vgname=VolGroup --size=2048%packages #定制安装那些包
@base #基本包组,相当于最小化安装
@core
%end -
有一个挺有趣的现象,第一次做完直接复制的 7.5.ks 文件,没有做任何改动,启动虚拟机竟然安装成功了,可是重启机器后,再次启动虚拟机安装,就提示 boot 分区找不到和不支持 xfs 文件格式,什么都没动过。。。。。。折腾了3个多小时才搞定。
- 检测 ks 文件是否有错
- ksvalidator /var/lib/cobbler/kickstarts/CentOS6.9.ks
- 将 Centos6.9.ks 文件关联到 Centos-6.9-x86_64
- cobbler profile list
- 注意对应的名称
- cobbler profile edit --distro=Centos-6.9-x86_64 --name=Centos-6.9-x86_64 --kickstart=/var/lib/cobbler/kickstarts/CentOS6.9.ks
- cobbler profile report --name=Centos-6.9-x86_64
- 重启 cobblerd 服务
- systemctl restart cobblerd
- cobblerd sync
-
打开刚才新建的虚拟机进行测试安装 - 设置为从网络启动
来源:CSDN
作者:笨小孩@GF
链接:https://blog.csdn.net/gaofei0428/article/details/104047339