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

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:

sudo apt-get install cobbler cobbler-web

CentOS:

# 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地址。

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

转换方法:

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.安装其他的一些必要的组件

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,建议修改

示例:

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.启用、关闭相关服务并留意结果

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.导入操作系统安装镜像

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”密码。

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

时间: 2024-08-01 20:34:57

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

自动化运维——CentOS7下利用Cobbler批量部署CentOS

Cobbler是一个使用Python开发的开源项目,通过将部署系统所涉及的所有服务集中在一起,来提供一个全自动批量快速建立Linux系统的网络安装环境,Cobbler最初支持Fedora.RedHat和衍生版(如CentOS和Scientific Linux),现在还支持Debian.Ubuntu.SuSE以及FreeBSD.ESXI等.Cobbler是一款快速的网络系统部署工具,其最大的特点是集合了所有系统部署所需服务,如DHCP.DNS.TFTP,这样你在部署一台操作系统的时候不需要在各个服

使用Cobbler批量部署Linux操作系统

下面是具体的配置过程. 默认的rhel6光盘中没有cobbler软件,必须在yum仓库中设置第三方的软件源,才能安装cobbler等软件.这里用的epel软件源,在yum仓库的配置文件中加入以下语句即可: 完成之后,清空yum数据库,然后在重建yum数据库即可. cobbler官方网站:https://fedorahosted.org/cobbler 1.软件的安装: cobbler依赖dns,dhcp,tftp以及httpd,所以这些软件一定要安装.安装完成后,启动上述服务. 2.检查系统是否

Nginx+Lua+Redis整合实现高性能API接口 - 网站服务器 - LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区! - Powered by Discuz!

Nginx+Lua+Redis整合实现高性能API接口 - 网站服务器 - LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区! - Powered by Discuz! log.latermoon.com/

【转】Linux从入门到精通——运维工程师成长路线图——CTO马哥Linux视频教学

加油! http://edu.51cto.com/roadmap/view/id-2.html#6853467-sqq-1-36881-57ccc7d95ea58df839decd91bd220170 [转]Linux从入门到精通--运维工程师成长路线图--CTO马哥Linux视频教学

自动化运维之Ansible概述及Ansible部署|(持续更新中)

Ansible概述 由于互联网的快速发展导致产品更新换代速度逐渐加快,运维人员每天都要进行大量的维护操作,仍旧按照传统方式进行维护使得工作效率低下.这时,部署自动化运维就可以尽可能安全,高效地完成这些工作. 一般会把自动化运维工具划分为两类:一类是需要使用代理工具的,也就是基于专用的Agent程序来完成管理功能,如:Puppet.Func.Zabbix等:另外一类是不需要配置代理工具的,可以直接基于SSH服务来完成管理功能,如:Ansible.Fabric等. 1.Puppet Puppet基于

马哥linux运维公开课第三季—《自动化运维之jumpserver跳板机剖析》

运维2.0时代同时也代表着DevOps的时代,越来越多的人关注自动化运维,但是大家有没有想过,自动化运维如何来,作为运维的我们又该如何使用现有的工具去实现自动化运维,本周六晚八点半,就由jumpserver跳板机的创作团队为大家分享下如何使用开源工具来实现一个自动化运维框架的细节. 公开课官方群:339184057 ### jumpserver跳板机的官网信息 官网: http://www.jumpserver.org demo: http://demo.jumpserver.org 更新log

Cobbler实现自动化无人值守网络批量安装部署Linux系统

一.Cobbler(直译为补鞋匠) 使用 Cobbler,您无需进行人工干预即可安装机器.Cobbler 设置一个 PXE 引导环境(它还可使用 yaboot 支持 PowerPC),并控制与安装相关的所有方面,比如网络引导服务(DHCP 和 TFTP)与存储库镜像.当希望安装一台新机器时,Cobbler 可以: 1.使用一个以前定义的模板来配置 DHCP 服务(如果启用了管理 DHCP) 2.将一个存储库(yum 或 rsync)建立镜像或解压缩一个媒介,以注册一个新操作系统 3.在 DHCP

hadoop-3.0.0-beta1运维手册(002):安装Guest操作系统

2.1 什么是Guest操作系统 Guest指虚拟机,安装Guest操作系统,就是在我们刚才定制的虚拟机nn1上安装操作系统. 我们要安装的操作系统是Linux,它有很多发行版,在这里我们选择Centos系列,它主要用作服务器操作系统,非常稳定,在生产环境中应用广泛.具体版本是Centos 7,64位,下载地址为:CentOS-7-x86_64-Everything-1511.整个光盘有7GB多,因为它包含了更多的安装包(软件),我们在安装的时候,可以根据需要来选择安装哪些软件.因此,实际装出来

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

一.Cobbler介绍 1.1关于Cobbler Cobbler是一个快速网络安装linux和windows的服务,使用简单的命令即可完成PXE网络安装环境的配置,同时还可以管理DHCP.DNS.以及yum仓库.构造系统ISO镜像. Cobbler支持命令行管理,web界面管理,还提供了API接口,可以方便二次开发使用. Cobbler客户端Koan支持虚拟机安装和操作系统重新安装,使重装系统更便捷. Cobbler提供以下服务集成: * PXE服务支持 * DHCP服务管理 * DNS服务管理