Cobbler是一个开源的系统部署软件,基于PXE的二次封装,并集成了DNS,DHCP,软件包更新,电源管理以及配置管理编排等功能;实现快速网络安装操做系统。php
系统版本:centos 7 x86_64
Cobble版本:cobble.2.8.4html
Cobbler的RPM文件在Fedora EPEL源中
安装epel源python
yum install epel-release.noarch
安装cobbler等软件linux
yum install cobbler cobbler-web dhcp tftp-server pykickstart httpd
关闭防火墙与selinuxios
systemctl stop firewalld.service systemctl disable firewalld.service sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config reboot
添加开机启动并启动git
systemctl enable cobblerd.service systemctl enable httpd.service systemctl start cobblerd.service systemctl start httpd.service
检查环境github
cobbler check
修改/etc/cobbler/settings 中的server值为cobbler服务器地址web
修改etc/cobbler/settings 中的next_server值为PXE-server/DHCP-server的地址django
准备引导文件centos
cobbler get-loaders
设置在kickstart期间为新系统设置的root密码。
生成加密密码:111111 $1$YR4j5LKJ$VZ8XrLSovC4qZQaVG9WGT.
openssl passwd -1
修改/etc/cobbler/settings 中的default_password_crypted值为加密密码
使用cobble管理DHCP服务器,将/etc/cobbler/settings 中的manage_dhcp的值设置为1,cobbler将根据cobbler附带的dhcp.template生成dhcpd.conf文件
修改DHCP模板文件,/etc/cobbler/dhcp.template 中的网段信息
启动rsyncd
systemctl start rsyncd
在/etc/xinetd.d/tftp中将'disable'更改成'no'
systemctl restart cobblerd.service cobbler sync
mount -o loop -t iso9660 /dev/sr0 /media cobbler import --name=centos-7 --path=/media --arch=x86_64
umount /media
使用 system-config-kickstart自定义ks文件
yum install system-config-kickstart
system-config-kickstart在桌面环境下配置ks文件
安装GNOME
yum groupinstall "X Window System"
命令行启动桌面
startx
命令行启动
system-config-kickstart
install keyboard 'us' rootpw --iscrypted $1$gQGu0rtQ$zsLfgley77DRagCu/21VF1 url --url="http://192.168.118.141/cobbler/ks_mirror/centos-7-x86_64/" lang en_US auth --useshadow --passalgo=sha512 graphical selinux --disabled skipx firewall --disabled network --bootproto=bootp --device=eth0 reboot timezone --utc Asia/Shanghai bootloader --location=mbr zerombr clearpart --all --initlabel part /boot --fstype="xfs" --size=512 part / --fstype="xfs" --size=8192 part swap --fstype="swap" --size=1024 **%packages @base** %end
mv /root/ks.cfg /var/lib/cobbler/kickstarts/centos7-base.cfg cobbler profile add --name=centos7-base --distro=centos-7-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos7-base.cfg
验证
cobbler profile list
systemctl restart cobblerd.service systemctl restart tftp.socket
准备,关闭虚拟机dhcp,建立两台虚拟机与cobbler主机同网络
开机,获取到IP 192.168.118.200
Login 成功,获取IP 192.168.118.200
配置文件:/etc/cobbler/modules.conf
有多种认证方式可供选择
我这里使用默认的authn_configfile 方式
htdigest -c /etc/cobbler/users.digest "Cobbler" admin
cobbler sync
systemctl restart httpd.service systemctl restart cobblerd.service
https://192.168.118.150/cobbler_web
使用默认帐号 cobbler cobbler登录或是新建立的帐号登录web界面
Centos 官方 bug编号:0007177 https://bugs.centos.org/view.php?id=7177
bug缘由:配置kickstart文件时,咱们安装了GNOME界面,重启系统后,显示初始设置屏幕,要求接受许可证,显然centos系统不该该提示这个
处理1:关闭初始化设置
systemctl disable initial-setup-graphical.service
处理2:为避免后续安装系统出现问题,在ks文件中加入
# missing systemctl disable initial-setup.service # https://bugzilla.redhat.com/show_bug.cgi?id=1213114 # https://bugzilla.redhat.com/show_bug.cgi?id=968582 systemctl disable initial-setup-graphical.service
日志报错:/var/log/httpd/error_log
须要ssl访问,使用https访问:/var/log/httpd/ssl_error_log
日志报错,ssl证书出现问题
处理:重装cobbler
检查selinux,防火墙,以及httpd错误日志 /var/log/httpd/ssl_error_log
日志提示:导入模块失败,django支持问题
处理:
yum install python2-pip
目前django的稳定支持版为1.8版本
pip install Django==1.8.11
systemctl restart httpd
报错:/sbin/dmsquash-live-root:line 273:printf:write error:no space left on device
缘由:虚拟机内存不到2G
挂载镜像
mount -o loop -t iso9660 /dev/sr0 /media
日志显示导入镜像正在进行中(running),状态变为complete表示导入结束
在内核参数添加net.ifnames=0 biosdevname=0
在融合期时代,须要手动选择要安装的系统,如今,能够根据MAC地址定制系统;
根据指定的MAC地址安装指定的系统,而且能够提早配置全局网络,网卡等信息
cobbler_server="192.168.118.100" cobbler_net="192.168.118" [ -x /usr/bin/yum ] && yum -y install epel-release.noarch &> /dev/null if [ $? -eq 0 ];then yum -y install cobbler cobbler-web dhcp tftp-server pykickstart httpd &> /dev/null fi systemctl stop firewalld.service systemctl disable firewalld.service sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config systemctl enable cobblerd.service systemctl enable httpd.service systemctl enable rsyncd systemctl enable tftp.socket sed -i 's/server: 127.0.0.1/server: ${cobbler_server}/' /etc/cobbler/settings sed -i 's/next_server: 127.0.0.1/next_server: ${cobbler_server}/' /etc/cobbler/settings sed -i 's/manage_dhcp: 0/manage_dhcp: 1/' /etc/cobbler/settings sed -i 's/pxe_just_once: 0/pxe_just_once: 1/' /etc/cobbler/settings sed -ri "/default_password_crypted/s#(.*: ).*#\1\"`openssl passwd -1 -salt 'admin' '111111'`\"#" /etc/cobbler/settings sed -i 's#yes#no#' /etc/xinetd.d/tftp sed -i.ori 's#192.168.1#${cobbler_net}#g;22d;23d' /etc/cobbler/dhcp.template systemctl start httpd.service systemctl start cobblerd.service systemctl start rsyncd.service systemctl start tftp.socket
https://blog.oldboyedu.com/autoinstall-cobbler/
https://www.zyops.com/autoinstall-cobbler/
http://cobbler.github.io/manuals/2.8.0/