运维自动化之使用Cobbler自动化部署Linux操作系统

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://dgd2010.blog.51cto.com/1539422/1672569

1.Cobbler是什么?

Cobbler是一个Linux安装服务器,能够快速设置好网络安装环境。它实现了许多与Linux相关的任务的自动化和组合,因此你在部署新的(操作)系统或更改已经存在的操作系统时不需要在繁多的命令和应用程序之间来回切换。Cobbler能帮助(用户、管理者)置备和管理DNS、DHCP、软件包更新、电源管理、配置管理以及更多。

“Cobbler is a Linux installation server that allows for rapid setup of network installation environments. It glues together and automates many associated Linux tasks so you do not have to hop between many various commands and applications when deploying new systems, and, in some cases, changing existing ones. Cobbler can help with provisioning, managing DNS and DHCP, package updates, power management, configuration management orchestration, and much more.” --http://cobbler.github.io/

更多介绍:

1)Wiki:https://fedorahosted.org/cobbler/ 

2)其他:https://github.com/cobbler/cobbler/wiki

3)Kickstart:https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/index.html

4)PXE:https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/index.html

2.为什么使用Cobbler?

Cobbler之所以存在一定是有道理的,如果在这之前,想实现通过网络自动安装操作系统,就必须使用手动使用kickstart+PXE,而Cobbler将这两者封装在自己软件中,通过编译安装或者yum的方式就能将这些功能集成在一起,因此假如你想实现网络安装多个操作系统,相比手动去做kickstart+PXE来说,Cobbler是一个更好的选择。

除此之外Cobbler还能在虚拟化环境中进行安装,支持 Xen, qemu, KVM, 部分VMware相类似的虚拟化类型,由一个名字叫做“koan(kickstart-over-a-network)”实现。

在配置管理方面除了内置的轻量级配置管理系统外,还能集成其他配置管理系统,如Puppet。

Cobbler是由Python语言所编写,在管理方面除了命令行界面还支持Web管理以及API支持,除此之外还有其他高级功能,如制作安装镜像(image)、fence电源管理等。

3.如何使用Cobbler ?

1)安装Cobbler

要想使用Cobbler当然要先安装它。在Ubuntu系统中安装Cobbler只需要执行安装命令,而在CentOS系统中要安装Cobbler只要有了epel那一切也并不复杂,当然也可以像fuel一样,将Cobbler装入docker容器中。

Ubuntu:


1

sudo apt-get install cobbler cobbler-web

CentOS:


1

2

3

4

# install epel repo   

yum install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm    

# cobbler    

yum install cobbler cobbler-web -y

2)配置Cobbler

接下来需要配置Cobbler的配置文件,主要根据“cobbler check”命令的结果按照提示去做,还是比较轻松的。

步骤如下:

a.主要修改/etc/cobbler/settings,将/etc/cobbler/settings配置文件中的next_server和server设置成Cobbler服务器的IP地址。


1

2

3

4

5

6

7

8

ipaddr=$(ip addr show to 0.0.0.0/0 scope global | awk '/[[:space:]]inet / { print gensub("/.*","","g",$2) }')   

operationfile=/etc/cobbler/settings    

bakoperationfile=$operationfile$(date +-%F-%H-%M-%S)"~"    

cp $operationfile $bakoperationfile    

chown -R --reference=$operationfile $bakoperationfile    

chcon -R --reference=$operationfile $bakoperationfile    

sed -i "s/next_server: 127.0.0.1/next_server: $ipaddr/g"  $operationfile    

sed -i "s/server: 127.0.0.1/server: $ipaddr/g" $operationfile

将/etc/xinetd.d/rsync和/etc/xinetd.d/tftp中的disable = yes改为disable=no。

b.获取boot loader

尽管Cobbler提供了“cobbler get-loaders ”命令来从网络上自动下载最新可用的loader,但因为Cobbler网址变更的原因变得不再可用,因此只能从github或早期已经安装好了的Cobbler服务器(例如fuel)上获取。

github地址:https://github.com/cobbler/cobbler.github.io/tree/master/loaders

转换方法:


1

2

3

4

5

6

7

8

9

10

http://www.cobblerd.org/loaders/README to /var/lib/cobbler/loaders/README     

http://www.cobblerd.org/loaders/COPYING.elilo to /var/lib/cobbler/loaders/COPYING.elilo     

http://www.cobblerd.org/loaders/COPYING.yaboot to /var/lib/cobbler/loaders/COPYING.yaboot     

http://www.cobblerd.org/loaders/COPYING.syslinux to /var/lib/cobbler/loaders/COPYING.syslinux     

http://www.cobblerd.org/loaders/elilo-3.8-ia64.efi to /var/lib/cobbler/loaders/elilo-ia64.efi     

http://www.cobblerd.org/loaders/yaboot-1.3.14-12 to /var/lib/cobbler/loaders/yaboot     

http://www.cobblerd.org/loaders/pxelinux.0-3.86 to /var/lib/cobbler/loaders/pxelinux.0     

