VM虚拟机环境Cent0S7.6+Cobbler2.8.5
先讲讲Cobbler的安装
#首先添加阿里的epel源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
#也可以直接下面添加源,上面阿里的比较快。
yum install epel-release
#关闭 firewalld防火墙
systemctl stop firewalld && systemctl disable firewalld
sed -i 's#^SELINUX=enforcing#SELINUX=disabled#' /etc/selinux/config
#也可以下面这样关闭selnux防火墙
setenforce 0 #临时关闭selnux防火墙
#永久关闭selinux内核防火墙为disabled重启服务器即可。
vi /etc/selinux/config
getenforce # 显示Permissive为成功关闭
#还要调整服务器时间防止一些YUM包安装失败
#查看当前系统时间 date
#修改当前系统时间 date -s "2020-1-22 19:10:30
#查看硬件时间 hwclock --show
#修改硬件时间 hwclock --set --date "2020-1-22 19:10:30"
#同步系统时间和硬件时间 hwclock --hctosys
#保存时钟 clock -w
重启系统 init 6 后便发现系统时间被修改了
#安装cobbler相关组件
yum install cobbler cobbler-web pykickstart debmirror httpd dhcp tftp-server xinetd syslinux fence-agents -y
systemctl start httpd && systemctl enable httpd
systemctl start cobblerd && systemctl enable cobblerd
systemctl start rsyncd && systemctl enable rsyncd
systemctl start tftp.socket && systemctl enable tftp.socket
systemctl enable dhcpd # 这里dhcp服务还没配置不启动如果已经有DHCP服务器的话就可以不用Cobbler自带的dhcp
#接下来通过cobbler check命令检查需要解决的问题
1、修改/etc/cobbler/settings文件,将默认server的127.0.0.1替换为本机IP地址
sed -i 's#^server: 127.0.0.1#server: 192.168.38.128#' /etc/cobbler/settings
2、修改/etc/cobbler/settings文件,将默认next_server的127.0.0.1替换为本机IP地址
sed -i 's#^next_server: 127.0.0.1#next_server: 192.168.38.128#' /etc/cobbler/settings
3、关闭selinux 后重启服务器即可
4、将vi /etc/xinetd.d/tftp中disable改为no
5、执行“cobbler get-loaders”命令下载grub-0.97-x86_64.efi文件即可
#有时候由于国内网络情况特殊会出现“urlgrabber.grabber.URLGrabError”下载失败,需要加梯子翻墙去手动下载grub-0.97-x86_64.efi文件改名后放到/var/lib/cobbler/loaders/grub-x86_64.efi 替换原来的文件
5、注释/etc/debmirror.conf文件中的@dists="sid";
sed -i 's/@dists="sid";/#@dists="sid";/' /etc/debmirror.conf
6、注释/etc/debmirror.conf文件中的@arches="i386";
sed -i 's/@arches="i386";/#@arches="i386";/' /etc/debmirror.conf
7、设置新系统默认的root密码,执行“openssl passwd -1 -salt $(openssl rand -hex 4)”生成密码,并用其替换/etc/cobbler/settings文件中default_password_crypted参数的值;(这是自动安装客户端系统成功后的root登录密码)
vi /etc/cobbler/settings
8、yum install fence-agents -y
#全部结束后重启cobbler
systemctl restart cobblerd
cobbler sync
cobbler check #重新检查
#配置Cobbler
#配置文件在/etc/cobbler/settings
#首先是配置DHCP服务器 将0改成1启动dhcp管理
#然后配置DHCP服务
虚拟机添加一个桥接模式网卡关联到实体网卡
vi /etc/cobbler/dhcp.template # 路径请搞清楚不是/etc/dhcpd.conf这个
#注意无论如何,请确保不要修改“ next-server $ next_server;”行,因为这是将next_server设置提取到配置中的方式。
#dhcp 有自己的语法可以man dhcpd.conf 自行查看研究配置
#配置好DHCP后重启服务
systemctl restart cobblerd
cobbler sync
#有时候dhcp会报错Exception occured: <class 'cobbler.cexceptions.CX'>是python版本内还用centOS6的语法请去下面链接解决
https://www.cnblogs.com/guoyishen/p/9210929.html
https://www.cnblogs.com/blog-tim/p/10716971.html
#设置cobbler web 访问: web页面很多小毛病个人推荐用命令行操作所以不详细说明了
#设置/etc/cobbler/modules如下:
[authentication]
module = authn_configfile
[authorization]
module = authz_allowall
#之后启动web页面
https://IP/cobbler_web/do_login
默认帐号密码都是cobbler
#可以修改已存在的用户密码:
htdigest /etc/cobbler/users.digest "Cobbler" cobbler
#可以添加新用户:
htdigest /etc/cobbler/users.digest "Cobbler" yourname
cobbler常用命令行
虚拟机挂载光盘
mount /dev/cdrom /mnt/
导入镜像
cobbler import --name=centos7-x86_64(自命名) --path=/mnt(刚才挂载的路径)
导入成功后查看/var/www/cobbler/images/ 与 /var/lib/cobbler/kickstarts 会各有一份主备文件centos7-x86_64
cobbler profile list # 查看当前已经导入的项目列表
cobbler profile report --name=centos7-x86_64 # 查看某个项目详细信息
cobbler profile edit --name=centos7-x86_64 --kickstart=/var/lib/cobbler/kickstarts/XXXX.ks #关联自己的ks文件
所有操作后记得cobbler sync写入保存
#制作自定义的KS文件的前提
#首先把YUM源id改成 development,非常重要否则会报“由于下载软件包信息失败,软件包选择被禁止”的错误。
#或者用关联刚才服务器挂载镜像自己建立局域网YUM源
vim /etc/yum.repos.d/XXX.repo (你自己的源)
[development]
name=my-centos7
baseurl=file:///mnt/ #最后的/符号别漏了
enabled=1
gpgcheck=0
# 保存后重新建立缓存
yum clean all && yum makecache
安装Kickstart
yum install -y system-config-kickstart
安装成功后执行system-config-kickstart命令即打开图形界面,接下来的配置仅供参考请安装自己的需求配置。
最后两项是脚本配置可以直接忽略保存文件为ks.cfg!!!!!
# 下面的这个KS是我写的你们可以拿去参考修改
# 使用时请把下面的中文字符都去掉否则python2会报错
# platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# 指明是安装
install
# Keyboard layouts 键盘布局
keyboard 'us'
# root密码 可以使用不加密的名文,我这个案例加密了。
rootpw --iscrypted $1$4CJO266s$lWsg111EuZbujzxwVxKaX.
# 系统语言
lang en_US.UTF-8
# 密码加密sha512 md5 等
auth --useshadow --passalgo=md5
# Use graphical 为图像界面安装,text 为字符串界面安装
graphical
# 系统第一次引导时,启动"设置代理"。需要安装额外的工具包,关闭即可
firstboot --disable
# SELinux configuration关闭selinux内核防火墙
selinux --disabled
# Firewall configuration关闭防火墙
firewall --disabled
# Network information网卡设置
network --bootproto=dhcp --device=eth0
# Reboot after installation重启
reboot
# 系统时区
timezone Asia/Shanghai
# 使用网络安装方式HTTP FTP 等这里使用HTTP 这里重点http://IP/cobbler/ks_mirror/你导入的镜像/
url --url="http://192.168.1.10/cobbler/ks_mirror/CentOS7.6_1611_rl-x86_64/"
# #指定开机引导的位置为mbr
bootloader --location=mbr --boot-drive=sda
# 清除硬盘分区表
zerombr
# 删除硬盘上的所有分区并初始化磁盘标签
clearpart --all --initlabel
#-------------------------------------------------------------------------------------------------
#这里是指定硬盘分区方式,划重点!!!!!!
#因为是UEFI引导,必须指定efi分区且分区的类型必须是efi,挂载到/boot/efi。
#size的单位:MB 填1表示余下所有空间都给/分区 --fstype是指定文件系统类型,例如:ext4、xfs
part /boot/efi --fstype="efi" --ondisk=sda --size=1024 --fsoptions="umask=0077,shortname=winnt"
part / --fstype="xfs" --grow --size=1 --ondisk=sda
part /boot --fstype="xfs" --size=1024 --ondisk=sda
part swap --fstype="swap" --size=3200 --ondisk=sda
part /data --fstype="xfs" --size=4000 --ondisk=sda
#-------------------------------------------------------------------------------------------------
#安装前脚本,这里要划重点!!!!!!!!
#必须要先将硬盘格式化成GPT格式!!!!!!
%pre
parted -s /dev/sda mklabel gpt
%end
# 这里是需要安装的包带 @ 符合是安装整个组件,不带@的是安装单个软件
%packages
@^developer-workstation-environment
@additional-devel
@base
@compat-libraries
@core
@debugging
@desktop-debugging
@development
@dial-up
@directory-client
@fonts
@gnome-apps
@gnome-desktop
@guest-desktop-agents
@hardware-monitoring
@input-methods
@internet-applications
@internet-browser
@java-platform
@large-systems
@multimedia
@network-file-system-client
@performance
@perl-runtime
@platform-devel
@print-client
@ruby-runtime
@virtualization-client
@virtualization-hypervisor
@virtualization-tools
@web-server
@x11
kexec-tools
%end
# 系统安装后脚本执行的命令
%post
systemctl set-default multi-user.target # 系统安装完成后关闭图形界面节省资源
%end
关于Cobbler只支持PXE legacy模式不支持华为2288H-V5服务器PXE UEFI 启动的解决方法
因为cobbler get-loaders下载的grub-x86_64.efi导致
先去/var/lib/cobbler/loaders确认下grub-x86_64.efi这个文件的大小如果是243679字节说明是适用于Fedora 15系统的版本
我们先去https://github.com/cobbler/cobbler-loaders/tree/master/grub-0.97-99.el6 下载大小为254317字节适用红帽系统的版本
备份原文件后 替换/var/lib/cobbler/loaders下grub-x86_64.efi 然后执行cobbler sync 重新进行PXE UEFI 模式安装
参考链接
https://blog.csdn.net/admin_root1/article/details/78911718
https://blog.csdn.net/weixin_34221332/article/details/92367154
https://blog.51cto.com/wn2100/1960856
https://blog.csdn.net/lxy___/article/details/78815565
https://www.linuxidc.com/Linux/2018-05/152361.htm
https://www.linuxidc.com/Linux/2017-09/146705.htm
http://www.bubuko.com/infodetail-2458923.html
http://blog.sina.com.cn/s/blog_b6b9a0030103094r.html
https://blog.csdn.net/white__cloud/article/details/79348823