Cobbler自动化工具同时批量部署CentOS7及CentOS6.5推荐

Cobbler介绍:

Cobbler是一款自动化操作系统安装的实现,与PXE安装系统的区别就是可以同时部署多个版本的系统,而PXE只能选择一种系统。而如今的架构动辄就是上千台的服务器。而存在一些操作系统不统一的现象,例如最初的架构采用的是CentOS5系列的系统,而新出现了一些技术后,需要新的操作系统的支持,一方面是需要批量部署装机,而另一方面还需要考虑到如果老版本的服务器出现故障后还需要重新去部署。并且提供Web配置页面,可以只需要一些点击就可以完成一些操作。

Cobbler的实现和PXE的方法大同小异,例如都需要安装tftp,dhcp,http等,但是使用yum安装Cobbler的时候,会自动把需要的全部安装上,而不需要去手动一个个的安装。

本次将实现CentOS 6.5和CentOS7的安装。

而此次安装CentOS7的操作系统,新的系统将不再使用默认的EXT文件系统,对新引入的XFS做下简介:

XFS文件系统是SGI开发的高级日志文件系统,XFS极具伸缩性。并且在CentOS7上已经是默认的文件系统。主要特性包含一下几点:

数据完整性:

采用XFS文件系统时,如果发生宕机现象,由于文件系统开启日志功能,磁盘上的文件会记录到日志,并且可以短时间内恢复磁盘数据。

传输性:

XFS文件系统采用优化算法,日志记录对于IO影响小,而并不映像查询与分配的性能。XFS文件系统能够连续提供快速的反映时间。

可扩展性:

XFS是一个64bit的文件系统,可以支持上百万T字节的存储空间。对特大文件及小尺寸文件的支持非常好,支持大数量目录。XFS文件系统使用表结构(B+树)保证文件系统可以快速搜索及快速分配空间。XFS文件系统能够持续提供高速操作,文件系统性能不受目录及文件数量限制。

传输带宽:

XFS文件系统能以接近裸设备的IO的性能存储数据,在单个文件系统测试中,吞吐量可以达到7GB美妙,对单个文件的读写操作达到4GB每秒。

安装Cobbler。

使用yum安装cobbler。

#yuminstallcobblerInstall21Package(s)Totaldownloadsize:6.0MInstalledsize:23MIsthisok[y/N]:YDownloadingPackages:(1/21):PyYAML-3.10-3.el6.x86_64.rpm|157kB00:00(2/21):apr-util-ldap-1.3.9-3.el6_0.1.x86_64.rpm|15kB00:00(3/21):cobbler-2.4.0-1.el6.noarch.rpm|664kB00:00(4/21):createrepo-0.9.9-18.el6.noarch.rpm|94kB00:00(5/21):deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm|71kB00:00(6/21):genisoimage-1.1.9-12.el6.x86_64.rpm|348kB00:00(7/21):httpd-2.2.15-29.el6.centos.x86_64.rpm|821kB00:00(8/21):httpd-tools-2.2.15-29.el6.centos.x86_64.rpm|73kB00:00(9/21):libyaml-0.1.5-1.el6.x86_64.rpm|52kB00:00(10/21):mod_wsgi-3.2-3.el6.x86_64.rpm|66kB00:00(11/21):mtools-4.0.12-1.el6.x86_64.rpm|194kB00:00(12/21):python-cheetah-2.4.1-1.el6.x86_64.rpm|365kB00:00(13/21):python-deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm|27kB00:00(14/21):python-markdown-2.0.1-3.1.el6.noarch.rpm|118kB00:00(15/21):python-netaddr-0.7.5-4.el6.noarch.rpm|1.0MB00:00(16/21):python-pygments-1.1.1-1.el6.noarch.rpm|562kB00:00(17/21):python-setuptools-0.6.10-3.el6.noarch.rpm|336kB00:00(18/21):python-simplejson-2.0.9-3.1.el6.x86_64.rpm|126kB00:00(19/21):syslinux-4.02-8.el6.x86_64.rpm|859kB00:00(20/21):tftp-server-0.49-7.el6.x86_64.rpm|39kB00:00(21/21):xinetd-2.3.14-39.el6_4.x86_64.rpm|121kB00:00--------------------------------------------------------------------------------------------------------------------------------------Total5.6MB/s|6.0MB00:01

