PPTV分布式装机系统课件_第1页
PPTV分布式装机系统课件_第2页
PPTV分布式装机系统课件_第3页
PPTV分布式装机系统课件_第4页
PPTV分布式装机系统课件_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、AgendaPPTV分布式装机系统介绍实际面临的问题解决方案系统部署系统组件介绍系统实现Cobbler 配置文件同步Cobbler 自动部署应用实例Cobbler Quick-StartCobbler 动态ks fileCobbler Tips二次开发实际面临的问题服务器系统安装处于半手工状态,有些isp机房甚至需要现场通过光盘安装,耗费大量人力和时间非标准化的系统安装,导致业务部署时遇到这样那样的奇怪问题系统安装是瓶颈,由于以上问题导致业务需要快速部署时,无机器可用的现象实际面临的问题众多机房,由于网络互通互联的问题,只在核心机房架设kickstart server完全无法解决问题;如采用分

2、布式架构,每个机房部署一台kickstart server;如何统一配置,安装模板以及安装源等业务众多,每个业务对应静态安装模板,不便于管理对于某些机房没有可以独立使用机器,在业务机如何复用的问题解决方案Cobbler 开源项目;基于kickstart,方便快速的网络安装操作系统Git 分布式版本控制;静态配置文件的同步Django 框架;动态配置文件的同步Rsyncd;安装源同步编译Cobbler依赖服务apache, python并打包;解决复用的问题使用ControlTie自动部署 系统部署系统部署BGP机房搭建一台Cobbler Master;该服务器管理系统的配置,安装模板以及cob

3、bler部署包;并同时作为该机房的cobbler server提供安装服务所有核心机房部署Cobbler Secondary;作为本机房的安装服务器并提供安装源同步其他机房的Cobbler,由ControlTie自动部署,可以复用业务机器系统组件系统组件Cobbler 主要服务,提供kickstart serverGit Repository 静态配置文件同步源 Git git客户端,用于同步源上的配置文件Django调用cobbler API, 同步动态配置文件Nginx发布Git repository & Django applicationRsync用于安装源同步Python包含cobb

4、ler依赖模块的pythonApache发布cobbler安装源系统实现CobblerCobbler 介绍Cobbler modelsCobbler 动态KS配置文件同步Git 静态配置文件同步Django 动态配置文件同步配置文件同步脚本Cobbler 自动部署Cobbler部署包ControlTie部署Cobbler基于kickstart, linux系统网络快速安装按不同对象组合动态生成kickstart template, 通过ksmeta, snippets实现Koan方便实现重装系统,安装虚拟机统一管理dhcp, tftp, dns这些网络安装依赖的服务支持大部分主流linux发行

5、版本,RHEL, Debian, Suse, Ubuntu, Fedora etc.Cobbler ModelsCobbler ModelsDistro 定义安装源,kernel, initrdProfile 定义KS file等信息,可以认为该对象是对应一个业务的templateSystem 定义系统信息,比如hostname, ip地址等信息Cobbler 动态KSKS file 使用snippet模块化,便于管理通过cobbler models中不同参数,动态生成标准化的ks fileCheetah实现模板中变量替换,以及逻辑的运算;其中的伪代码通过python编译器解析Git 静态配置

6、文件同步所谓静态配置文件是指每台cobbler server上基本一致的配置文件,比如kickstart files, snippets 等Cobbler Master上建立git repositoryCobbler部署时通过git clone同步kickstarts, snippets, triggers 这些静态配置文件Crontab定期从Master那里git pull回最新的配置Git目前流行的版本控制工具分布式版本控制软件对比集中式,分布式提供离线版本控制为应用提供配置文件的版本控制&分布式同步方式配置文件部署Git clone生成kickstart, snippets, trigg

7、ers这些配置文件,并和git repository上的同步.test -x /var/lib/cobbler & cd /var/lib/cobbler/ | echo -ne cobbler directory doesnt exist! nexit 0rm -rf kickstartsrm -rf snippetsrm -rf triggersgit clone http:/cobbler-git/kickstarts.gitgit clone http:/cobbler-git/snippets.gitgit clone http:/cobbler-git/triggers.git.同

8、步脚本使用git pull命令从git repository拉取配置更新echo -ne Kickstarts sync cd $CB_DATA_PATH/kickstartsgit pull & echo -ne OKn | echo -ne FAILEDnecho -ne Snippets sync cd $CB_DATA_PATH/snippetsgit pull & echo -ne OKn | echo -ne FAILEDnecho -ne Triggers sync cd $CB_DATA_PATH/triggersgit pull & echo -ne OKn | echo -

9、ne FAILEDnDjango 动态配置文件同步所谓动态配置文件是指由于不同cobbler配置,而产生的配置文件;比如每台cobbler上的profile对象,由所在cobbler server的distro对象决定通过django调用cobbler api使用nginx发布django 应用,可通过http远程调用Crontab定期调用,通过传入参数,获取配置文件列表并同步Profile对象查询接口.from cobbler.api import BootAPI#cobbler api#传入distro参数,返回profile配置文件列表def profile_list(request,

10、distro): cb_api = BootAPI() profiles = cb_api.find_profile(return_list=True, distro=distro) data = for profile in profiles: profile_url = %s/%s.json % (settings.PROFILES_URL, ) data.append(profile_url) return HttpResponse(|.join(data), text/html).同步脚本.DISTROS=$(cobbler distro list) #取得此cobbler的所有dis

11、tro对象for distro in $DISTROSdo PROFILES=$(curl http:/profile_list/$distro/ 2/dev/null | tr | )#访问Profile对象查询接口 for profile in $PROFILES do echo -ne Download $profile tt wget -q $profile & echo -ne OKn | echo -ne FAILEDn donedone.Cobbler 自动部署Cobbler 部署包ControlTie Task Cobbler 部署Cobbler 配置Cobbler 安装源同步

