Centos6.7部署cobbler完成无人值守化安装部署 Cobbler是一个免费开源系统安装部署软件,用于自动化网络安装操作系统。在生产环境中,经常批量部署几十甚至上百台服务器时,实现自动化安装操作系统尤为重要,按照传统的光盘引导安装工作量是不可预估的;此前我们通过pxe+kickstart简单实现了自动化安装,但只能实现单一版本安装,当需要部署不同版本或不同引导模式(BIOS、EFI)时,此种方式就不够灵活。而Cobbler正是为了解决此问题而设计的。


Cobbler组件架构如下:

wKiom1i8Qi2DtYsiAAAtnv7UDe0228.png-wh_50

Cobbler服务集成以下:

*1*PXE服务

*2*DHCP服务管理

*3*TFTP服务管理

*4*Rsync服务(系统镜像可导入发行版镜像,也可以从互联网中通过rsync工具导入)

*5*HTTP服务管理

*6*DNS服务管理

*7*Kickstart服务

*8*IPMI电源管理

二、工作流

cobbler为server端,裸机为client端

1:client裸机配置了从网络启动后,开机后会广播包请求DHCP服务器(cobbler server)发送其分配好的一个IP

2:DHCP服务器(cobbler server)收到请求后发送responese,包括其ip地址

3:client裸机拿到ip后再向cobbler server发送请求OS引导文件的请求

4:cobbler server告诉裸机OS引导文件的名字和TFTP server的ip和port

5:client裸机通过上面告知的TFTP server地址和port通信,下载引导文件

6:client裸机执行执行该引导文件,确定加载信息,选择要安装的os,期间会再向cobbler server请求kickstart文件和os image

7:cobbler server发送请求的kickstart和os iamge

8:client裸机加载kickstart文件

9:client裸机接收os image,安装该os image


详细的配置示例如下:

(1)安装EPEL源

#wgethttp://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
#wgethttp://rpms.famillecollet.com/enterprise/remi-release-6.rpm
#rpm-Uvhremi-release-6.rpmepel-release-6-8.noarch.rpm

(2)安装cobbler及相关依赖包

#yum-yinstallhttpddhcptftp-serverxinetdrsynccmanpykickstartdebmirror
#yuminstall-yedpatchperlperl-Compress-Zlibperl-Digest-SHA1perl-LockFile-Simpleperl-libwww-perl
#yum-ygroupinstall"DevelopmentTools"
#yum-yinstallsyslinuxpython-simplejsonpython-cheetahpyYAMLDjangoopenssl-develgenisoimagecreaterepomod_wsgimod_ssl
#yum-yinstalllibyaml-0.1.3-4.el6_6.x86_64.rpmPyYAML-3.09-5.el6.x86_64.rpm
#yum-yinstallcobblercobbler-web

(3)配置启动httpd、cobbler等服务

#chkconfig--level35httpdon
#chkconfig--level35cobblerdon
#chkconfig--level35tftpon
#chkconfig--level35rsyncon
#chkconfig--level35xinetdon
#chkconfigdhcpdon
#servicexinetdstart
#servicehttpdstart
#servicecobblerdstart

(4)Cobbler目录使用说明:

配置文件目录:/etc/cobbler

* * /etc/cobbler/settings : cobbler 主配置文件

* * /etc/cobbler/iso/ : iso模板配置文件

* * /etc/cobbler/pxe : pxe模板文件

* * /etc/cobbler/power : 电源配置文件

* * /etc/cobbler/users.conf : Web服务配置文件

* * /etc/cobbler/users.digest : 用于web访问的用户名密码配置文件

* * /etc/cobbler/dhcp.template : DHCP服务配置模板文件

* * /etc/cobbler/dnsmasq.template : DNS服务配置模板文件

* * /etc/cobbler/tftpd.template : tftp服务配置模板文件

* * /etc/cobbler/modules.conf : Cobbler模块配置文件


数据目录:/var/lib/cobbler

* * /var/lib/cobbler/config : 用于存放distros systems profiles等信息配置文件

* * /var/lib/cobbler/triggers : 用于存放用户自定义的cobbler命令

* * /var/lib/cobbler/kickstarts : 默认存放kickstart文件

* * /var/lib/cobbler/loaders : 存放各种引导程序

镜像数据目录: /var/www/cobbler

* * /var/www/cobbler/ks_mirror : 导入的发行版系统的所有数据

* * /var/www/cobbler/images : 导入发行版的kernel和initrd镜像用于远程网络启动