可以看到这里是安装了http,lftp,因为dhcp服务还是需要手动去安装的。

使用yum安装dhcp。

#yuminstalldhcp

启动httpd,lftp,cobbler, xinetd,rsync查看端口。

#ss-tualNetidStateRecv-QSend-QLocalAddress:PortPeerAddress:PortudpUNCONN00*:bootps*:*#dhcp相关udpUNCONN00*:bootpc*:*udpUNCONN00*:tftp*:*#tcpLISTEN0128:::http:::*#tcpLISTEN0128:::ssh:::*tcpLISTEN0128*:ssh*:*tcpLISTEN0100::1:smtp:::*tcpLISTEN0100127.0.0.1:smtp*:*tcpLISTEN05127.0.0.1:25151*:*#cobbler默认端口tcpLISTEN064:::rsync:::*#

启动cobbler时,使用cobbler –help可以看到cbbler的命令选项,而使用cobbler check检测环境时,会有如下的报错。

#cobblercheckThefollowingarepotentialconfigurationitemsthatyoumaywanttofix:#错误指出我们的cobbler不应该是本地的IP地址,而是一个可以被解析的hostname或者IP1:The'server'fieldin/etc/cobbler/settingsmustbesettosomethingotherthanlocalhost,orkickstartingfeatureswillnotwork.ThisshouldbearesolvablehostnameorIPforthebootserverasreachablebyallmachinesthatwilluseit.#错误指出next_server的IP地址不应该是127.0.0.1的主机地址,而应该是一个真正的tftp服务器地址2:ForPXEtobefunctional,the'next_server'fieldin/etc/cobbler/settingsmustbesettosomethingotherthan127.0.0.1,andshouldmatchtheIPofthebootserveronthePXEnetwork.#错误是不一定要联网下载某些程序,而安装syslinux就可以3: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.#debmrror没有定义好4:debmirrorpackageisnotinstalled,itwillberequiredtomanagedebiandeploymentsandrepositories#需要额外安装pykickstart5:ksvalidatorwasnotfound,installpykickstart#cobbler安装完成后的管理员密码需要替换,因为所有安装后的密码都是一致的6:Thedefaultpasswordusedbythesampletemplatesfornewlyinstalledmachines(default_password_cryptedin/etc/cobbler/settings)isstillsetto'cobbler'andshouldbechanged,try:"opensslpasswd-1-salt'random-phrase-here''your-password-here'"togeneratenewone#没有fencing设备,为可选的7:fencingtoolswerenotfound,andarerequiredtousethe(optional)powermanagementfeatures.installcmanorfence-agentstousethemRestartcobblerdandthenrun'cobblersync'toapplychanges.

编辑settings配置文件,修改上面报错的位置信息。

#vim/etc/cobbler/settingsserver:192.168.151.128#修改cobbler的主机地址next_server:172.16.32.10#修改tftpIP地址default_password_crypted:"$1$f75165f2$vmkPJLhF1yCiLhosykXOC/"#修改cobbler默认加密密码,使用如下命令生成#opensslpasswd-1-salt`opensslrand-hex4`Password:$1$f75165f2$vmkPJLhF1yCiLhosykXOC/

复制pxelinux.0, menu.c32到/var/lib/cobbler/loaders/。

#cd/usr/share/syslinux/#cp-r*/var/lib/cobbler/loaders/

修改完成后执行cobbler sync。