http://www.cobblerd.org/loaders/menu.c32-3.86 to /var/lib/cobbler/loaders/menu.c32     

http://www.cobblerd.org/loaders/grub-0.97-x86.efi to /var/lib/cobbler/loaders/grub-x86.efi     

http://www.cobblerd.org/loaders/grub-0.97-x86_64.efi to /var/lib/cobbler/loaders/grub-x86_64.efi

通常用到的就是pxelinux.0。

c.安装其他的一些必要的组件


1

2

3

yum install debmirror pykickstart fence-agents cman -y   

yum install dhcp dhcp-devel -y    

yum install syslinux

d.修改模板

如果用Cobbler管理DHCP就编辑/etc/cobbler/dhcp.template,同时将/etc/cobbler/settings中manage_dhcp: 0的设置为manage_dhcp: 1,建议修改

示例:


1

2

3

4

5

6

7

8

subnet 10.20.0.0 netmask 255.255.255.0 {   

     option routers             10.20.0.2;    

     option domain-name-servers 114.114.114.114, 8.8.4.4;    

     option subnet-mask         255.255.255.0;    

     range dynamic-bootp        10.20.0.200 10.20.0.210;    

     default-lease-time         21600;    

     max-lease-time             43200;    

     next-server                $next_server;

如果用Cobbler管理tftp就编辑/etc/cobbler/tftpd.template,同时将/etc/cobbler/settings中manage_tftp: 0的设置为manage_tftp: 1,建议修改

如果用Cobbler管理rsync就编辑/etc/cobbler/rsync.template,同时将/etc/cobbler/settings中manage_rsync: 0的设置为manage_rsync: 1

如果用Cobbler管理dns就编辑 /etc/cobbler/dnsmasq.template,同时将/etc/cobbler/settings中manage_dns: 0的设置为manage_dns: 1,此项也能管理DHCP

e.启用、关闭相关服务并留意结果


1

2

3

4

5

6

7

8

9

setenforce 0   

service httpd start    

service cobblerd start    

service xinetd start    

service iptables stop    

ps -ef | grep $(lsof grep tftp | grep xinetd | awk '{print $2}')    

ps -ef | grep dhcp | grep -v grep    

cobbler check    

cobbler sync

f.导入操作系统安装镜像


1

2

mount -t iso9660 CentOS-6.6-x86_64-minimal.iso /mnt -o loop,ro   

cobbler import --path=/mnt --name=CentOS-6.6-x86_64-minimal

如果有做好的kickstart文件,则可以执行cobbler import --path=/mnt --name=CentOS-6.6-x86_64-minimal --kickstart=KICKSTART_FILE

如果没有做好的kickstart文件也不要紧,只需要知道密码是什么即可,默认kickstart和密码是在/etc/cobbler/settings中定义的:

default_kickstart: /var/lib/cobbler/kickstarts/default.ks

在CentOS系统中,每次手动安装完一个操作系统后都会在用户家目录下生成一个ks文件,可以以此参考。

default_password_crypted: "$1$mF86/UHC$WvcIcX2t6crBz2onWxyac."

密码可以由命令生成或者使用默认的“cobber”密码。


1

2

cobbler distro list   

cobbler sync

注释:cobbler的命令帮助系统是cobbler –help,如cobbler import –help

g.测试cobbler

条件:

a).网络中没有其他DHCP服务器,例如在VMware Workstation中进行测试,可以将VMware Workstation的DHCP服务关闭。

b).要安装操作系统的客户机要与Cobbler同一个网络,且客户机支持PXE网络启动,这通常需要客户机的BIOS支持。

h.调试

相关命令

cobbler check

相关日志:

跟DHCP、tftp相关的日志,/var/log/messages

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

以下是一些成功的截图

图1 客户机安装过程中Cobbler主机上的一些成功日志

图2 客户机在自动无人干预安装过程中

图3 客户机完成自动安装,已可以登录

图4 Cobbler的Web管理界面,其地址一般是http://cobbler_ip_address/cobbler_web/,用户名cobbler,密码cobbler。

附 其他不错的可参考资料

运维自动化之 Cobbler 系统安装使用详解 http://os.51cto.com/art/201405/439670.htm

使用Cobbler自动化和管理系统安装 http://www.ibm.com/developerworks/cn/linux/l-cobbler/

运维自动化之Cobbler系统安装详解 http://os.51cto.com/art/201109/288604_all.htm

end

本文出自 “通信,我的最爱” 博客,请务必保留此出处http://dgd2010.blog.51cto.com/1539422/1672569

时间: 2024-11-01 16:47:53

运维自动化之使用Cobbler自动化部署Linux操作系统的相关文章

如何搞定云运维——云计算IT基础设施与自动化运维论坛掠影

5月18日~20日,第八届云计算大会在京召开,工业和信息化部副部长怀进鹏出席会议并讲话,云计算大数据领域的9位院士和200多位专家在全体大会和专题论坛上作报告,三天共有超过15000人次听众参会.这个数字远远超过了往届会议,从侧面也足以说明,云计算在国内已经取得了足够的认可和关注. 事实上,有一种趋势无法忽视.企业对云计算的主要诉求从"经济"转变为"业务",也就是说,云计算推广初期所高举的"省钱"大旗不再是企业关注的主要方向,企业更关注云对其业务