* * /var/www/cobbler/repo_mirror/ :yum仓库存储目录

日志目录:/var/log/cobbler

* * /var/log/cobbler/install.log : 客户端系统安装日志

* * /var/log/cobbler/cobbler.log : cobbler日志

(5)检查配置Cobbler

#cobbler check

运行cobbler check命令,会有如下提示出现

The following are potential configuration items that you may want to fix:

1 : The 'server' field in /etc/cobbler/settings must be set to something other than localhost,or kickstarting features will not work. This should be a resolvable hostname or IP for the boot server as reachable by all machines that will use it.
2 : For PXE to be functional,the 'next_server' field in /etc/cobbler/settings must be set to something other than 127.0.0.1,and should match the IP of the boot server on the PXE network.
3 : some network boot-loaders are missing from /var/lib/cobbler/loaders ,you may run 'cobbler get-loaders' to download them,or, if you only want to handle x86 /x86_64 netbooting,you may ensure that you have installed a *recent* version of the syslinux package installed and can ignore this message entirely. Files in this directory,should you want to support all architectures,should include pxelinux.0,menu.c32,elilo.efi,and yaboot. The 'cobbler get-loaders' command is the easiest way to resolve these requirements.
4 : change 'disable' to 'no' in /etc/xinetd .d /rsync
5 : comment out 'dists' on /etc/debmirror .conf for proper debian support
6 : comment out 'arches' on /etc/debmirror .conf for proper debian support
7 : The default password used by the sample templates for newly installed machines (default_password_crypted in /etc/cobbler/settings ) is still set to 'cobbler' and should be changed,try: "openssl passwd -1 -salt 'random-phrase-here' 'your-password-here'" to generate new one
Restart cobblerd and then run 'cobbler sync' to apply changes.

下面根据cobbler配置信息的检查结果,逐个修复相关问题项。

从Cobbler 2.4开始,有一个重要的功能,就是让你不需要手工编辑配置setting配置文件,直接使用命令修改相关配置,默认这个功能是不启用,启用需要进行一下配置:

**建议采用修改/etc/cobbler/settings配置文件的方式修改配置选项。

**在采用命令方式动态更新配置时,Cobbler会将配置文件中带"#"注释的行全部删除

#cd/etc/cobbler/
#cp-afsettings{,.default}
#sed-i'/^allow_dynamic_settings:/s/0/1/'settings
#servicecobblerdrestart

(1).错误1,修改/etc/cobbler/settings 里面的 server 为Cobbler Server的IP地址 ;

#vim/etc/cobbler/settings
server;192.168.18.202

or
#cobblersettingedit--name=server--value=192.168.18.202

(2).错误2,修改/etc/cobbler/settings 里面的 next_serverw 为next_server选项是DHCP/PXE网络引导文件被下载的TFTP服务器的IP,它将和server设置为同一个IP;

#vim/etc/cobbler/settings
next_server=192.168.18.202

or
#cobblersettingedit--name=next_server--value=192.168.18.202

(3).错误3,下载启动引导文件

#cobblerget-loaders

(4).错误4,修改/etc/xinetd.d/tftp 把'disable' 修改为'no';修改/etc/xinetd.d/rsync 把'disable' 修改为'no';

#sed-i's/disable.*$/disable=no/g'/etc/xinetd.d/tftp
#sed-i's/disable.*$/disable=no/g'/etc/xinetd.d/rsync
#servicexinetdstart

(5).错误5和6,debmirror有错误

#yum-yinstalldebmirror
#sed-i'/^@dists="sid";/s/^/#/'/etc/debmirror.conf#sed-i'/^@arches="i386";/s/^/#/'/etc/debmirror.conf
#vim/etc/debmirror.conf
#注释掉@dists="sid"与@arches="i386即可
#@dists="sid";
#@arches="i386";
#yum-yinstallpykickstart

(6).错误7,设置客户端默认root密码;生成你想要的密码的加密字符串,然后复制运行命令之后的加密代码;

#opensslpasswd-1-salt'cobbler''123456'
$1$hahaha$hSxFjZSHRoiEn4DYrrGUI.

然后替换/etc/cobbler/settings 中选项双引号中的加密代码;

#vim/etc/cobbler/settings
default_password_crypted:"$1$hahaha$hSxFjZSHRoiEn4DYrrGUI."

or
#cobblersettingedit--name=default_password_crypted--value=$1$hahaha$hSxFjZSHRoiEn4DYrrGUI

(7),错误8,如果需要电源管理特性的话,则需要安装cman及fence-agents包

