当前位置: 首页 > 科技观察

运维自动化Cobbler系统安装使用详解

时间:2023-03-22 12:21:01 科技观察

一、介绍Cobbler是linux网络快速安装服务,调整后也可以支持windows网络安装。该工具使用python开发,小巧轻便(只有15k行python代码),可以通过简单的命令完成PXE网络安装环境的配置,还可以管理DHCP、DNS、yum仓库,构建系统ISO图片。Cobbler支持命令行管理,web界面管理,同时也提供了API接口,方便二次开发使用。Cobbler客户端Koan支持虚拟机安装和操作系统重装,重装系统更简单。二、cobbler提供的功能有了Cobbler,你可以安装机器,无需人工干预。Cobbler设置PXE引导环境(它还支持使用yaboot的PowerPC),并控制与安装相关的所有方面,例如网络引导服务(DHCP和TFTP)和存储库镜像。当希望安装新机器时,Cobbler可以:使用先前定义的模板来配置DHCP服务(如果启用了管理DHCP)镜像存储库(yum或rsync)或解压媒体以注册新操作系统创建一个条目在需要安装的机器的DHCP配置文件中,并使用您指定的参数(IP和MAC地址)在TFTFP服务目录下创建适当的PXE文件重新启动DHCP服务以反映更改重新启动机器以开始安装(如果启用了电源管理)Cobbler支持多种发行版:RedHat、Fedora、CentOS、Debian、Ubuntu和SuSE。添加操作系统时(通常使用ISO文件),Cobbler知道如何解压缩适当的文件并调整网络服务以正确启动机器。Cobbler可以使用kickstart模板。基于RedHat或Fedora的系统使用kickstart文件来自动执行安装过程。通过使用模板,您拥有一个基本的kickstart模板,然后定义其中的变量如何替换配置文件或机器配置。例如,一个模板可能包含两个变量$domain和$machine_name。在Cobbler配置中,配置文件指定domain=mydomain.com,使用该配置文件的每台机器在machine_name变量中指定其名称。此配置文件中的所有机器都安装了相同的kickstart并为domain=mydomain.com配置,但每台机器都有自己的机器名称。您仍然可以使用kickstart模板在不同的域中使用不同的机器名称安装其他机器。为了协助管理系统,Cobbler可以通过fence脚本连接到各种电源管理环境。Cobbler支持apc_snmp、bladecenter、bullpap、drac、ether_wake、ilo、integrity、ipmilan、ipmitool、lpar、rsa、virsh和wti。要重新安装机器,请运行rebootsystemfoo命令,Cobbler将使用必要的凭据和信息为您运行适当的fence脚本(例如机器插槽的数量)。除了这些功能之外,还可以使用配置管理系统(CMS)。您有两个选择:工具内的内部系统,或与现有的外部CMS(例如Chef或Puppet)集成。内部系统允许您指定文件模板,这些模板根据配置参数进行处理(与kickstart模板的方式相同),然后复制到您指定的位置。如果必须将配置文件自动部署到特定机器,此功能很有用。使用koan客户端,Cobbler配置虚拟机并从客户端重新安装系统。我不会讨论配置管理和koan特性,因为它们超出了本文的范围。但是,它们是值得研究的有用属性。三、安装配置1、安装方式Cobbler可以手动编译安装,也可以基于yum源安装。如果需要通过yum源安装,需要配置epel源。epel源码可以通过下载官方epel源码目录安装。https://fedoraproject.org/wiki/EPEL[root@node1~]#yuminstallcobblercobbler-webpykickstartdebmirror-y2。检查配置文件,你需要检查[root@node1~]#cobblercheckThefollowingarepotentialconfigurationitemsthatyoumaywanttofix:1:The'server'fieldin/etc/cobbler/settingsmustbesettosomethingotherthanlocalhost,orkickstartingfeatureswillnotwork.ThisshouldbearesolvablehostnameorIPforthebootserverasreachablebyallmachinesthatwilluseit.2:ForPXEtobefunctional/serverthe'next/etc字段settingsmustbesettosomethingotherthan127.0.0.1,andshouldmatchtheIPofthebootserveronthePXEnetwork.3:somenetworkboot-loadersaremissingfrom/var/lib/cobbler/loaders,你可以运行'cobblerget-loaders'来下载它们,或者,如果你只想处理x86/x86_64网络引导,你可以确保您已经安装了*最新*版本的syslinux软件包,并且可以完全忽略此消息。此目录中的文件,sho旧的你想要支持所有架构,应该包括pxelinux.0、menu.c32、elilo.efi和yaboot。etc/debmirror.confforproperdebiansupport6:commentout'arches'on/etc/debmirror.confforproperdebiansupport7:Thedefaultpasswordusedbythesampletemplatesfornewlyinstalledmachines(default_password_cryptedin/etc/cobbler/settings)isstillsetto'cobbler'andshouldbechanged,try:"opensslpasswd-1-salt'random-phrase-here''your-password-here'”togeneratenewone8:fencingtoolswerenotfound,andarerequiredtousethe(optional)powermanagementfeatures.installcmanorfence-agentstousethem上述问题的解决方法如下:1.修改/etc/cobbler/settings文件中server参数的值,使其对应提供cobbler服务的主机2.修改/etc/cobbler/settings文件中next_server参数的值,为提供PXE服务的主机对应的IP地址。3、如果当前节点可以上网,执行“cobblerget-loader”命令下载pxelinux.0、menu.c32、elilo.efi或yaboot文件,否则需要安装syslinux包,然后复制/usr/共享/syslinux/下的pxelinux.0、menu.c32等文件到/var/lib/cobbler/loaders目录下4.将/etc/xinetd.d/rsync中的disable改为no,或者执行"chkconfigrsyncon"5.注释掉"@dists="sid";"/etc/dedmirror.conf文件中的行6.注释“@arches="i386";"/etc/dedmirror.conf文件中的行7.执行“opensslpasswd-1-salt$(opensslrand-hex4)”生成密码,并用它替换/etc/cobbler/settings中的default_password_crypted参数file8.安装cam和fance-agents实现电源管理通过cobblerget-loaders同步文件:[root@node1~]#cobblerget-loaderstaskstarted:2014-04-23_212251_get_loaderstaskstarted(id=DownloadBootloaderContent,time=WedApr2321:22:512014)下载http://www.cobblerd.org/loaders/READMEto/var/lib/cobbler/loaders/READMEdownloadinghttp://www.cobblerd.org/loaders/COPYING.eliloto/var/lib/cobbler/loaders/COPYING.elilodownloadinghttp://www.cobblerd.org/loaders/COPYING.yabootto/var/lib/cobbler/loaders/COPYING.yabootdownloadinghttp://www.cobblerd.org/loaders/COPYING.syslinux到/var/lib/cobbler/loaders/复制.syslinux下载http://www.cobblerd.org/loaders/elilo-3.8-ia64.efito/var/lib/cobbler/loaders/elilo-ia64.efidownloadinghttp://www.cobblerd.org/loaders/yaboot-1.3.14-12到/var/lib/cobbler/loaders/yabootdownloadinghttp://www.cobblerd.org/loaders/pxelinux.0-3.86to/var/lib/cobbler/loaders/pxelinux.0downloadinghttp://www.cobblerd.org/loaders/menu.c32-3.86to/var/lib/cobbler/loaders/menu.c32下载http://www.cobblerd.org/loaders/grub-0.97-x86.efito/var/lib/cobbler/loaders/grub-x86。efidownloadinghttp://www.cobblerd.org/loaders/grub-0.97-x86_64.efito/var/lib/cobbler/loaders/grub-x86_64.efi4、配置并启动cobbler依赖的服务。cobbler的运行依赖于dhcp、tftp、rsync和dns服务,其中dhcp可以由dhcpd(isc)或dnsmasq提供;tftp可以通过tftp-server包或者cobbler函数提供,rsync可以通过rsync包提供,dns可以通过bind提供,也可以通过dnsmasq提供Cobbler来自行管理这些服务中的部分甚至全部,但是需要在/etc/cobbler/settings文件中配置“manange_dhcp”、“manager_tftpd”、“manager_rsync”和“manager_dns”,分别定义它们。另外,由于各种服务有不同的实现方式,如果需要自定义,则需要需要修改/etc/cobbler/modules.conf配置文件中各个服务的模块参数值,实现对这些服务的独立管理,即不用cobbler。1、配置dhcp服务定义需要的“子网”等参数,这里的配置如下:[root@node1~]#cp/usr/share/doc/dhcp*/dhcpd.conf.sample/etc/dhcp/dhcpd.conf编辑配置文件optiondomain-name"wangfeng7399";optiondomain-name-servers192.168.1.201;default-lease-time43200;max-lease-time86400;log-facilitylocal7;subnet192.168.1.0netmask255.255.255.0{range192.168.1.210192.168.1.230optionrouters192.2.-server192.168.1.210;文件名=“pxelinux.0”;2、配置tftpd服务[root@node1~]#chkconfigtftpon5、配置cobblercobbler主要组件之间的关系如下图所示:1、管理distro是cobbler变得可用的第一步是定义distro,这可以通过为其指定外部安装引导内核和ramdisk文件来实现。而如果已经有完整的安装树(比如os的安装镜像),建议在import之间使用import方式:[root@node1~]#mount/dev/cdrom/mediamount:blockdevice/dev/sr0iswrite-protected,mountingread-only[root@node1~]#cobbleimport--name=centos6.5-x86-64--path=/media/taskstarted:2014-04-23_214916_importtaskstarted(id=Mediaimport,time=WedApr2321:49:162014)找到候选签名:breed=redhat,version=rhel6Foundmatchingsignature:breed=redhat,version=rhel6Addingdistrosfrompath/var/www/cobbler/ks_mirror/centos6.5-x86-64:creatingnewdistro:centos6.5-64-x86_64tryingsymlink:/var/www/cobbler/ks_mirror/centos6.5-x86-64->/var/www/cobbler/links/centos6.5-64-x86_64creatingnewprofile:centos6.5-64-x86_64associatingreposcheckingforrsyncrepo(s)checkingforrhnrepo(s)checkingforyumrepo(s))startingdescentinto/var/www/cobbler/ks_mirror/centos6.5-x86-64forcentos6.5-64-x86_64processingrepoat:/var/www/cobbler/ks_mirror/centos6.5-x86-64needtoprocessrepo/comps:/var/www/cobbler/ks_mirror/centos6.5-x86-64寻找/var/www/cobbler/ks_mirror/centos6.5-x86-64/repodata/*comps*.xmlKeepingrepodataas-is:/var/www/cobbler/ks_mirror/centos6.5-x86-64/repodata***TASKCOMPLETE***列出所有发行版:[root@node1~]#cobblerdistrolistcentos6.5-64-x86_64如果你有kickstart文件,也可以使用--kickstart=/path/to/kickstart_file导入,这样import会自动为导入的distro2生成profile。manageprofilecobbler使用profile为特定的需求类别提供锁需要安装的配置,即在distro的基础上通过提供kiskstart文件生成特定的系统安装配置发行版配置文件可以作为安装选项之一出现在pxe引导菜单中。kickstark文件的解释可以移步我的相关博客http://wangfeng7399.blog.51cto.com/3518031/1369553。我详细解释一下:[root@node1~]#cobblerprofileadd--name=centos6.5-x86_64--distro=centos6.5-64-x86_64kickstart=/root/anaconda-ks.cfg列出了当前系统上的配置文件:[root@node1~]#cobblerprofilelistcentos6.5-64-x86_64centos6.5-x86_64删除配置文件:[root@node1~]#cobblerprofileremove--name=centos6.5-64-x86_643。重启服务同步数据到响应目录[root@node1~]#servicecobblerdrestartStoppingcobblerdaemon:[OK]Startingcobblerdaemon:[OK][root@node1~]#cobblersynctaskstarted:2014-04-23_220652_synctaskstarted(id=Sync,time=WedApr2322:06:522014)运行预同步触发器清理:reggerscleaningvar/www/cobbler/images/centos6.5-64-x86_64removing:/var/lib/tftpboot/pxelinux.cfg/defaultremoving:/var/lib/tftpboot/grub/imagesremoving:/var/lib/tftpboot/grub/edefaultremoving:/var/lib/tftpboot/images/centos6.5-64-x86_64removing:/var/lib/tftpboot/s390x/profile_listcopyingbootloaderstryinghardlink/var/lib/cobbbler/loaders/pxelinux.0->/var/lib/tftpboot/pxelinux.0tryinghardlink/var/lib/cobbler/loaders/menu.c32->/var/lib/tftpboot/menu.c32tryinghardlink/var/lib/cobbler/loaders/yaboot->/var/lib/tftpboot/yaboot省略receivedonstderr中间的N行:runningshelltriggersfrom/var/lib/cobbler/triggers/sync/post/*runningpythontriggersfrom/var/lib/cobbler/triggers/change/*运行pythontriggercobbler。modules.scm_trackrunningshelltriggersfrom/var/lib/cobbler/triggers/change/****TASKCOMPLETE***4.测试可以看到我们定制的系统启动页面,开始安装系统。两种认证方式,如authn_configfil、authn_ldap或authn_pam等,默认为authn_denyall,表示拒绝所有用户登录。下面介绍两种认证用户登录cobbler_web的方式。1.使用authn_pam模块对cobbler_web用户进行认证首先修改modules中的[authentication]部分模块参数的值为authn_pam,然后为该用户设置系统用户和密码,然后将设置的系统用户添加到admin组中cobbler_web,修改/etc/cobbler/users.conf文件,设置用户可以添加为admin参数的值。2.使用authn_configfile模块对cobbler_web用户进行认证首先修改modules中[authentication]段中模块参数的值到authn_configfile,然后创建其认证文件/etc/cobbler/users.digest,并添加需要的用户。需要注意的是,添加***用户时,需要使用htdigest命令的“-c”选项,后面添加其他用户时不能使用。这里用的是authn_pam[root@node1~]#vi/etc/cobbler/modules.conf[authentication]module=authn_pam[root@node1~]#useraddwangfeng7399[root@node1~]#passwdwangfeng7399Changingpasswordforuserwangfeng7399.Newpassword:Retypenewpassword:passwd:allauthenticationtokensupdatedsuccessfully.[root@node1~]#vi/etc/cobbler/users.conf[admins]admin="wangfeng7399"可以手动添加,不用担心记不住命令!大功告成,后续会推出自动化运维的相关内容,敬请期待!