Cobbler自动化安装配置实践.docx
- 文档编号:5485054
- 上传时间:2022-12-17
- 格式:DOCX
- 页数:16
- 大小:180.93KB
Cobbler自动化安装配置实践.docx
《Cobbler自动化安装配置实践.docx》由会员分享,可在线阅读,更多相关《Cobbler自动化安装配置实践.docx(16页珍藏版)》请在冰豆网上搜索。
Cobbler自动化安装配置实践
文章目录
Cobbler是一个自动化和简化系统安装的工具,通过使用网络引导来控制和启动安装。
Cobbler的特性包括存储库镜像、Kickstart模板和连接电源管理系统。
使用Cobbler之前需要先了解下PXE和Kickstart的基本原理,文章包含了Cobbler工作原理和Cobbler部署实践两部分内容,交叉关联性的内容还是蛮多的,遇到报错也不要怕,都会一步一步解决的。
Cobbler工作原理
Cobbler由Python语言开发,是对PXE和Kickstart以及DHCP的封装。
融合很多特性,提供了CLI和Web的管理形式。
更加方便的实行网络安装。
同时,Cobbler也提供了API接口,使用其它语言也很容易做扩展。
它不紧可以安装物理机,同时也支持kvm、xen虚拟化、GuestOS的安装。
更多的是它还能结合Puppet等集中化管理软件,实现自动化的管理。
Cobbler支持众多的发行版:
RedHat、Fedora、CentOS、Debian、Ubuntu和SuSE。
当添加一个操作系统(通常通过使用ISO文件)时,Cobbler知道如何解压缩合适的文件并调整网络服务,以正确引导机器。
Cobbler使用命令行方式管理,也提供了基于Web的图形化配置管理工具(cobbler-web)。
通过配置cobbler自动部署DHCP、TFTP、HTTP,在安装过程中加载kiskstart无人值守安装应答文件实现无人值守。
从客户端使用PXE引导启动安装。
Server端
第一步,启动Cobbler服务
第二步,进行Cobbler错误检查,执行cobblercheck命令
第三步,进行配置同步,执行cobblersync命令
第四步,复制相关启动文件文件到TFTP目录中
第五步,启动DHCP服务,提供地址分配
第六步,DHCP服务分配IP地址
第七步,TFTP传输启动文件
第八步,Server端接收安装信息
第九步,Server端发送ISO镜像与Kickstart文件
Client端
第一步,客户端以PXE模式启动
第二步,客户端获取IP地址
第三步,通过TFTP服务器获取启动文件
第四步,进入Cobbler安装选择界面
第五步,客户端确定加载信息
第六步,根据配置信息准备安装系统
第七步,加载Kickstart文件
第八步,传输系统安装的其它文件
第九步,进行安装系统
Cobbler部署实践
#设置YUM源
cd/etc/yum.repo.d/
viepel.repo
[epel]
name=ExtraPackagesforEnterpriseLinux6-$basearch
baseurl=http:
//download.fedoraproject.org/pub/epel/6/$basearch
#mirrorlist=https:
//mirrors.fedoraproject.org/metalink?
repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:
///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
[epel-debuginfo]
name=ExtraPackagesforEnterpriseLinux6-$basearch-Debug
baseurl=http:
//download.fedoraproject.org/pub/epel/6/$basearch/debug
#mirrorlist=https:
//mirrors.fedoraproject.org/metalink?
repo=epel-debug-6&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:
///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
gpgcheck=1
[epel-source]
name=ExtraPackagesforEnterpriseLinux6-$basearch-Source
baseurl=http:
//download.fedoraproject.org/pub/epel/6/SRPMS
#mirrorlist=https:
//mirrors.fedoraproject.org/metalink?
repo=epel-source-6&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:
///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
gpgcheck=1
#导入GPGkey
sudorpm--import
#修改repo文件添加CentOS6.X的YUM源
cd/etc/yum.repos.d/
cprhel-source.reporhel-source.repo.bak
virhel-source.repo
[base]
name=CentOS-$releasever-Base
baseurl=
gpgcheck=1
gpgkey=
[updates]
name=CentOS-$releasever-Updates
baseurl=
gpgcheck=1
gpgkey=
[extras]
name=CentOS-$releasever-Extras
baseurl=
gpgcheck=1
gpgkey=
[centosplus]
name=CentOS-$releasever-Plus
baseurl=
gpgcheck=1
#清除缓存查看是否生效
yumcleanall
yummakecache
yumrepolist
#直接cobbler关联依赖包
yuminstallcobblercobbler-webhttpdrsynctftp-serverxinetddhcppython-ctypesdebmirrorpykickstartcmanfence-agentsdnsmasq
#使用yum-plugin-downloadonly插件
yuminstall-yyum-plugin-downloadonly
yuminstall--downloadonly--downloaddir=/tmp/cobblercobblercobbler-webhttpdrsynctftp-serverxinetddhcppython-ctypesdebmirrorpykickstartcmanfence-agentsdnsmasq
#必要服务
(1)cobbler(cobbler的核心)
(2)httpd(提供cobbler的web界面)
(3)dhcpd(为自动安装系统分配IP地址)
(4)epel-release(为之提供yum源)
(5)rsync(cobbler需要同步信息)
(6)cobbler-web(cobbler的一个web插件)
(7)xinetd(为rsync和tftp的守护进程)
(8)tftp(传送安装的一些文件的类似ftp)
#检查cobbler配置,常见错误如下
cobblercheck
1:
The'server'fieldin/etc/cobbler/settingsmustbesettosomethingotherthanlocalhost,orkickstartingfeatureswillnotwork.ThisshouldbearesolvablehostnameorIPforthebootserverasreachablebyallmachinesthatwilluseit.
2:
ForPXEtobefunctional,the'next_server'fieldin/etc/cobbler/settingsmustbesettosomethingotherthan127.0.0.1,andshouldmatchtheIPofthebootserveronthePXEnetwork.
3:
change'disable'to'no'in/etc/xinetd.d/tftp
4:
somenetworkboot-loadersaremissingfrom/var/lib/cobbler/loaders,youmayrun'cobblerget-loaders'todownloadthem,or,ifyouonlywanttohandlex86/x86_64netbooting,youmayensurethatyouhaveinstalleda*recent*versionofthesyslinuxpackageinstalledandcanignorethismessageentirely.Filesinthisdirectory,shouldyouwanttosupportallarchitectures,shouldincludepxelinux.0,menu.c32,elilo.efi,andyaboot.The'cobblerget-loaders'commandistheeasiestwaytoresolvetheserequirements.
5:
change'disable'to'no'in/etc/xinetd.d/rsync
6:
file/etc/xinetd.d/rsyncdoesnotexist
7:
debmirrorpackageisnotinstalled,itwillberequiredtomanagedebiandeploymentsandrepositories
8:
ksvalidatorwasnotfound,installpykickstart
9:
Thedefaultpasswordusedbythesampletemplatesfornewlyinstalledmachines(default_password_cryptedin/etc/cobbler/settings)isstillsetto'cobbler'andshouldbechanged,try:
"opensslpasswd-1-salt'random-phrase-here''your-password-here'"togeneratenewone
10:
fencingtoolswerenotfound,andarerequiredtousethe(optional)powermanagementfeatures.installcmanorfence-agentstousethem
1.编辑/etc/cobbler/settings文件,找到server选项,修改为本机IP即可
2.编辑/etc/cobbler/settings文件,找到next_server选项,修改为本机IP即可
3.SELinux的设置,如果上面已经关闭了SELinux就不用管了
4.执行cobblerget-loaders,系统将自动下载loader程序,完成提示4的修复工作。
5.编辑/etc/xinetd.d/tftp文件,将文件中的disable字段的配置由yes改为no
6.编辑/etc/xinetd.d/rsync文件,将文件中的disable字段的配置由yes改为no
7.在iptables中将69,80,25151端口打开。
如果仅仅只是在内部环境中使用,建议直接将防火墙关掉
8.提示说debmirror没安装。
如果不是安装debian之类的系统,此提示可以忽略
9.修改cobbler用户的默认密码,可以使用如下命令生成密码,并使用生成后的密码替换/etc/cobbler/settings中的密码。
生成密码命令:
opensslpasswd-1-salt'random-phrase-here''your-password-here'其中“random-phrase-here”为任意字符
10.安装cman或者fence-agents
#关闭selinux/iptables
sed-i'/SELINUX/s/enforcing/disabled/'/etc/selinux/config
setenforce0
chkconfigiptablesoff
serviceiptablesstop
#设置tftp服务和rsync服务
sed-i'/disable/c\\tdisable\t\t\t=no'/etc/xinetd.d/tftp
sed-i-e's/\=\yes/\=\no/g'/etc/xinetd.d/rsync
#设置DHCPserver的IP
sed-i's/next_server:
127.0.0.1/next_server:
172.28.70.245/g'/etc/cobbler/settings
#设置cobbler的IP
sed-i's/server:
127.0.0.1/server:
172.28.70.245/g'/etc/cobbler/settings
#设置Cobbler管理rsync
sed-i's/manage_rsync:
0/manage_rsync:
1/g'/etc/cobbler/settings
#设置Cobbler管理DHCP
sed-i's/manage_dhcp:
0/manage_dhcp:
1/g'/etc/cobbler/settings
#设置Cobbler一次安装开关(可选)
sed-i's/pxe_just_once:
0/pxe_just_once:
1/g'/etc/cobbler/settings
#设置Cobbler管理DNS(可选)
sed-i's/manage_dns:
0/manage_dns:
1/g'/etc/cobbler/settings
#开启动态更新(可选)
sed-i's/allow_dynamic_settings:
0/allow_dynamic_settings:
1/g'/etc/cobbler/settings
#设置debmirror
sed-i-e's/@dists=/#@dists=/g'/etc/debmirror.conf
sed-i-e's/@arches=/#@arches=/g'/etc/debmirror.conf
#编辑dnsmasq.template中dhcp-range部分
#vi/etc/cobbler/dnsmasq.template
vi/etc/dnsmasq.conf
#Cobblergeneratedconfigurationfilefordnsmasq
#$date
#
#resolve.conf..?
#no-poll
#enable-dbus
read-ethers
addn-hosts=/var/lib/cobbler/cobbler_hosts
dhcp-range=172.28.70.246,172.28.70.250
dhcp-option=3,$next_server
dhcp-lease-max=1000
dhcp-authoritative
dhcp-boot=pxelinux.0
dhcp-boot=net:
normalarch,pxelinux.0
dhcp-boot=net:
ia64,$elilo
#重启dnsmasq
/etc/init.d/dnsmasqrestart
#编辑dhcp.template
cp/etc/cobbler/dhcp.template/etc/cobbler/dhcp.template.bak
vi/etc/cobbler/dhcp.template
#******************************************************************
#Cobblermanageddhcpd.conffile
#
#generatedfromcobblerdhcp.conftemplate($date)
#DoNOTmakechangesto/etc/dhcpd.conf.Instead,makeyourchanges
#in/etc/cobbler/dhcp.template,as/etc/dhcpd.confwillbe
#overwritten.
#
#******************************************************************
ddns-update-styleinterim;
allowbooting;
allowbootp;
ignoreclient-updates;
setvendorclass=optionvendor-class-identifier;
optionpxe-system-typecode93=unsignedinteger16;
subnet172.28.70.0netmask255.255.255.0{
optionrouters172.28.70.254;
optiondomain-name-servers172.28.70.254;
optionsubnet-mask255.255.255.0;
rangedynamic-bootp172.28.70.246172.28.70.250;
default-lease-time21600;
max-lease-time43200;
next-server$next_server;
class"pxeclients"{
matchifsubstring(optionvendor-class-identifier,0,9)="PXEClient";
ifoptionpxe-system-type=00:
02{
filename"ia64/elilo.efi";
}elseifoptionpxe-system-type=00:
06{
filename"grub/grub-x86.efi";
}elseifoptionpxe-system-type=00:
07{
filename"grub/grub-x86_64.efi";
}else{
filename"pxelinux.0";
}
}
}
#fordhcp_tagin$dhcp_tags.keys():
##groupcouldbesubnetifyourdhcptagslineupwithyoursubnets
##orreallyanyvaliddhcpd.confconstruct...ifyouonlyusethe
##defaultdhcptagincobbler,thegroupblockcanbedeletedfora
##flatconfiguration
#groupforCobblerDHCPtag:
$dhcp_tag
group{
#formacin$dhcp_tags[$dhcp_tag].keys():
#setiface=$dhcp_tags[$dhcp_tag][$mac]
host$iface.name{
hardwareethernet$mac;
#if$iface.ip_address:
fixed-address$iface.ip_address;
#endif
#if$iface.hostname:
optionhost-name"$iface.hostname";
#endif
#if$mask:
optionsubnet-mask$mask;
#endif
#if$iface.gateway:
optionrouters$iface.gateway;
#endif
#if$iface.enable_gpxe:
ifexistsuser-classandoptionuser-class="gPXE"{
filename"http:
//$cobbler_server/cblr/svc/op/gpxe/system/$iface.owner";
}elseifexistsuser-classandoptionuser-class="iPXE"{
filename"http:
//$cobbler_server/cblr/svc/op/gpxe/system/$iface.owner";
}else{
filename"undionly.kpxe";
}
#else
filename"$iface.filename";
#end
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Cobbler 自动化 安装 配置 实践