#yum-yinstallcmanfence-agents




如果cobbler服务器启用防火墙功能,需要开启以下端口:

#iptables-AINPUT-mstate--stateNEW-mtcp-ptcp-mmultiport--dports80,443,25151-jACCEPT
#iptables-AINPUT-mstate--stateNEW-mudp-pudp-mmultiport--dports53,67:69,25151-jACCEPT

新启动Cobbler并运行检查命令

#servicecobblerdrestart
Stoppingcobblerdaemon:[确定]
Startingcobblerdaemon:[确定]
#cobblercheck
Noconfigurationproblemsfound.Allsystemsgo.



配置cobbler依赖服务由cobbler进行管理:

默认情况下,若开机未将相关的服务设置成开启启动,即使cobblerd服务启动时,相关服务也是未启动状态。因此,需要确认dhcp、tftp、rsync等服务是否设置为开启自启动。tftp、rsync服务由xinetd管理,需要保证xinetd服务为开机自启动状态.

#sed-i'/disable/cdisable=no'/etc/xinetd.d/tftp
#sed-i-e's/=yes/=no/g'/etc/xinetd.d/rsync
#servicexinetdrestart

Cobbler管理rsync

默认为0,不对rsync进行管理,可以修改为1 进行管理

#sed-i's/manage_rsync:0/manage_rsync:1/g'/etc/cobbler/settings


防止误重装系统,选项:pxe_just_once

#cobblersettingedit--name=pxe_just_once--value=1


1.让Cobbler来管理DHCP服务器

#vim/etc/cobbler/settings
manage_dhcp:1

2.修改DHCP模板

#vim/etc/cobbler/dhcp.template
subnet192.168.18.0netmask255.255.255.0{需要修改192.168.18.0为自己网段
optionrouters192.168.18.1;修改自己的路由
optiondomain-name-servers8.8.8.8;
optionsubnet-mask255.255.255.0;
rangedynamic-bootp192.168.18.100192.168.18.200;
filename"/pxelinux.0";
default-lease-time21600;
max-lease-time43200;
next-server$next_server;
}


如果是多网卡需要指定DHCP服务的网络接口
#vi/etc/sysconfig/dhcpd
修改内容如下:
#CommandlineoptionshereDHCPDARGS=eth0
DHCPDARGS=eth0


#servicecobblerdrestart
Stoppingcobblerdaemon:[确定]
Startingcobblerdaemon:[确定]


完成后一定要运行cobbler sync 命令让配置生效,使dhcp、http被cobbler接管


设置http服务

#vi/etc/httpd/conf/httpd.conf
ServerName127.0.0.1:80
#yum-yinstallmod_wsgi
#sed-i's*#LoadModule*LoadModule*g'/etc/httpd/conf.d/wsgi.conf

导入系统镜像到Cobbler

#mkdir-p/mnt/CentOS/6.5#mount-oloop/root/CentOS-6.5-x86_64-bin-DVD1.iso/mnt/CentOS/6.5/
#cobblerimport--name=CentOS-6.5-x86_64--path=/mnt/CentOS/6.5

正常导完之后会给出如下提示:

……(省略)
associatingkickstarts
***TASKCOMPLETE***
cobblerlist来查看导入的结果


准备kisckstart文件

kickstart自动安装文件可以用工具生成(需要用到图形界面操作)

#yuminstallsystem-config-kickstart#安装
#yumgroupinstall"XWindowSystem"#安装XWindow图形界面
#system-config-kickstart#运行kickstart配置
#servicecobblersync#与cobblersync作用相同
#servicecobblerrestart#重启cobbler

系统镜像文件和kickstart自动安装文件关联起来

#cobblerprofileadd--name=CentOS-6.5-basic--distro=CentOS-6.5-x86_64--kickstart=/var/lib/cobbler/kickstarts/cetos6.x86_64.cfg
#cobblerprofilelist

为Cobbler添加RPM仓库

#cobblerrepoadd
--name=EPEL
--mirror=http://download.fedoraproject.org/pub/epel/6/x86_64/
#cobblerrepoadd
--name=Local
--mirror=http://mirrors.163.com/centos/6.7/extras/x86_64/


#添加repo到profile会自动添加到节点上的repo上,指向内网,非常方便。

#cobblerprofileedit--name==CentOS-6.5-basic--repos="epellocal"
#cobblerreposync

也可以通过设置�Cmirror-locally=0不下载到本地,而通过kickstart server去仓库下载rpm包。

