一、cobbler简介
cobbler工具的引入,不仅简化了三个关键软件(DHCP+TFTP+HTTPD)的配置维护工作,还自动管理了文件和资源的共享与复制,如Apache镜像和模板的共享,从而实现半自动化的批量系统安装管理,减轻了管理员的工作负担。
cobbler check 进行cobbler模块环境的检测
cobbler sync 配置同步更新(这个平台需要先把这些安装好DHCP+TFTP+HTTPD才可以)
1.准备工作
添加一块新的磁盘,100GB,平均分成两个分区,然后,分别挂载至:/isos 和 /var/www 目录上,然后再进行后续实验。 并关闭防火墙和SELinux,并让Linux连接上互联网
添加一块新的磁盘,100GB,平均分成两个分区,然后,分别挂载至:/isos 和 /var/www 目录上,然后再进行后续实验。 并关闭防火墙和SELinux,并让Linux连接上互联网**
后续空间需求很大,添加一个新的磁盘 100GB平分两个分区,并挂载到/isos和/var/www(需要在安装httpd前进行挂载不然会路径覆盖)目录上
yum -y install gdisk
gdisk /dev/sdb #分2个50G
mkdir -p /var/www #提前创建以免覆盖apache的目录
mkdir -p /isos
mkfs.xfs /dev/sdb1
mkfs.xfs /dev/sdb2
mount /dev/sdb1 /isos
mount /dev/sdb2 /var/www
df -h
# 配置基础网络yum源和epel扩展yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum makecache
2.安装cobbler和相关软件
yum -y install cobbler cobbler-web tftp-server dhcp httpd xinetd
systemctl enable --now httpd cobblerd ##将这两个服务设置为开机自启动
3.配置cobbler
3.1 检查cobbler配置,根据提示完成修改
用cobbler check 中提示9个问题
3.2 逐个问题解决
问题一&问题二:配置文件变量没有设置
vim /etc/cobbler/settings
allow_dynamic_settings: 1 #设置为不启动cobbler的IP只设置了下面的不生效修改为1生效
server: 192.168.88.150 #这是两个变量,将这两个修改为本机IP
next_server: 192.168.88.150
pxe_just_once: 1
manage_dhcp: 1
systemctl restart cobblerd
#一定要先重启服务然后执行下面两条命令
问题三:没有将tftp设置为开机自启动
vim /etc/xinetd.d/tftp
disable = no
问题四:没有找到cobbler-loaders文件下载好后上传上去
unzip cobbler-loaders.zip
cd /var/lib/cobbler/loaders/
cp -a /root/cobbler-loaders/* ./
问题五: 没有开启rsync
systemctl enable --now rsyncd
问题六:忽略即可,debian相关配置
问题七:没有安装软件
yum -y install pykickstart
问题八:没有给root设置加密密码
openssl passwd -1 -salt 'root' '123456'
$1$root$j0bp.KLPyr.u9kgQ428D10
#以上内容是加密密码,最终在kickstart文件中生效
vim /etc/cobbler/settings
default_password_crypted: "$1$root$j0bp.KLPyr.u9kgQ428D10"
问题九:没有fencing这个软件
yum -y install fence-agents
3.3 配置cobbler-dhcp
vim /etc/cobbler/dhcp.template 进入cobbler的配置文件
subnet 192.168.88.0 netmask 255.255.255.0 { ##设置dhcp分配的IP和子网掩码
option routers 192.168.1.5; ##网关
option domain-name-servers 192.168.1.1; ##dns
option subnet-mask 255.255.255.0;
range dynamic-bootp 192.168.1.100 192.168.1.254; 内存池
default-lease-time 21600;
max-lease-time 43200;
next-server $next_server; 调用变量
class "pxeclients" { 各种引导程序
match if substring (option vendor-class-identifier,0,9)="PXElient";
if option pxe-system-type =00:02 {
filename"ia64/elilo.efi";
}else if option pxe-system-type = 00:07
}
}
systemctl restart cobblerd
cobbler sync #开启并同步
#测试
cat /etc/dhcp/dhcpd.conf
ls /var/lib/tftpboot/
3.4 将所有服务全部重启一遍
#导入镜像需要先将各种服务重启一下
systemctl restart httpd dhcpd tftp.socket cobblerd rsyncd
systemctl enable --now httpd dhcpd tftp.socket cobblerd rsyncd
3.5 导入镜像
#导入镜像
mkdir /isos/centos7.6
mount -o loop /dev/sr0 /isos/centos7.6/
cobbler import --name="CentOS-7.6-x86_64" --path=/isos/centos7.6 ##--name为上传后的名字发行版本类型和大版本,cpu架构,--path从哪里来的
#查看镜像
ll /var/www/cobbler/ks_mirror/
vim /var/lib/tftpboot/pxelinux.cfg/default #菜单文件这里面的文件会在你上传后会进行刷新一遍
#装机脚本cobbler已经自动写好
在执行cobbler import报错请检查命令path路径
![[Pasted image 20241031212829.png]]
3.6.生成ks模板文件(自动装机脚本重要步骤 可跳过)
cd /var/lib/cobbler/kickstarts/
#可以直接导入之前pxe用的文件
vim centos7.cfg
url --url=http://192.168.88.110/cobbler/ks_mirror/CentOS-7.6-x86_64/
#修改为指定目录
#还可以写入一些需求脚本#如下
%post --interpreter=bash #post表示在服务启动之后运行
cd /etc/yum.repos.d/
mkdir bak
mv C* bak/
echo "[centos7]
name=centos7 repo for kickstart
baseurl=http://192.168.88.110/centos7
enable=1
gpgcheck=0" >> CentOS-Media.repo
%end
#如果是桌面版请添加一个用户
#写入如下规则
user --name=user --password=$6$08xNwgwvXHCC/W8J$Sa3I0sd832pCk/M1Dr.os.1P6qFErIb5I3Okm0G7a9P0PaeHQnYKxOHMcZ1OeumLmYshQJaAurdxNJGZdKyD90 --iscrypted --gecos="user"
#生成上述的密文密码可以使用以下命令:借助python命令完成
python -c 'import crypt; print(crypt.crypt("your_password", crypt.mksalt(crypt.METHOD_SHA512)))'
3.7.查看指定镜像的profile配置文件,将ks文件绑定到指定镜像(可跳过)
cobbler profile list 查看导入的镜像列表
cobbler profile report --name="上传后的镜像名称" 查看镜像的详细信息(其中kickstart选择好的装机脚本)
cobbler profile edit --name=上传后的镜像名称 --kickstart=位置 将镜像使用的装机脚本进行替换
3.8.设置web管理终端
#注意:虚拟机的内存必须大于2G,否则会出现无法安装的情况
#修改cobbler的web验证模式 设置web管理终端
grep -A 1 "\[authentication\]" /etc/cobbler/modules.conf
htdigest -c /etc/cobbler/users.digest Cobbler 用户名称 ##添加一个管理员用户就可以在网页上使用https://IP地址/cobbler_web进行访问到
#使用浏览器登陆cobbler_web管理终端
https://192.168.88.110/cobbler_web
#此处必须使用https协议进行登陆
课外扩展
- cobbler sync 报错 开启并同步,没有同步的话dhcp和一些其他位置信息不同可能无法重启成功或信息不同,可检测是否有遗留问题没有解决
如果又报错:dhcpd -t failed
原因:python文件内命令错误
解决:
cp -a /usr/lib/python2.7/site-packages/cobbler/modules/sync_post_restart_services.py /tmp
cd /tmp
vim sync_post_restart_services.py
#修改前dhcp_restart_command = "service %s restart" % dhcp_service_name
#修改后dhcp_restart_command = "/usr/bin/systemctl restart %s " % dhcp_service_name
python -m compileall sync_post_restart_services.py
python -O -m compileall sync_post_restart_services.py
#重新编译
cp -a * /usr/lib/python2.7/site-packages/cobbler/modules/
#复制粘贴回去
systemctl restart cobbler
cobbler sync
- 网络批量无人值守装机技术在生产环境中的应用及其优势是什么?
- U盘携带病毒风险较高且部分设备禁止插入USB;光盘刻录功能受限,且存储量相对较小;而网络批量无人值守装机不受上述限制,尤其适合多台机器同时部署相同操作系统及软件环境,提高效率。
- 在特殊场景下,如没有专业机房或网络设备不足时,如何进行装机?
- 可先将装机镜像刻录到U盘中,然后将U盘插入服务器进行无人值守批量装机。
- PXE启动不起来是什么原因? 怎么排除
- 1. 首先确保服务器已加电并连接到网络,能从DHCP服务器获取IP地址。
- 2. 检查TFTP和DHCP服务:确保TFTP服务器正在运行并可以从中获取网络引导程序(pxelinux.0)。同时检查DHCP服务器是否正常工作。
- 3. 检查配置文件:查看是否存在名为
pxelinux.cfg
的配置文件,并检查其中的设置是否正确。 - 4. 检查文件系统和内核镜像:确认引导程序是否能加载文件系统初始化(initrd)程序和内核初始镜像(vmlinuz)。
- 5. BIOS设置:如果黑屏无法进入Bios,尝试重置Bios。打开机箱,找到主板上的电池CR2032,并将其卸下几秒钟后再放回,以重置Bios设置。
- 6. 检查硬盘和光驱:如果以上都没有问题,但仍然无法启动,检查硬盘和光驱是否正常工作。
- 7. 使用诊断工具:您还可以使用如tftp-server、vsftpd、syslinux、dhcpd等工具进行更深入的诊断。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现