设为首页 收藏本站
查看: 718|回复: 0

[经验分享] 运维自动化之使用Cobbler自动化部署Linux操作系统

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-7-10 09:17:03 | 显示全部楼层 |阅读模式
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/docume ... on_Guide/index.html
4)PXE:https://access.redhat.com/docume ... on_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/ ... ease-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
以下是一些成功的截图
wKiom1WeJ03grr5RAAYWnBZTQrQ862.jpg
图1 客户机安装过程中Cobbler主机上的一些成功日志
wKioL1WeKR_S9EQ_AAK23k4xBCQ827.jpg
图2 客户机在自动无人干预安装过程中
wKioL1WeKSDx4t0qAAH8ZqEtoUI120.jpg
图3 客户机完成自动安装,已可以登录
wKiom1WeJ0_SLN8oAAFcuSdtjes124.jpg
图4 Cobbler的Web管理界面,其地址一般是http://cobbler_ip_address/cobbler_web/,用户名cobbler,密码cobbler。
附 其他不错的可参考资料


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-85039-1-1.html 上篇帖子: redhat 6.0 openldap 配置 下篇帖子: 配置ssh信任(不通过密码验证ssh直接访问目标机器) 操作系统 Linux
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表