#cobblersync


客户端安装测试:

wKioL1i8evmCnE-2AABe705WP08279.jpg-wh_50




参考http://www.3mu.me/centos6-5%E5%AE%89%E8%A3%85%E5%92%8C%E9%85%8D%E7%BD%AEcobbler-2-6%E5%AE%9E%E7%8E%B0%E8%87%AA%E5%8A%A8%E5%8C%96%E6%97%A0%E4%BA%BA%E5%80%A4%E5%AE%88%E7%BD%91%E7%BB%9C%E6%89%B9%E9%87%8F%E5%AE%89%E8%A3%85/

Centos6.7安装部署cobbler完成无人值守化安装部署的更多相关文章

  1. ios – 200在xcode 7中生成DSMM警告

    解决方法我有同样的问题.Facebook表示他们已经意识到这一点并且不是高优先级,因为它不会影响应用程序.我回退到4.7.1警告问题不再存在.我不认为它会被拒绝但不能确定.

  2. xamarin.ios – Facebook iOS SDK:应用程序在启动时找不到“找不到符号:_ACFacebookAppIdKey.”仅在iOS 5中崩溃

    解决方法这是一个已修复的knownbug.目前唯一已知的解决方法是使用较旧版本的FacebookSDK.

  3. iOS – 友好的NSDate格式

    我需要在我的应用程序中显示帖子的日期给用户,现在我用这种格式:“5月25日星期五”.如何格式化NSDate以阅读“2小时前”的内容?使其更加用户友好.解决方法NSDateFormatter不能做这样的事情;你将需要建立自己的规则.我想像:所以这是打印’x分钟前’或’x小时前’从日期起24小时,通常是一天.

  4. osx – 无法创建目录/ var / teamsserver

    OpenSSH_6.2p2,OSSLShim0.9.8r8Dec2011debug1:Readingconfigurationdata/etc/ssh_configdebug1:/etc/ssh_configline20:Applyingoptionsfor*debug1:Connectingto1.2.3.4[1.2.3.4]portPORT.debug1:Connectionestablished.Couldnotcreatedirectory‘/var/teamsserver/.ssh’.debug

  5. ios – 如何在Xcode 4.5中完成代码签名

    解决方法事实证明,从AppStore升级XCode并不会自动升级所有内容.转到首选项/下载,并确保安装最新的命令行工具.

  6. xcode7 – 谁在创建文件“/private/var/tmp/Untitled-*.uicatalog”?

    我正在调查为什么TeamCity构建代理程序用完了磁盘,并且在/private/var/tmp中找到了超过11,000个文件,它们都以Untitled-.uicatalog行命名.每个文件至少0.6MB.总磁盘占用空间约为4GB.这些文件可以追溯到几个月,所以他们能够重新启动.谁在创造他们?Xcode在编译至少有一个图像的xcassets目录时创建这些目录.我可以删除它们吗?

  7. ios – Client.ipa不包含文件

    从过去的几天开始,我就把这头发错了.当我尝试提交基于cordova的iOS应用程序时,我收到一个错误,即符号工具失败.这就是我在日志中的内容:以下是尝试提交到应用商店时所述错误的屏幕截图:请帮忙.解决方法我有同样的错误,因为应用程序包中错误地包含了几个静态库(libXXX.a).它们显示在主.App下的最终上传确认框(列出权利和证书)中.我的解决方案是从项目中删除对这些静态库的所有引用,在链接器标

  8. ios – 如何获得.ipa文件路径

    我的应用程序包含敏感数据,所以我想为.ipa文件生成哈希键,是否可以这样做?

  9. ios – 在设备上运行时Swift应用程序崩溃 – dyld:未加载库:@ rpath / libswiftCore.dylib

    我是ios/xcode世界的新手,并尝试在运行iOSv8.0.2的iphone5上测试一个简单的Swift应用程序.该应用程序在xcode(版本6.1(6A1052d))中成功构建,但当它尝试在iphone上运行时,它崩溃并出现以下错误:我已经尝试过大多数建议,这些建议帮助了遇到此错误的其他人,但却没有运气.使用其他团队成员的构建环境构建时,相同的应用程序工作正常.我比较了构建设置,发现它们是相同

  10. 使用Swift作为Glance后端存储

    原文链接http://thornelabs.net/2014/08/03/use-openstack-swift-as-a-backend-store-for-glance.htmlBydefault,OpenStackGlancesavesimagesandOpenStackInstancesnapshotsonthelocalfilesystemin/var/lib/glance/images

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部