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

Cobbler运维自动化部署实战

时间:2023-03-12 17:33:24 科技观察

一、参数说明相关配置参数:  二、总结  一般来说,在RHT/Centos系列版本下,使用Cobbler不会遇到大问题。Cobbler的主要功能是将DHCP和Kickstart的修改集成在一个平台下进行管理。Cobbler的本质是启用了Kickstart配置模板,可以嵌入python代码。  这部分技术,Cobbler称之为:snippets  在RHT/Centos系列中,官方已经提供了很多这样的代码,基本上随便调用,但是在Ubuntu下很蛋疼,必须自己开发。  以下为相关配置路径(默认安装):Cobbler配置主要位置:/var/lib/cobbler/(实际运行配置目录)snippets代码位置:/var/lib/cobbler/snippets/Kickstart模板location:/var/lib/cobbler/kickstarts/安装源镜像位置:/var/www/cobbler/ks_mirror/(链接到apache的release目录,方便安装时通过http下载安装镜像文件kickstartworks)#p#  3.具体使用过程  1)导入安装源  a)准备好安装光盘(ISO)  ,暂放在:/www/os/CentOS-6.3-x86_64-bin-DVD1.iso  b)挂载ISO  mount-oloop/www/os/CentOS-6.3-x86_64-bin-DVD1.iso/mnt/centos63-1  c)将安装源导入Cobbler  pass在此链接中,Cobbler会将安装好的镜像ISO复制到源安装镜像目录:/var/www/cobbler/ks_mirror/  运行命令如下:  科布lerimport--path=/mnt/centos63-1--name=centos6.3--arch=x86_64  参数说明:  --name定义安装源的名称  --arch指定安装源是32位还是64位,ia64,目前支持的选项有:x86│x86_64│ia64  注:本安装源的***标志是根据这两个来定义的parameters  本例导入成功后,安装源的***标记为:centos6.3-x86_64。如果重复,系统会提示导入失败如果需要更多的参数自定义,可以使用另外一个命令:cobblerdistro。  相关管理命令:  //查看导入源库列表  cobblerdistrolist  //查看导入安装源详情  cobblerdistroreport--namecentos6.3-x86_64  2)定义Profile  Profile的概念,我理解为配置分组,让一组服务器指定他们都需要安装的服务和配置。  例如:指定磁盘的分区策略、指定要安装的服务、键盘布局、默认语言等,这些操作实际上是通过在Profile中分配不同的kickstart配置文件来实现的。第一次导入时,系统会为安装源指定一个默认的Profile,其中定义了一个KS文件:/var/lib/cobbler/kickstarts/sample.ks,为了满足自定义服务的需要,我们需要定义我们自己的配置文件,并指定您自己的KS文件。当然你也可以自定义多个KS文件。  按照上面的例子,我导入了一个安装源:centos6.3-x86_64,所以我需要定义一个Profile  ,操作命令如下:  cobblerprofileadd--name=centos6。3-x86_64--distro=centos6.3-x86_64--kickstart=/var/lib/cobbler/kickstarts/centos6.3-x86_64.ks  如果这个profile已经存在,需要修改:  cobblerprofileedit--name=centos6.3-x86_64--distro=centos6.3-x86_64--kickstart=/var/lib/cobbler/kickstarts/centos6.3-x86_64.ks  参数说明:  --nameProfile的名称(也不能重复),本例中我们新定义的Profile叫做:centos6.3-x86_64  --distroProfile关联的安装源ID(可以通过查看cobblerdistrolistTo)  --kickstartprofile关联的kickstartprofile(这个文件必须提前准备好)#p#  相关管理命令:  //查看profile详情  cobblerprofilereport--namecentos6.3-x86_64  //通过profile找到对应的KS文件  ksfile=$(cobblerprofilereport--namecentos6.3-x86_64|grep-E'^Kickstart'|head-n1|cut-d':'-f2);cat$ksfile;  3)准备自定义kickstart配置文件(ForCentos/RHEL)  注意:这是关键步骤之一  由于需要安装的操作系统发行厂商不同,所以编写要求KS文件也不同。  本文只讨论CentOs/RHEL系列的KS配置  另外:不同的操作系统版本,KS有一定差异,比如CentOS5,和CentOS6是不一样的,切记!  官网文档在这里:  CentOS5(网上大多是这个系列):http://www.centos.org/docs/5/html/Installation_Guide-en-US/s1-kickstart2-options。html  CentOS6(可以看到几个配置案例):https://access.redhat.com/knowledge/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/s1-kickstart2-options.html  其他KS文件我自己测试也是上传的。可供大家下载:  centos6.364-bitKS  centos5.864-bitKS  另外Cobbler对RHEL和CentOS的支持非常好,所以很多需要特殊定义的选项都有对应的snippetscripts  建议在snippets目录下勾选后再使用。也许你已经拥有了。否则,请考虑自己开发片段脚本。KS文件中  的调用方法如下:post_install_network_config')  这一行配置调用网络配置相关操作(里面有模板,支持嵌入python代码)  有一个ks文件中的重要配置参数,用于定义系统安装的源文件下载方式:  比如CentOS6的配置文件有这么一行:url--url=http://192.168.100.1/cobbler/ks_mirror/centos6.3  这个其实就是之前导入的安装源包中的各种安装,现在指定访问方式  4)自定义需要安装系统的服务器  注意:服务器网卡必须支持PXE功能  至少有几个自定义:networkconfiguration,Hostname这些  注意:如果不自定义,网卡PXE启动后,会出现一个菜单用于人们选择使用哪种配置(实际上是eProfile的名字)  ,每个安装源都有自己默认的KS文件,超过时间后会指定默认的KS文件进行安装  本文主要讨论自动化一键部署,所以必须自定义  这部分操作主要通过cobbler系统实现  操作命令如下:  cobbler系统添加--name=WebCache-3.167--mac=00:24:E8:64:24:59--ip-address=192.168.3.167--subnet=255.255.255.0--gateway=192.168.3.1--interface=eth0--static=1--profile=centos6.3-x86_64--dns-name=ywtest-3-167.test.com--hostname=ywtest-3-167.test.com--netboot-enabled=true--name-servers="192.168.3.1202.106.196.115"  上面的命令定义了一个服务器如下:因为这个服务器是用来做web服务的,ip地址是192.168.3.167,这种格式方便记忆  b)网络分配的网卡设备:eth0MAC地址:00:24:E8:64:24:59  注意这是必填项,主要是为了区分不同的配置基于它)分配IP:192.168.3.167子网掩码:255.255.255.0默认网关:192.168.3.1设备名称:eth0分配静态IP  d)本机使用的DNS服务IP:192.168.3.1202.106.196.115(配置根据实际情况而定)  支持添加多个DNSIP,以空格分隔  e)SpecifyaProfile:centos6.3-x86_64  这个选项可以自动定义本机安装的系统,安装的服务等。  具体配置可以查看配置文件中实际定义的KS文件获取  f)Specifyhostname:ywtest-3-167.test.com  cobbler可以根据这个参数修改CentOS系统主机名配置  g)可以设置cobbler,让安装新服务器后,自动跳过第二次PXE启动(避免重复安装)  但是如果需要强制安装,需要使用这个参数:--netboot-enabled=true  相关操作命令:  //查看自定义列表  cobbler系统列表  //查看自定义详情  cobbler系统--nameWebCache-3.167  更多定制技巧:  a)多网卡定制  一般默认配置eth0。当然,Cobbler也支持自定义多张网卡  。需要注意的是,这个功能在CentOS/RHEL下是没有问题的。Cobbler可以通过snippets脚本使用这些具体的设置来完成对KS的修改  但是在Ubuntu下没有相同配置对应的snippets脚本(理论上可以自己写),所以只能使用其他的方法实现  的操作命令如下:  cobblersystemedit--nameWebCache-3.167--interface=eth0.10--static=1--ip=192.168.10.5--subnet=255.255.255.0  cobblersystemedit--nameWebCache-3.167--interface=eth1--static=1--ip=192.168.20.5--subnet=255.255.255.0  通过上面两句,可以添加别名网卡eth0的配置:eth0:10,以及另一块网卡eth1的配置  b)删除网卡的自定义配置  systemedit--name=WebCache-3.167--interface=eth1--delete-interface  c)支持网卡绑定配置  cobblersystemedit--name=WebCache-3.167--interface=eth0--mac=AA:BB:CC:DD:EE:00--interface-type=bond_slave--接口-master=bond0  cobbler系统编辑--name=WebCache-3.167--interface=eth1--mac=AA:BB:CC:DD:EE:01--interface-type=bond_slave--interface-master=bond0  cobbler系统编辑--name=WebCache-3.167--interface=bond0--interface-type=bond--bonding-opts="mode=active-backupmiimon=100"--ip=192.168.3.167--subnet=255.255.255.0--gateway=192.168.3.1--static=1  上面的命令配置了一个bonding,其成员是:eth0,eth1  d)配置Bridge类型的网卡  cobblersystemedit--name=WebCache-3.167--interface=eth2--mac=AA:BB:CC:DD:EE:00--interface-type=bridge_slave--interface-master=br0--static=1  cobbler系统编辑--name=WebCache-3.167--interface=br0--mac=AA:BB:CC:DD:EE:00--interface-type="bridge"--static=1  上面的语句是配置一个Bridge:br0,它的成员是eth2  ,因为我不想给这个网桥配置IP地址,所以需要加上参数:--static=1,否则在实际配置的时候会把Cobbler配置成DHCP模式theBridge  更多攻略,请参考官网WIKI。  也可以参考软件自带的MAN:mancobbler  5)同步上面步骤所做的修改  因为上面的步骤需要修改很多组件(根据cobbler配置文件),可能有:  a)Cobbler自己的内部配置  以上链接的配置信息会自动记录  b)Dhcp配置(需要在主配置文件中开启Dhcp功能的管理)  需要注意的是,如果是在Centos5下,会有问题;但是Centos6不会有问题  被Cobbler默认修改为/etc/dhcp/dhcpd.conf,但是Centos5下的配置文件在/etc/  下所以可能需要修改dhcp系统启动脚本/etc/init.d/dhcpd  c)Tftp配置(需要在主配置文件中开启对Tftp功能的管理)  因为有自定义配置,Cobbler会在主配置中生成对应的配置tftp的配置文件夹:  假设:ftft的根目录是/tftpboot/  Cobbler生成的配置文件会放在/tftpboot/pxelinux.cfg/  d下)绑定配置(需要开启主配置文件中DNS功能的管理)  这部分是我测试中配置的没有打开,所以没有测试  估计要修改Bind的主配置文件/etc/named.conf  操作命令如下:  cobblersync  6)打开电源,BOOT需要的服务器e自动安装  一般通过PXE接上电源完成自动安装。基本上20-30分钟后,一个安装就可以完成。#p#  4.补遗  1)关于Apache和Cobbler  上篇文章(Cobbler-服务安装)已经说了Apache和Cobbler深度集成  主要是Cobbler是写的在蟒蛇。它使用Apache的wsgi模块来实现http接口  使用这个接口可以做几件事:  a提供安装源的http下载  bCobbler的web管理平台,提供图形化操作界面(这部分我没有深入测试过,请自行查看相关文档)  //Cobblerweb接口访问地址:  http://192.168.100.1/cobbler_web/(192.168.100.1为Apache监控IP地址)  c提供接口查询相关配置  例如:  //查询个人资料详情  http://192.168.100.1/cblr/svc/op/ks/profile/centos6.3-x86_64  //查询自定义配置的KS文件  http://192.168.100.1/cblr/svc/op/ks/system/WebCache-3.167  2)关于wsgi  安装方法:yum-yinstallmod_wsgi  相关配置文件:  a)wsgi.conf:允许apache启动wsgi模块  其内容是一行配置命令:  LoadModulewsgi_modulemodules/mod_wsgi.so  b)mod_wsgi.so模块核心,根据apache组件开发  此文件需要放在apache中模块组件目录  c)cobbler.conf  该配置文件是主要的核心配置  假设默认安装了apache和cobbler  该文件将存在于:/etc/httpd/conf.d/cobbler.conf  3)配置检查  //kickstart配置检查  cobblervalidateks  //单个kickstart配置文件检查  /usr/bin/ksvalidator"http://192.168.100.1/cblr/svc/op/ks/profile/centos6.3-x86_64"  /usr/bin/ksvalidator"http://192.168.100.1/cblr/svc/op/ks/system/WebCache-3.167"  4)设置并同步特定源  a)添加特定源  cobblerrepoadd--mirror=http://mirrors.ustc.edu.cn/epel/6/x86_64/--name=ustc-epel6-x86_64--arch=x86_64--breed=yum  cobblerrepo添加--mirror=http://mirrors.ustc.edu.cn/epel/testing/6/x86_64/--name=ustc-epel6-x86_64-testing--arch=x86_64--breed=yum  b)给配置文件指定一个特定的源  cobblerprofileedit--name=centos6.3-x86_64--repos="epel6-x86_64epel6-x86_64-testing"  c)需要同步的源epeltoLocally,testyournetworkspeed  cobblerreposync  cobblerreposync--tries=3--no-fail  6)修改内核启动参数,确保安装启动后不会选择国家.语言、键盘布局小技巧  cobblerprofileedit--name=centos6.3-x86_64--distro=centos6.3-x86_64--kickstart=/var/lib/cobbler/kickstarts/centos6.3-x86_64.ks--kopts="locale=en_USnetcfg/choose_interface=autoconsole-setup/ask_detect=falsekeyboard-configuration/layoutcode=us"