简化企业运维,合适的网络自动化策略是关键

[51CTO.com原创稿件]从大型机计算发展到客户端-服务器 PC 时代,再发展到现在的分布式应用环境,数据中心一直在不断发展变化,满足企业的业务.任务和运营需求.然而,很多企业的数据中心网络运营仍旧依赖人力,要求运营人员训练有素并具备丰富的专业知识.这种依赖性不仅成本高昂,而且容易出现人为错误,造成网络中断,导致业务损失,难以满足当今网络的高可用性.敏捷性需求. 依赖于手动流程的网络运营存在高风险 据有关数据表明,目前仅有16%到30%的日常网络管理任务已实现自动化;80%的业务体验网络错误

Cobbler批量部署linux系统

 Cobbler是一个快速安装Linux系统的网络安装服务套件,集成了PXE.DHCP.DNS/Kickstart服务管理和yum仓库管理工具,通过PXE网络引导安装,配置简单. 部署准备: 关闭防火墙:service iptablesstop 关闭selinux:setenforce 0 安装epel源:rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm 1.安装相关软

运维 监控 硬件-如何从外部监控Linux上的硬件运行情况?

问题描述 如何从外部监控Linux上的硬件运行情况? 目前需要监控Linux上所有的硬件运行是否正常,例如监控磁盘.cpu.内存.有没有什么好的思路或者好的开源软件.目前我使用了ipmi进行测试发现只能监控温度.风扇.电压.不知道大家有好的建议没有?

运维请注意:”非常危险“的Linux命令大全

Linux命令是一种很有趣且有用的东西,但在你不知道会带来什么后果的时候,它又会显得非常危险.所以,在输入某些命令前,请多多检查再敲回车. rm –rf rm –rf是删除文件夹和里面附带内容的一种最快捷的方法,但是细微的错误或者语法认知不到位,就可能对系统造成不可恢复的破坏,下面给出一些案例: rm 删除linux下的文件 rm -r 递归删除文件夹,包括空文件夹 rm -f 强制无条件删除只读文件 rm -rf / : 强制无条件删除root目录下所有内容. rm -rf * : 强制无条件

自动化运维之 Puppet 实战

 随着IT行业的迅猛发展,传统的运维方式靠大量人力比较吃力,近几年自动化运维管理快速的发展,得到了很多IT运维人员的青睐,一个完整的自动化运维包括系统安装.配置管理.服务监控三个方面.那今天咱们大家一起来学习一下Puppet实际运维中的案例.仅供参考,欢迎大家提更多的意见! 一.应用背景 某公司新到500台服务器,需要安装Linux系统,并部署上线以及后期的管理配置.对于系统安装,这个时候肯定得采用批量安装的,常见批量安装方式有大家熟知的Kickstart和Cobbler,具体配置方法,网上也有

【技术干货】云端自动化运维

本文作者:驻云科技高级云运维工程师,赵灿灿 对于运维工作来说,我们运维工作的本身是可管理,可重复,可预测的,基于这样的理念,我们可以按照一定的规律,在基本运维的过程中实现自动化. 运维自动化基本上可以这样去理解:可以实现在成千上万台服务器上做到批量执行命令,根据不同业务特性进行配置集中化管理.分发文件.采集服务器数据.操作系统基础及软件包管理等,这就是所谓的自动化运维. 闲话不多说,下面笔者就以自己最近的一个项目来谈谈在云端上的自动化运维,以及自动化运维的带来的价值体现. 接手国内某大型旅游网站

一名运维创业者的思考:云计算时代的自动化运维走向

关于题目"云计算时代的自动化运维",用通俗的话讲,就是应用的自动化部署. 第一个关键词是自动化,自动化代表高效率.低成本;第二个关键词是应用部署.即,不涉及讲物理基础设施的运维(如机房基建.能源.消防.安保.布线等等). 假设一个企业要做一个电商网站,典型的运维流程是这样: 1. 购买硬件设备:服务器.交换机.可能还有路由器.负载均衡器.防火墙,不一一穷举了. 2. 在服务器上安装操作系统 3. 在服务器上安装配置基础环境(数据库.Web服务器.搜索引擎等) 4. 在服务器上安装配置应

浅析自动化设备安装运维的发展方向

IT运维自动化是指将IT运维中日常的.大量的重复性工作自动化,把过去的手工执行转为自动化操作.自动化是IT运维工作的升华,IT运维自动化不单纯是一个维护过程, 更是一个管理的提升过程,是IT运维的最高层次,也是未来的发展趋势. 随着运维技术的进步以及运维服务体系的完善,自动化运维作为一个充满活力的方向,也随着规模.场景的变迁迎来新的挑战和变化.运维的活动范围更多介于硬件与操作系统之上.应用之下,其与基础架构也像是人的两条腿,相辅相成,总是一前一后交替往前推进. 基础架构决定运维方向,同样运维体系