cobbler集群快速部署

需求场景

实验室有多台服务器在机柜里,如果一台一台装,会十分麻烦。给出解决方案。

cobbler+pxe

网络环境

服务器由一台三层交换机管理,分2个vlan.
如有使用路由器,记得关闭路由器dhcp功能
地址段为,10.0.0.0/24和172.16.1.0/24
服务器有2张网卡,默认使用第一张。(我这里用的第二张,第一张我有用)
在部署前需关闭交换机DHCP功能。

cobbler所需组件介绍

cobbler (cobbler 的核心)
httpd (提供 cobbler 的 web 界面)
dhcpd (为自动安装系统分配 IP 地址)
epel-release(为之提供yum源)
rsync (cobbler 需要同步信息)
cobbler-web (cobbler 的一个 web 插件)
xinetd (为 rsync 和 tftp 的守护进程)
tftp (传送安装的一些文件的 类似ftp)

环境准备

image-20231009194445778

基本环境部署

# 关闭防火墙和 selinux
systemctl stop firewalld
systemctl disable firewalld
sed -i '/SELINUX/s/enforcing/disabled/'/etc/selinux/config

# cobbler 安装
腾讯云:
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
腾讯云:
wget -O /etc/yum.repos.d/epel.repo http://mirrors.cloud.tencent.com/repo/epel-7.repo
yum -y install cobbler cobbler-web tftp-server dhcp httpd xinetd

# 加入开机自启并启动
systemctl start httpd cobblerd
systemctl enable httpd cobblerd

## 问题
输入cobbler check,会出现很多提示,我们一一解决 问题如下

image-20231009194909377

# 启用Cobbler的动态配置设置 # Cobbler可以根据需要动态地更改和更新配置设
置
sed -ri '/allow_dynamic_settings:/c\allow_dynamic_settings: 1' /etc/cobbler/settings
grep allow_dynamic_settings /etc/cobbler/settings
systemctl restart cobblerd
# 开始解决问题
1.cobbler setting edit --name=server --value=172.16.1.61

2.cobbler setting edit --name=next_server --value=172.16.1.61

3.sed -ri '/disable/c\disable = no' /etc/xinetd.d/tftp
systemctl enable xinetd
systemctl restart xinetd

4. cobbler get-loaders # 先不要管

5. systemctl start rsyncd
systemctl enable rsyncd

6.可选 # 这个报错无所谓

7.yum -y install pykickstart

8.重装后系统的默认密码配置
[root@m01 ~]# openssl passwd -1 -salt `openssl rand -hex 4`'123'
Password: 
$1$5bc4a82d$8SicqqF902td6SRpd2ilc1

[root@m01 ~]# cobbler setting edit --name=default_password_crypted --value="$1$5bc4a82d$8SicqqF902td6SRpd2ilc1"

9.yum -y install fence-agents

10.修改配置文件
vim /etc/xinetd.d/tftp
wait=yes 改成 wait=no

DHCP配置

# 设置Cobbler 管理 DHCP 服务
[root@m01 ~]# cobbler setting edit --name=manage_dhcp --value=1

# 编辑 Cobbler 的 DHCP 模板文件
vim /etc/cobbler/dhcp.template
# 就改成这样子就行
subnet 172.16.1.0 netmask 255.255.255.0 {
option routers 172.16.1.2;
option domain-name-servers 223.5.5.5;
option subnet-mask 255.255.255.0;
range dynamic-bootp 172.16.1.100 172.16.1.254;

# 同步cobbler配置,它会根据配置自动修改dhcp等
[root@m01 [~]# cobbler sync
出现*** TASK COMPLETE ***就行

# 这个时候开启新建的虚拟机,桥接模式测试下是否出现如下页面,注意不要挂载光驱
(此页面为成功页面)

image-20231009155745434

image-20231009155814170

image-20231009160300477

image-20231009160322306

部署Centos7

# 创建挂载目录
1.mkdir /mnt/iso

方法一:下载aliyun的centos7镜像 
# 建议下载到tmp目录
wget https://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso
# 挂载镜像
[root@m01 [/tmp]# mount /tmp/CentOS-7-x86_64-DVD-2009.iso
/mnt/iso/
mount: /dev/loop0 is write-protected, mounting read-only
# 镜像导入cobbler命令
cobbler import --path=/mnt/iso/ --name=Centos7 --arch=x86_64
# 查看镜像
[root@m01 [~]# cobbler distro report --name=centos7-x86_64

方法二:
直接挂载自己的镜像
mount /dev/cdrom /mnt/iso
cobbler import --arch=x86_64 --path=/mnt/iso --name=Centos7

# 写入安装脚本
# [root@m01 [~]# vim /var/lib/cobbler/kickstarts/centos7.ks

# Cobbler for Kickstart Configurator for CentOS 7.4 by lidao 
install
url --url=$tree  
text
lang en_US.UTF-8
keyboard us

zerombr
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet "

$SNIPPET('network_config')
timezone --utc Asia/Shanghai
authconfig --enableshadow --passalgo=sha512

rootpw --iscrypted $1$5bc4a82d$8SicqqF902td6SRpd2ilc1 

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
@base
@compat-libraries
@debugging
@development
bash-completion
tree
nmap
sysstat
lrzsz
dos2unix
telnet
%end

%post
systemctl disable postfix.service
%end

# 指定配置文件
cobbler profile edit --name=Centos7-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos7.ks

# 同步cobbler
cobbler sync

重启虚拟机(需要2c2g)

image-20231009200821981

开机后有镜像

image-20231009160741225

选择镜像后等待安装完成

image-20231009201743272

image-20231009202303150