Centos7 使用cobbler搭建PXE网络装机服务器安装Centos、Windows、PE、自定义wim镜像

一、安装epel
# 下载阿里epel源
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
# 删除缓存
yum clean all
# 更新缓存
yum makecache
# 查看镜像源列表
yum repolist
二、禁用SELinux

官网文档提示:

禁用SELinux(可选)
在开始学习补鞋匠之前,最好禁用SELinux或将其设置为“宽松”模式,尤其是在您不熟悉SELinux故障排除或修改SELinux策略的情况下。Cobbler不断发展以协助管理新的系统技术,并且操作系统附带的策略有时可能会落后于我们提供的功能集,从而导致AVC拒绝,从而破坏了Cobbler的功能。

#临时关闭,重启后失效,需重新关闭
setenforce 0
# 修改配置文件 禁用SELinux
sed -ri '/SELINUX=/c\SELINUX=disabled' /etc/selinux/config
二、安装cobbler
# 安装cobbler 
yum -y install cobbler
# 安装tftp httpd pyk等
yum -y install tftp-server pykickstart httpd xinetd fence-agents
# 安装Web界面
yum -y install cobbler-web
# 启动httpd cobblerd
systemctl start httpd cobblerd
# 开机自动启动httpd cobblerd
systemctl enable httpd cobblerd

三、配置
# 修改cobbler配置允许动态修改配置
sed -ri '/allow_dynamic_settings:/c\allow_dynamic_settings: 1' /etc/cobbler/settings
# 重启cobbler
systemctl restart cobblerd
# 修改服务器地址为本机
cobbler setting edit --name=server --value=192.168.3.132
cobbler setting edit --name=next_server --value=192.168.3.132
# 启动tftp配置
sed -ri '/disable/c\disable = no' /etc/xinetd.d/tftp
# 开机自动启动xinetd
systemctl enable xinetd
# 启动xinetd
systemctl restart xinetd
# 下载引导文件
cobbler get-loaders
# 启动rsyncd
systemctl start rsyncd
# 开机自动启动rsyncd
systemctl enable rsyncd
# 重启rsyncd
systemctl start rsyncd
# 生成密码密文 密码 admin
openssl passwd -1 -salt `openssl rand -hex 4` 'admin'
# 设置安装完系统初始密码为上面生成的密文
cobbler setting edit --name=default_password_crypted --value='$1$83d1f84f$66OYvUKmdoNf4RdOnzcL/1'
# 重启服务
systemctl restart cobblerd
# 检查配置
cobbler check
# 修改Web密码 Web用户名为cobbler 访问地址为:https://IP/cobbler_web
htdigest /etc/cobbler/users.digest "Cobbler" cobbler
四(1)、无DHCP环境配置DHCP
# 安装dhcp
yum install -y dhcp
# 启用cobbler的dhcp服务
cobbler setting edit --name=manage_dhcp --value=1
# 修改cobbler的dhcp配置
vi /etc/cobbler/dhcp.template

dhcp.template:

