基于Cobbler实现多版本系统批量部署推荐

前言

运维自动化在生产环境中占据着举足轻重的地位,尤其是面对几百台,几千台甚至几万台的服务器时,仅仅是安装操作系统,如果不通过自动化来完成,根本是不可想象的。记得前面我们探究了基于PXE实现系统全自动安装,但PXE同时只能提供单一操作系统的批量部署,面对生产环境中不同服务器的需求,该如何实现批量部署多版本的操作系统呢?Cobbler便可以的满足这一实际需求,本文带来的是基于Cobbler实现多版本操作系统批量部署。

Cobbler

简介

Cobbler是一款自动化操作系统部署的实现工具,由Python语言开发,是对PXE的二次封装。融合多种特性,提供了CLI和Web的管理形式。同时,Cobbler也提供了API接口,方便二次开发使用。它不仅可以安装物理机,同时也支持kvm、xen虚拟化、Guest OS的安装。另外,它还能结合Puppet等集中化管理软件,实现自动化管理。

组件

Cobbler的各主要组件间关系如图所示

实现过程

实验拓扑

#注意事项:请确保selinux关闭,防火墙放行相关端口或关闭防火墙

安装cobbler

[root@scholar~]#yuminstallcobbler-y#需epel及updates支持

cobbler的运行依赖于dhcp、tftp、rsync及dns服务,其中dhcp可由dhcpd提供,也可由dnsmasq提供,tftp可由tftp-server程序包提供,也可由cobbler功能提供,rsync有rsync程序包提供,dns可由bind提供,也可由dnsmasq提供,此处独立管理,即不通过cobbler来管理这些服务。

配置dhcp

#cobbler在安装时会将依赖包tftp-server和xinetd安装,dns服务非必需,所以还要手动安装dhcp[root@scholar~]#yuminstalldhcp-y[root@scholar~]#cp/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample/etc/dhcp/dhcpd.confcp:overwrite`/etc/dhcp/dhcpd.conf'?y[root@scholar~]#vim/etc/dhcp/dhcpd.confoptiondomain-name"scholar.com";optiondomain-name-servers172.16.0.1;default-lease-time43200;max-lease-time86400;log-facilitylocal7;subnet172.16.0.0netmask255.255.0.0{range172.16.10.60172.16.10.70;optionrouters172.16.0.1;next-server172.16.10.125;filename"pxelinux.0";[root@scholar~]#servicedhcpdstart

配置rsync和tftp

[root@scholar~]#chkconfigtftpon[root@scholar~]#chkconfigrsyncon[root@scholar~]#servicexinetdstart

配置cobbler

#检查需要修改的配置,需启动httpd服务及cobblerd[root@scholar~]#servicecobblerdstart[root@scholar~]#servicehttpdstart[root@scholar~]#cobblercheckThefollowingarepotentialconfigurationitemsthatyoumaywanttofix:1:The'server'fieldin/etc/cobbler/settingsmustbesettosomethingotherthanlocalhost,orkickstartingfeatureswillnotwork.ThisshouldbearesolvablehostnameorIPforthebootserverasreachablebyallmachinesthatwilluseit.2:ForPXEtobefunctional,the'next_server'fieldin/etc/cobbler/settingsmustbesettosomethingotherthan127.0.0.1,andshouldmatchtheIPofthebootserveronthePXEnetwork.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.4:debmirrorpackageisnotinstalled,itwillberequiredtomanagedebiandeploymentsandrepositories5:ksvalidatorwasnotfound,installpykickstart6:Thedefaultpasswordusedbythesampletemplatesfornewlyinstalledmachines(default_password_cryptedin/etc/cobbler/settings)isstillsetto'cobbler'andshouldbechanged,try:"opensslpasswd-1-salt'random-phrase-here''your-password-here'"togeneratenewone7:fencingtoolswerenotfound,andarerequiredtousethe(optional)powermanagementfeatures.installcmanorfence-agentstousethemRestartcobblerdandthenrun'cobblersync'toapplychanges.#解决方法1:#vim/etc/cobbler/settingsserver:172.16.10.1252:#vim/etc/cobbler/settingsnext_server:172.16.10.1253:#cobblerget-loaders#需要可访问互联网,尝试此法返回404错误,只好手动复制文件#yuminstallsyslinux-y#cp-r/usr/share/syslinux/*/var/lib/cobbler/loaders/4:忽略即可5:#yuminstallpykickstart-y6:]#opensslpasswd-1-salt`opensslrand-hex4`Password:$1$ebcbf370$s8C9mNday5b.lE5nh4.7N1#vim/etc/cobbler/settingsdefault_password_crypted:"$1$ebcbf370$s8C9mNday5b.lE5nh4.7N1"7:安装cman或fence-agents#可忽略[root@scholar~]#servicecobblerdrestart

添加distro(distribution)

#挂载光盘镜像,每换一个系统镜像都需重新挂载[root@scholar~]#mount/dev/cdrom/mntmount:blockdevice/dev/sr0iswrite-protected,mountingread-only
#导入CentOS6镜像文件

#导入CentOS7镜像文件,请确保已重新挂载镜像

验证是否导入成功

添加profile

#kickstart文件可按实际需要制作,这里直接修改/root/anaconda-ks.cfg,添加关键配置项如下:url--url=http://172.16.10.125/cobbler/ks_mirror/CentOS-7.0-x86_64#指定repo位置#注:CentOS6与CentOS7文件系统不同,千万不能用相同kickstart文件

同步数据

[root@scholar~]#cobblersync#CentOS7与CentOS6安装过程略有区别,CentOS7在数据同步完成后需要再次指定安装源[root@scholar~]#vim/var/lib/tftpboot/pxelinux.cfg/default#将此项加入CentOS7的append行内inst.repo=http://172.16.10.125/cobbler/ks_mirror/CentOS-7.0-x86_64

部署测试

设置为网卡启动

保存重启后进入引导界面,我们先安装CentOS6

引导成功,开始安装

安装CentOS7

引导成功,开始安装

至此,基于Cobbler实现多版本系统批量部署已成功实现,其实以上配置过程可以使用web界面配置,这样就可以不再刻意的去记繁琐的命令,下面我们就来简单看一下

CobblerWeb界面

安装cobbler-web

[root@scholar~]#yuminstallcobbler-web-y

cobbler-web支持多种认证方式,如authn_configfil、authn_ldap或authn_pam等,下面我们基于authn_pam做认证

#修改认证方式[root@scholar~]#vim/etc/cobbler/modules.conf[authentication]module=authn_pam#添加系统用户[root@scholar~]#useraddcobuser[root@scholar~]#echo'cobpass'|passwd--stdincobuser#添加用户至管理组[root@scholar~]#vim/etc/cobbler/users.conf[admins]admin="cobuser"[root@scholar~]#servicecobblerdrestartStoppingcobblerdaemon:[OK]Startingcobblerdaemon:[OK][root@scholar~]#servicehttpdrestartStoppinghttpd:[OK]Startinghttpd:[OK]

访问测试

登陆成功便可配置根据选项来配置了

简单介绍一下,就不做深入演示了,有兴趣的朋友可以完整的通过web界面配置一下试试

The end

好了,以上便是基于Cobbler实现多版本系统批量部署的整个过程,部署过程中遇到问题可留言交流。以上仅为个人学习整理,如有错漏,大神勿喷~~

没有预兆目的地在哪,前进的脚步不能停下,

基于Cobbler实现多版本系统批量部署推荐

相关文章:

你感兴趣的文章:

标签云: