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

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
日志服务 SLS,月写入数据量 50GB 1个月
简介:

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

以下是一些成功的截图

2015-07-09_120345

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

2015-07-09_115935

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

2015-07-09_120323

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

image

图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






本文转自 urey_pp 51CTO博客,原文链接:http://blog.51cto.com/dgd2010/1672569,如需转载请自行联系原作者


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
2月前
|
安全 Linux 数据安全/隐私保护
Vanilla OS:下一代安全 Linux 发行版
【10月更文挑战第30天】
70 0
Vanilla OS:下一代安全 Linux 发行版
|
2月前
|
NoSQL Linux PHP
如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤
本文介绍了如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤。接着,对比了两种常用的 PHP Redis 客户端扩展:PhpRedis 和 Predis,详细说明了它们的安装方法及优缺点。最后,提供了使用 PhpRedis 和 Predis 在 PHP 中连接 Redis 服务器及进行字符串、列表、集合和哈希等数据类型的基本操作示例。
81 4
|
2月前
|
人工智能 安全 Linux
|
3月前
|
Unix 物联网 大数据
操作系统的演化与比较:从Unix到Linux
本文将探讨操作系统的历史发展,重点关注Unix和Linux两个主要的操作系统分支。通过分析它们的起源、设计哲学、技术特点以及在现代计算中的影响,我们可以更好地理解操作系统在计算机科学中的核心地位及其未来发展趋势。
|
3月前
|
Ubuntu Java iOS开发
MacOS环境-手写操作系统-19-编译自动化
MacOS环境-手写操作系统-19-编译自动化
36 0
|
4月前
|
安全 Linux 测试技术
Kali Linux预装的自动化渗透测试工具
Kali Linux预装的自动化渗透测试工具
207 2
|
5月前
|
运维 算法 调度
深入理解操作系统:进程调度与优先级自动化运维:使用Ansible实现服务器集群管理
【8月更文挑战第27天】在操作系统的众多奥秘中,进程调度无疑是一个既简单又复杂的主题。它就像是交响乐团中的指挥,协调着每一个音符,确保乐曲和谐而有序地进行。本文将带领读者走进进程调度的世界,探索其背后的原理和实现,同时通过代码示例揭示其精妙之处。让我们一起揭开进程调度的神秘面纱,理解它在操作系统中的重要性。
|
5月前
|
Ubuntu Linux 持续交付
在Linux中,如何在Linux中使用Ansible进行自动化部署?
在Linux中,如何在Linux中使用Ansible进行自动化部署?
|
5月前
|
存储 监控 Linux
|
5月前
|
运维 Linux 持续交付
在Linux中,如何进行配置管理和自动化部署?
在Linux中,如何进行配置管理和自动化部署?
下一篇
开通oss服务