cobbler简介
Cobbler 可以用来快速建立 Linux 网络安装环境
- Cobbler是一个Linux服务器安装的服务,可以通过网络启动(PXE)的方式来快速安装、重装物理服务器和虚拟机,同时还可以管理DHCP,DNS等
- Cobbler可以使用命令行方式管理,也提供了基于Web的界面管理工具(cobbler-web),还提供了API接口,可以方便二次开发使用
- Cobbler是较早前的kickstart的升级版,优点是比较容易配置,还自带web界面比较易于管理
- Cobbler内置了一个轻量级配置管理系统,但它也支持和其它配置管理系统集成,如Puppet
| cobbler对应关系
Cobbler的配置结构基于一组注册的对象。每个对象表示一个与另一个实体相关联的实体。当一个对象指向另一个对象时,它就继承了被指向对象的数据,并可覆盖或添加更多特定信息
- 发行版(distros):表示一个操作系统。它承载了内核和initrd的信息,以及内核参数等其他数据
- 配置文件(profiles):包含一个发行版、一个kickstart文件以及可能的存储库,还包括更多特定的内核参数等其他数据
- 系统(systems):表示要配给的机器。它包括一个配置文件或一个镜像、IP和MAC地址、电源管理(地址、凭据、类型)以及更为专业的数据等信息
- 镜像(images):可以替换一个保函不屑于此类别的文件的发行版对象(例如,无法分为内核和initrd的对象)
| cobbler集成的服务
- PXE服务支持
- DHCP服务管理
- DNS服务管理
- 电源管理
- Kickstart服务支持
- YUM仓库管理
- TFTP
- Apache
cobbler工作原理
| Server端
-
启动Cobbler服务
-
进行Cobbler错误检查,执行cobbler check命令
-
进行配置同步,执行cobbler sync命令
-
复制相关启动文件到TFTP目录中
-
启动DHCP服务,提供地址分配
-
DHCP服务分配IP地址
-
TFTP传输启动文件
-
Server端接收安装信息
-
Server端发送ISO镜像与Kickstart文件
| Client端
-
客户端以PXE模式启动
-
客户端获取IP地址
-
通过TFTP服务器获取启动文件
-
进入Cobbler安装选择界面
-
根据配置信息准备安装系统
-
加载Kickstart文件
-
传输系统安装的其它文件
-
进行安装系统
cobbler安装
说明:虚拟机网卡采用NAT模式或者仅主机模式,不要使用桥接模式,因为后面会搭建DHCP服务器,在同一个局域网多个DHCP服务会有冲突
VMware的NAT模式的dhcp服务也关闭,避免干扰
| 关闭防火墙
# 永久关闭firewalld防火墙
systemctl stop firewalld
systemctl disable firewalld
# 永久关闭SELinux防火墙
setenforce 0
sed -i ‘s/^SELINUX=.*/SELINUX=disabled/’ /etc/sysconfig/selinux
| 安装cobbler
# 配置epel源
yum -y install epel-release
# 安装cobbler及dhcp httpd xinetd cobbler-web
yum -y install cobbler cobbler-web tftp-server dhcp httpd xinetd
# 启动cobbler及httpd并加入开机启动
systemctl start httpd cobblerd
systemctl enable httpd cobblerd
| cobbler相关文件介绍
| 配置cobbler
检查Cobbler的配置,如果看不到下面的结果,再次重启cobbler
cobbler check
看到上面出现的问题,然后一个一个的进行解决,先进行设置为可以动态配置,也可以直接更改配置文件
# 设置可以动态修改配置文件
sed -ri ‘/allow_dynamic_settings:/callow_dynamic_settings: 1’ /etc/cobbler/settings
systemctl restart cobblerd
1. server # cobbler setting edit –name=server –value=10.0.0.4 2. next_server # cobbler setting edit –name=next_server –value=10.0.0.4 3. tftp_server 服务启动 # sed -ri ‘/disable/cdisable = no’ /etc/xinetd.d/tftp # systemctl enable xinetd # systemctl restart xinetd 4. syslinux 只要安装了最新版的syslinux就可以忽略 # yum install syslinux -y 5. rsyncd 启动 # systemctl start rsyncd # systemctl enable rsyncd 6. debmirror # 这个是可选项的,可以忽略。这里就忽略了,它是用于Debian系统的部署 7. pykickstart 安装 # yum -y install pykickstart 8. default_password_crypted 密码设置 # 注意:这里设置的密码,也就是后面安装完系统的初始化登录密码 # openssl passwd -1 -salt ‘random-phrase-here’ ‘1’ $1$random-p$XyO1vNsfHQl8vTCrvSxhI0 # cobbler setting edit –name=default_password_crypted –value=’$1$random-p$XyO1vNsfHQl8vTCrvSxhI0′ 9. fencing 安装 # yum -y install fence-agents
解决完成再次查看
| 配置DHCP
# 打开DHCP功能 cobbler setting edit –name=manage_dhcp –value=1 # 修改配置文件 vi /etc/cobbler/dhcp.template · · · subnet 10.0.0.0 netmask 255.255.255.0 { # 这里改为分配的网段和掩码# option routers 10.0.0.2; # 如果有网关,这里改为网关地址 option domain-name-servers 223.5.5.5; # 如果有DNS,这里改为DNS地址 option subnet-mask 255.255.255.0; # 改为分配的IP的掩码 range dynamic-bootp 192.168.1.100 192.168.1.254; # 改为分配的IP的范围 · · ·
| 同步cobbler配置
同步cobbler配置,它会根据配置自动修改dhcp等服务
cobbler sync
这时候创建一个新虚拟机可以获取到如下信息,没有镜像选择,只能从本地启动
| cobbler命令帮助
cobbler配置安装centos7.x
通过 Xftp 上传 CentOS 镜像
| 创建挂载点,并进行挂载
mkdir -p /oldboyedu/iso/centos7.9 mount -o loop CentOS-7-x86_64-DVD-2009.iso /oldboyedu/iso/centos7.9 # 查看挂载后的目录 ls /oldboyedu/iso/centos7.9
| 导入镜像
cobbler import –path=/oldboyedu/iso/centos7.9 –name=centos7.9 –arch=x86_64
| 查看导入后镜像信息
cobbler distro report –name=centos7.9-x86_64
| 查看profile信息
cobbler profile report –name=centos7.9-x86_64
| 配置kickstart文件
cat >/var/lib/cobbler/kickstarts/centos7.ks<<‘EOF’ # This kickstart file should only be used with EL > 5 and/or Fedora > 7. # For older versions please use the sample.ks kickstart file. # Install OS instead of upgrade install # Use text mode install text # System keyboard keyboard us # System language lang en_US # System timezone timezone Asia/ShangHai #Root password rootpw –iscrypted $default_password_crypted # System authorization information auth –useshadow –enablemd5 # Firewall configuration firewall –disabled # SELinux configuration selinux –disabled # Use network installation url –url=$tree # Clear the Master Boot Record zerombr # System bootloader configuration bootloader –location=mbr # Partition clearing information clearpart –all –initlabel part /boot –fstype=xfs –size=500 part swap –fstype=swap –size=2048 part / –fstype=xfs –grow –size=200 # If any cobbler repo definitions were referenced in the kickstart profile, include them here. $yum_repo_stanza # Network information $SNIPPET(‘network_config’) # Do not configure the X Window System skipx # Run the Setup Agent on first boot firstboot –disable # Reboot after installation reboot %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’) @core @base tree nmap wget lftp lrzsz telnet %end %post –nochroot $SNIPPET(‘log_ks_post_nochroot’) %end %post $SNIPPET(‘log_ks_post’) # Start yum configuration $yum_config_stanza # End yum configuration $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’) # Enable post-install boot notification $SNIPPET(‘post_anamon’) # Start final steps $SNIPPET(‘kickstart_done’) # End final steps sed -ri “/^#UseDNS/cUseDNS no” /etc/ssh/sshd_config sed -ri “/^GSSAPIAuthentication/cGSSAPIAuthentication no” /etc/ssh/sshd_config %end EOF
| 编辑centos7镜像所使用的kickstart文件
# 动态编辑指定使用新的kickstart文件 cobbler profile edit –name=centos7.9-x86_64 –kickstart=/var/lib/cobbler/kickstarts/centos7.ks # 验证是否更改成功 cobbler profile report –name=centos7.9-x86_64 |grep Kickstart
| 再次同步cobbler配置
cobbler sync
| 新建虚拟机进行测试
选择centos7.9进行安装即可
说明:在client端系统安装时,可以在cobbler服务端上查看日志/var/log/messages,观察安装的每一个流程
安装成功
cobbler Web管理界面配置
web界面有很多功能,包括上传镜像、编辑kickstart、等等很多在命令行操作的都可以在web界面直接操作
在上面已经安装了cobbler-web软件,访问地址:https://IP/cobbler_web 即可
默认账号为cobbler,密码也为cobbler
修改密码
/etc/cobbler/users.conf #Web服务授权配置文件 /etc/cobbler/users.digest #用于web访问的用户名密码 # 设置密码,在Cobbler组添加cobbler用户,输入2遍密码确 htdigest /etc/cobbler/users.digest “Cobbler” cobbler # 同步配置并重启httpd、cobbler cobbler sync systemctl restart httpd systemctl restart cobblerd
再次登录即使用新设置的密码登录即可