12、Cobbler 部署包自动部署时包含cobbler源码以及依赖模块,服务的包Cobbler源码Apache2.2.21 编译时必须包含wsgi_module模块Python2.7Cheetah, yaml, pykickstart 相应python模块CT - Cobbler 部署步骤设置相应环境变量,系统设置(关闭iptables, selinux, yum设置)通过yum安装所需服务的rpm包下载 cobbler部署包,并在本机进行编译安装同步配置文件部署完成CT Cobbler 部署#install required rpmsyum install createrepo dhcp cur

13、l-devel tftp-server yum-utils mkisofs git -y#fetch cobbler packagecd /tmpwget http:/packages/cobbler_proxy-2.2.0.tar.bz2 -output-document=cobbler_proxy-2.2.0.tar.bz2#cobbler installationcd /home/toolstar jxvf /tmp/cobbler_proxy-2.2.0.tar.bz2cd /home/tools/package; rpm -ihv *.rpmcd /home/tools/cobble

14、r-2.2.0; make; make install;grep tools /etc/ld.so.conf | sed -i a/home/tools/python/lib/ /etc/ld.so.conf & echo -ne CT Cobbler设置对于cobbler参数进行设置 Cobbler server, next_serverdhcp 参数设置;这些参数通过ControlTie传入CT Cobbler设置.COBBLER_SETTING=/etc/cobbler/settingsDHCP_SETTING=/etc/cobbler/dhcp.template#Cobbler set

15、tingssed -i /server:/ cserver: $option.server_ip $COBBLER_SETTINGsed -i /next_server:/ cnext_server: $option.server_ip $COBBLER_SETTING#DHCP settingssed -i /subnet.*/ csubnet $id netmask $mask $DHCP_SETTINGsed -i /option domain-name-servers/ coption domain-name-servers ; $DHCP_SETTINGsed -i /option

16、subnet-mask/ coption subnet-mask $mask; $DHCP_SETTINGsed -i /range dynamic-bootp/ crange dynamic-bootp $option.pool_range; $DHCP_SETTINGsed -i /option routers/ coption routers $option.gateway; $DHCP_SETTING.CT 安装源同步选择ISP和所需同步的系统版本CT 安装源同步if $option.isp = C1 then case $option.release in 5.4) echo -ne

17、 sync 5.4 from T1 n cobbler import -path=rsync:/RHEL5.4 -name=RHEL_Server_5.4_PPLive -arch=x86_64 ; 5.8) echo -ne sync 5.8 from T1 n cobbler import -path=rsync:/RHEL5.8 -name=RHEL_Server_5.8_PPLive -arch=x86_64 ; esac应用实例Cobbler Quick-Start物理机安装物理机重装虚拟机安装Cobbler 动态ks file实例YUM configuration snippetC

18、obbler tipsMachine without OSAccess idrac interface with web browser J2EE installedStart remote consoleReboot or startup machine via idracPress “F12” to enter PXE mode when machine bootingChoose 1 profile you want to apply on this machine in cobbler menuStarting unattended installationConfigure netw

19、ork interface on the machine when installation finishedCobbler MenuMachine with OSUse koan to reinstallyum install koan yCreate a new system on cobbler servercobbler system add -name=JA03469D1201 -profile=cob_5.4_base -ip-address= -gateway= -static=true -subnet=Execute koan on this machine to replac

20、e itself koan -server= -system=JA03469D1201 -replace-selfXen Virtual-machine installationCobbler server: 首先在cmdb中通过IP确认宿主机资产编号,然后生成虚拟机资产编号,并在cobbler server生成system信息。以这台机器为例,宿主机为,资产编号JA03469D1201,由于该机器为D1,故该虚拟机资产编号为JA03469D1201-1,cobbler system name和资产编号一致。在cobbler server输入如下命令,添加systemcobbler syste

21、m add -name=JA03469D1201-1 -profile=vs_5.4 -ip-address= -gateway= -static=true subnet =安装koanYum install koan yXen Virtual-machine installation在宿主机上,执行命令安装虚拟机koan -server= -virt -system=JA03469D1201-1 -virt-name=D1 -virt-path=/dev/sdb -virt-bridge=xenbr0 -=nogfxserver: cobbler servervirt-system: sys

22、tem name you appended beforevirt-name: xen virtual server namevirt-path: disk device virt-bridge: network bridge动态ks file 实例RHEL5.4 KS file - distro:RHEL5.4 profile:vs_5.4#SNIPPET yum_configuration$SNIPPET(pptv/yum_configuration)RHEL5.8 KS file - distro:RHEL5.8 profile:vs_5.8#SNIPPET yum_configurati

23、on$SNIPPET(pptv/yum_configuration)Snippet/yum_confiuration#set distro=$getVar(distro_name,)定义distro变量,该变量值为该机器所属distro的name#if 5.4 in $distro判断是否distro为5.4,为真则写入相应配置#Start of YUM Configuration#End of YUM Configurationcat /etc/yum.repos.d/PPLive.repo /etc/yum.repos.d/PPLive.repo /etc/yum.repos.d/PPLive.repo EOFRHEL 6.2 YUM sourceEOF#End of 6.2 YUM Configuration#end if生成ks file访问Cobbler Server的相应URL,可以验证生成的ks fileProfile:/cblr/svc/op/ks/profile/System: :/cblr/svc/op/ks/system/Cobbler tips dhcp设置subnet 10.x.0.0 netmask pool allow members of pxe; allow members of et

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论