#cobblersynctaskstarted:2014-10-07_231726_synctaskstarted(id=Sync,time=TueOct723:17:262014)runningpre-synctriggerscleaningtreesmkdir:/var/lib/tftpboot/pxelinux.cfgmkdir:/var/lib/tftpboot/grubmkdir:/var/lib/tftpboot/s390xmkdir:/var/lib/tftpboot/ppcmkdir:/var/lib/tftpboot/etcremoving:/var/lib/tftpboot/grub/imagescopyingbootloaderscopying:/usr/share/syslinux/pxelinux.0- /var/lib/tftpboot/pxelinux.0copying:/usr/share/syslinux/menu.c32- /var/lib/tftpboot/menu.c32copying:/usr/share/syslinux/memdisk- /var/lib/tftpboot/memdiskcopyingdistrostotftpbootcopyingimagesgeneratingPXEconfigurationfilesgeneratingPXEmenustructurerenderingTFTPDfilesgenerating/etc/xinetd.d/tftpcleaninglinkcachesrunningpost-synctriggersrunningpythontriggersfrom/var/lib/cobbler/triggers/sync/post/*runningpythontriggercobbler.modules.sync_post_restart_servicesrunningshelltriggersfrom/var/lib/cobbler/triggers/sync/post/*runningpythontriggersfrom/var/lib/cobbler/triggers/change/*runningpythontriggercobbler.modules.scm_trackrunningshelltriggersfrom/var/lib/cobbler/triggers/change/****TASKCOMPLETE***

Cobbler 子命令介绍。

cobblercheck#检查cobbler配置cobblersync#步配置到dhcppxe和数据目录cobblerlist#列出所有的cobbler元素cobblerimport#导入安装的系统光盘镜像cobblerreport#列出各元素的详细信息cobblerdistro#查看导入的发行版系统信息cobblerprofile#查看配置信息cobblersystem#查看添加的系统信息cobblerreposync#同步yum仓库到本地

因为dhcp需要还是需要手动安装配置,而不是需要cobbler来管理的,还需要配置dhcp。

#cp/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample/etc/dhcp/dhcpd.confcp:overwrite`/etc/dhcp/dhcpd.conf'?y#vim/etc/dhcp/dhcpd.confsubnet172.16.32.0netmask255.255.255.0{range172.16.32.15172.16.32.50;#dhcp分配网络optionrouters172.16.32.10;#dhcp主机地址next-server172.16.32.10;#lftp地址filename="pxelinux.0";#servicedhcpdstart

接下来开始导入光盘映像文件。

#mount/dev/cdrom/mnt/mount:blockdevice/dev/sr0iswrite-protected,mountingread-only

导入CentOS6.5的映像文件

# cobbler import –name=CentOS_6.5_x86_64 –path=/mnt/

期间因为导入CentOS7的镜像文件时我的电脑磁盘满了而虚拟机停止,触发了一个Cobbler的BUG,再次启动虚拟机后重新导入CentOS7的映像文件时显示如下。

#cobblerimport--name=CentOS_7_x86_64--path=/mnt/Traceback(mostrecentcalllast):File"/usr/bin/cobbler",line35,in module sys.exit(app.main())File"/usr/lib/python2.6/site-packages/cobbler/cli.py",line644,inmainrc=cli.run(sys.argv)File"/usr/lib/python2.6/site-packages/cobbler/cli.py",line270,inrunself.token=self.remote.login("",self.shared_secret)File"/usr/lib64/python2.6/xmlrpclib.py",line1199,in__call__returnself.__send(self.__name,args)File"/usr/lib64/python2.6/xmlrpclib.py",line1489,in__requestverbose=self.__verboseFile"/usr/lib64/python2.6/xmlrpclib.py",line1253,inrequestreturnself._parse_response(h.getfile(),sock)File"/usr/lib64/python2.6/xmlrpclib.py",line1392,in_parse_responsereturnu.close()File"/usr/lib64/python2.6/xmlrpclib.py",line838,incloseraiseFault(**self._stack[0])xmlrpclib.Fault: Fault1:" class'cobbler.cexceptions.CX' :'loginfailed'" 

解决方法。

#servicecobblerdrestartStoppingcobblerdaemon:[OK]Startingcobblerdaemon:[OK]#cobblerget-loaders

重新导入。

#cobblerimport--name=CentOS_7_x86_64--path=/mnt/taskstarted:2014-10-08_173739_importtaskstarted(id=Mediaimport,time=WedOct817:37:392014)Foundacandidatesignature:breed=redhat,version=rhel6Foundacandidatesignature:breed=redhat,version=fedora16Foundacandidatesignature:breed=redhat,version=fedora17Foundacandidatesignature:breed=redhat,version=fedora18Nosignaturematchedin/var/www/cobbler/ks_mirror/CentOS_7_x86_64!!!TASKFAILED!!!