...
subnet 192.168.0.0 netmask 255.255.252.0 {    # 网络号 掩码
     option routers             192.168.1.254;  # 网关
     option domain-name-servers 192.168.1.254;  # DNS
     option subnet-mask         255.255.252.0;  # 分配的IP掩码
     range dynamic-bootp        192.168.3.50 192.168.3.80; #分配的IP的范围
...
四(2)、现有DHCP环境配置

使用pxe-pdhcp可以在不修改原有DHCP服务的情况下附加PXE启动
Github链接:https://github.com/frsyuki/pxe-pdhcp

百度云盘:https://pan.baidu.com/s/1-3ZVGoTQD4ukSgCPt2HXtQ
提取码: gbhy

# 安装git
yum install -y git
# 安装开发工具包  编译pxe-pdhcp用
yum group install "Development Tools" -y
# 进入目录
cd /home
# git同步
git clone https://github.com/frsyuki/pxe-pdhcp.git
# 进入目录
cd pxe-pdhcp
# 编译
make
# 启动pxe-pdhcp
./pxe-pdhcp -l 0.0.0.0 -b 255.255.255.255 -t 192.168.3.132 pxelinux.0
# 修改rc.local启动权限
chmod +x /etc/rc.d/rc.local
# 加入开机启动
vi /etc/rc.local

rc.local倒数第二行加入

sudo /home/pxe-pdhcp/pxe-pdhcp -l 0.0.0.0 -b 255.255.255.255 -t 192.168.3.132 pxelinux.0 &

pxe-pdhcp参数:

-i:网卡名称
-l:监听地址 本机的IP地址
-b:广播地址
-t:TFTP地址 PXE服务器地址
最后是启动文件:pxelinux.0是cobbler的启动文件

五、同步配置
# 同步配置
cobbler sync
六、防火墙配置
# 启动服务
systemctl start firewalld.service
# 放行udp 67 68 69端口 tcp 80 443端口
firewall-cmd --zone=public --add-port=67/udp --permanent
firewall-cmd --zone=public --add-port=68/udp --permanent
firewall-cmd --zone=public --add-port=69/udp --permanent
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
# 重载配置
firewall-cmd --reload
# 查看配置
firewall-cmd --list-all
# 开启自动启动
systemctl enable firewalld.service
七、cobbler命令帮助和Web界面
  1. 命令帮助
命令说明
cobbler check核对当前设置是否有问题
cobbler list列出所有的cobbler元素
cobbler report列出元素的详细信息
cobbler sync同步配置到数据目录 更改配置最好都执行一下
cobbler reposync同步yum仓库
cobbler distro查看导入的发行版系统信息
cobbler system查看系统信息
cobbler profile查看配置信息
  1. Web页面
    使用浏览器访问 https://服务器IP/cobbler_web
    用户名:cobbler 密码:第三章中配置的Web密码

web

八、配置Centos7安装(可选)
# 创建并进入下载目录
mkdir -p /home/sysiso && cd /home/sysiso
# 安装wget
yum install -y wget
# 下载Centos7
wget http://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-2003.iso
# 创建挂载目录
mkdir -p /mnt/centos.7.2003
# 挂载镜像
mount -t iso9660 -o loop /home/sysiso/CentOS-7-x86_64-Minimal-2003.iso /mnt/centos.7.2003
# 导入镜像
cobbler import --path=/mnt/centos.7.2003 --name=CentOS7-2003 --arch=x86_64
# 查看安装配置
cobbler profile report --name=CentOS7-2003-x86_64
# 进入ks文件目录
cd /var/lib/cobbler/kickstarts/
# 复制一份ks模板
cp sample_end.ks centos7.2003.ks
# 修改ks文件 根据需要修改ks无人值守文件 
vi centos7.2003.ks

Ks文件语法参考: https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/installation_guide/sect-kickstart-syntax

ks文件参考:

auth  --useshadow  --enablemd5
bootloader --location=mbr
clearpart --all --initlabel
text
firewall --enabled
firstboot --disable
keyboard us
lang en_US
url --url=$tree
$yum_repo_stanza
$SNIPPET('network_config')
reboot

rootpw --iscrypted $default_password_crypted
selinux --disabled
skipx
timezone  Asia/Shanghai
install
zerombr
autopart

%pre
$SNIPPET('log_ks_pre')
$SNIPPET('kickstart_start')
$SNIPPET('pre_install_network_config')
# Enable installation monitoring
$SNIPPET('pre_anamon')
%end

%packages
$SNIPPET('func_install_if_enabled')
%end

%post --nochroot
$SNIPPET('log_ks_post_nochroot')
%end

%post
$SNIPPET('log_ks_post')
$yum_config_stanza
$SNIPPET('post_install_kernel_options')
$SNIPPET('post_install_network_config')
$SNIPPET('func_register_if_enabled')
$SNIPPET('download_config_files')
$SNIPPET('koan_environment')
$SNIPPET('redhat_register')
$SNIPPET('cobbler_register')
$SNIPPET('post_anamon')
$SNIPPET('kickstart_done')
%end
# 使用ks文件
cobbler profile edit --name=CentOS7-2003-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos7.2003.ks
# 同步
cobbler sync

计算机从网卡启动后选择CentOS7-2003-x86_64后自动安装,安装完成后密码为第三章内设定的初始密码

九、配置安装自定义wim系统(首选)
  1. 配置smb服务
    参考:Centos7 配置samba服务(Windows共享)
    配置共享目录 share 可匿名读取 管理员上传
    在这里插入图片描述

  2. 在服务器share共享目录内创建iso、tools、wim、install目录

mkdir -p /home/share/iso
mkdir -p /home/share/tools
mkdir -p /home/share/wim
mkdir -p /home/share/install

在这里插入图片描述

  1. 下载EIX恢复工具
    IT天空:Easy Image X v2
    3.1. 解压EasyImageX2_2.19.827.1718.zip后上传EasyImageX2.exe和EasyImageX2.ini文件至share/tools目录
    在这里插入图片描述
    3.2. 修改EasyImageX2.ini文件末尾增加镜像搜索配置

;搜索映射的wim目录
ImageDir=z:\wim

在这里插入图片描述

  1. 下载傲梅分区助手
    傲梅分区助手:https://www.disktool.cn/download.html
    傲梅
    下载傲梅分区助手PE版32位压缩包,解压后上传PA_WinPE目录至share/tools目录
    在这里插入图片描述

  2. 上传自己的wim文件至share/wim目录
    在这里插入图片描述

  3. 设置权限允许客户执行tools目录内的程序

# 服务器端设置权限允许客户执行tools目录内的程序
chmod -R +x /home/share/tools
  1. 定制Windows预安装环境
    7.1. 安装Windows ADK 和 Windows ADK Windows PE
    微软下载连接:https://docs.microsoft.com/zh-cn/windows-hardware/get-started/adk-install#winADK
    WindowsADK
    7.2. 启动部署和映像工具环境
    image
    7.3. 制作PE

7.3.1. 生成PE目录并挂载

REM 复制32位PE文件 至 d:\winpe_x86_wim 
copype x86 d:\winpe_x86_wim
REM 挂载映像
dism /Mount-Image /ImageFile:"d:\winpe_x86_wim\media\sources\boot.wim" /index:1 /MountDir:"d:\winpe_x86_wim\mount"

7.3.2. 如果客户机有特殊驱动(某些网卡)需要添加执行以下命令添加或通过dism++添加多个驱动

REM 特殊驱动添加  d:\driver\driver.inf为驱动inf文件
dism /Add-Driver /Image:"d:\winpe_x86_wim\mount" /Driver:"d:\driver\driver.inf"

7.3.3. 根据配置的smb服务修改PE启动脚本:D:\winpe_x86_wim\mount\Windows\System32\startnet.cmd
在这里插入图片描述

wpeinit

REM ping服务器地址来做延时
ping -n 10 -l 69 192.168.3.132

REM 映射smb服务器共享为z盘
net use z: \\192.168.3.132\share

REM 进入z盘
z:

REM 进入tools目录
cd tools

REM 启动分区助手
start .\PA_WinPE\StartPartAssist.exe

REM 启动EIX2
EasyImageX2.exe

7.3.4. 删除D:\winpe_x86_wim\media\Boot\bootfix.bin文件(这个文件会导致加载iso镜像后需要5秒内按键才会启动)

在这里插入图片描述

7.3.5. 继续在部署和映像工具环境内输入命令

REM 添加中文语言包  PackagePath路径为自己的ADK安装路径
Dism /Add-Package /Image:"d:\winpe_x86_wim\mount" /PackagePath:"D:\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs\zh-cn\lp.cab"
Dism /Add-Package /Image:"d:\winpe_x86_wim\mount" /PackagePath:"D:\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs\WinPE-FontSupport-ZH-CN.cab"
REM 设置默认语言
Dism /Set-AllIntl:zh-CN /Image:"d:\winpe_x86_wim\mount"
REM 保存并卸载映像
Dism /Unmount-Image /MountDir:"d:\winpe_x86_wim\mount" /commit
REM 制作iso文件
MakeWinPEMedia /ISO d:\winpe_x86_wim d:\winpe_x86_wim\Windows_Install_PE_x86.iso
  1. 上传PE ISO镜像
    利用刚架设的smb服务直接上传至share/iso目录
    在这里插入图片描述

  2. cobbler配置自定义wim安装

# 导入ISO
cobbler distro add --name=Windows_Install_PE --kernel=/var/lib/tftpboot/memdisk --initrd=/home/share/iso/Windows_Install_PE_x86.iso --kopts="raw iso"
# 创建空白无人值守文件
touch /var/lib/cobbler/kickstarts/winpe.xml
# 创建ks配置 使用空白文件
cobbler profile add --name=Windows_Install_PE --distro=Windows_Install_PE --kickstart=/var/lib/cobbler/kickstarts/winpe.xml
# 同步
cobbler sync
  1. 启动测试
    在这里插入图片描述
十、配置Windows10原盘安装(可选)
  1. 配置smb服务(参考九.1 已经配置过的不用重复配置)
    参考:Centos7 配置samba服务(Windows共享)
    配置共享目录 share 可匿名读取 管理员上传
  2. 在服务器share共享目录内创建iso、tools、wim、install目录(参考九.2 已经配置过的不用重复配置)
mkdir -p /home/share/iso
mkdir -p /home/share/tools
mkdir -p /home/share/wim
mkdir -p /home/share/install
  1. 在服务器share/install目录创建目录win10.1909.2020.01,双击挂载windows镜像文件并复制内容至服务器share/install/win10.1909.2020.01目录
    windows镜像自行去msdn我告诉你下载:MSDN我告诉你

  2. 设置权限允许客户执行安装

# 服务器端设置权限允许客户执行安装
chmod -R +x /home/share/install
  1. 定制Windows预安装环境
    5.1. 安装Windows ADK 和 Windows ADK Windows PE (参考九.7.1 已经配置过的不用重复配置)
    微软下载连接:https://docs.microsoft.com/zh-cn/windows-hardware/get-started/adk-install#winADK
    5.2. 启动部署和映像工具环境(参考九.7.2 已经配置过的不用重复配置)

5.3. 制作PE

5.3.1. 生成PE目录

REM 复制64位PE文件 至 d:\winpe
copype amd64 d:\winpe
REM 挂载映像
dism /Mount-Image /ImageFile:"d:\winpe\media\sources\boot.wim" /index:1 /MountDir:"d:\winpe\mount"

5.3.2. 如果客户机有特殊驱动(某些网卡)需要添加执行以下命令添加或通过dism++添加多个驱动

REM 特殊驱动添加  d:\driver\driver.inf为驱动inf文件
dism /Add-Driver /Image:"d:\winpe\mount" /Driver:"d:\driver\driver.inf"

5.3.3. 根据配置的smb服务修改PE启动脚本:D:\winpe\mount\Windows\System32\startnet.cmd

wpeinit
REM ping服务器地址来做延时
ping -n 7 -l 69 192.168.3.132
REM 映射smb服务器共享为Z盘
net use z: \\192.168.3.132\share
REM 进入Z盘
Z:
REM 进入win10安装目录
cd install
cd win10.1909.2020.01
REM 启动安装
setup.exe

5.3.4. 删除D:\winpe_wim\media\Boot\bootfix.bin文件(这个文件会导致加载iso镜像后需要5秒内按键才会启动)
5.3.5. 继续在部署和映像工具环境内输入命令

REM 添加中文语言包  PackagePath路径为自己的ADK安装路径
Dism /Add-Package /Image:"d:\winpe\mount" /PackagePath:"D:\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\zh-cn\lp.cab"
Dism /Add-Package /Image:"d:\winpe\mount" /PackagePath:"D:\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-FontSupport-ZH-CN.cab"
REM 设置默认语言
Dism /Set-AllIntl:zh-CN /Image:"d:\winpe\mount"
REM 保存并卸载映像
Dism /Unmount-Image /MountDir:"d:\winpe\mount" /commit
REM 制作iso文件
MakeWinPEMedia /ISO d:\winpe d:\winpe\Win10Install.iso
  1. 上传PE ISO镜像
    利用刚架设的smb服务直接上传至share/iso目录
  2. cobbler配置windows安装
# 导入ISO
cobbler distro add --name=Windows10.1909.2020.01.x64 --kernel=/var/lib/tftpboot/memdisk --initrd=/home/share/iso/Win10Install.iso --kopts="raw iso"
# 创建空白无人值守文件
touch /var/lib/cobbler/kickstarts/winpe.xml
# 创建ks配置 使用空白文件
cobbler profile add --name=Windows10.1909.2020.01.x64 --distro=Windows10.1909.2020.01.x64 --kickstart=/var/lib/cobbler/kickstarts/winpe.xml
# 同步
cobbler sync
十一、配置维护PE(可选)

优启通:https://www.itsk.com/thread-411222-1-1.html

  1. 使用优启通生成PE ISO镜像
    优启通
  2. 上传PE ISO镜像至服务器share/iso目录
  3. 配置cobbler
# 导入ISO
cobbler distro add --name=EasyU --kernel=/var/lib/tftpboot/memdisk --initrd=/home/share/iso/EasyU_v3.6.iso --kopts="raw iso"
# 创建空白无人值守文件
touch /var/lib/cobbler/kickstarts/winpe.xml
# 创建ks配置 使用空白文件
cobbler profile add --name=EasyU --distro=EasyU --kickstart=/var/lib/cobbler/kickstarts/winpe.xml
# 同步
cobbler sync
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Halyace

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值