这个时候又一次的出错了:!!! TASK FAILED !!!,使用如下命令解决。

#cobblersignatureupdate再次导入。#cobblerimport--name=CentOS_7_x86_64--path=/mnt/

查看/var/www/cobbler/ks_mirror路径下的目录。

#lsCentOS_6.5_x86_64CentOS_7_x86_64config

查看dirstro。

#cobblerdistrolistCentOS_6.5-x86_64CentOS_7-x86_64

接下来准备ks.cfg文件。CentOS6.5的cfg文件是参考我上次PXE时使用的,而CentOS7的在软件包安装以及磁盘分区上有些出入,CentOS7使用的是xfs系统。

#version=RHEL7#Systemauthorizationinformationauth--enableshadow--passalgo=sha512url--url=http://172.16.32.10/cobbler/ks_mirror/CentOS_7_x86_64#RuntheSetupAgentonfirstbootrebootfirewall--disabledignoredisk--only-use=sda#Keyboardlayoutskeyboard--vckeymap=us--xlayouts='cn'#Systemlanguagelangen_US.UTF-8#Networkinformationnetwork--bootproto=dhcp--device=ens32--onboot=off--ipv6=autonetwork--hostname=localhost.localdomain#Rootpasswordrootpw--iscrypted$6$rHQRho3gkPJXIgy7$LTVHkf8PwxnOUc8QPvotK3myXGDsp2FKfdHWjWftjwcSAAB.V/j7Ki3lTDbu6e2Kc55imnNLc/Hno./VQh2cz.#SystemtimezonetimezoneAsia/Shanghai--isUtc#Systembootloaderconfigurationbootloader--location=mbr--boot-drive=sda#Partitionclearinginformationzerombrclearpart--allclearpart--none--initlabel#Diskpartitioninginformationpart/boot--fstype="xfs"--ondisk=sda--size=500partpv.10--fstype="lvmpv"--ondisk=sda--size=82087volgroupcentos--pesize=4096pv.10logvol/var--fstype="xfs"--size=40000--name=var--vgname=centos#此处便是XFS的LVM逻辑卷划分logvol/--fstype="xfs"--size=20000--name=root--vgname=centoslogvolswap--fstype="swap"--size=2080--name=swap--vgname=centoslogvol/usr--fstype="xfs"--size=20000--name=usr--vgname=centos%packages@core@development%end

添加Cobbler Profile。

#cobblerprofileadd--name=CentOS7_X86_64-basic--distro=CentOS_7-x86_64--kickstart=/tmp/CentOS7_x86_64.ks.cfg#cobblerprofileadd--name=CentOS_6.5_X86_64-basic--distro=CentOS_6.5-x86_64--kickstart=/tmp/CentOS6.5_x86_64.ks.cfg#cobblerprofilelistCentOS7_X86_64-basicCentOS_6.5-x86_64CentOS_6.5_X86_64-basicCentOS_7-x86_64

这时候就可以开始装机了。先安装CentOS7。

在安装CentOS6.5。

CobblerWeb界面。

#yuminstallcobbler-web

Web页面默认不允许任何人登录,需要手动修改认证相关配置。

#vim/etc/cobbler/modules.conf[authentication]#module=authn_denyallmodule=authn_pam

创建账户,使其能够登录CobblerWeb页面。

#useraddCadmin[root@webtmp]#passwdCadminChangingpasswordforuserCadmin.Newpassword:BADPASSWORD:itistoosimplistic/systematicBADPASSWORD:istoosimple

修改Cobbler的用户配置文件,添加进Cobbler管理组。

#vim/etc/cobbler/users.conf[admins]admin="Cadmin"cobbler=""

重启http,Cobbler。

#servicecobblerdrestartStoppingcobblerdaemon:[OK]Startingcobblerdaemon:[OK]#servicehttpdrestartStoppinghttpd:[OK]Startinghttpd:[OK]

地址栏输入172.16.32.10/cobbler_web,就可以访问了。

登录进去后就可以通过Web页面来配置了。

想像力比知识更重要

Cobbler自动化工具同时批量部署CentOS7及CentOS6.5推荐

相关文章:

你感兴趣的文章:

标签云: