首页 > 代码库 > 运维自动化之中级进阶—Cobbler实战,实现批量多版本os自动部署。

运维自动化之中级进阶—Cobbler实战,实现批量多版本os自动部署。

Cobbler简介

   Cobbler由python语言开发,是对PXE和Kickstart以及DHCP的封装。融合很多特性,提供了CLI和Web的管理形式。更加方便的实行网络安装。适用场景:需要大批量的部署操作系统。


Collber 对象关系图

wKiom1P8LieApkJMAACq4Zg-hmw940.jpg

Distros(发行版)表示一个操作系统。它承载了内核和 initrd 的信息,以及内核参数等其他数据。

profile:定义Kickstart文件

repos:安装源

system表示要配给的机器。它包含一个配置文件或一个镜像,还包含 IP 和 MAC 地址、电源管理(地址、凭据、类型)以及更为专业的数据等信息。

image:可替换一个包含不属于此类别的文件的发行版对象(例如,无法分为内核和 initrd 的对象)。

集成的服务

  • PXE 服务

  • DHCP服务管理

  • DNS服务管理

  • HTTP服务管理

  • TFTP服务管理

  • Kickstart服务

  • yum仓库管理

  • 电源管理

工作流程

(1).需要安装系统的客户端主机的网卡支持网络安装,也就是支持以PXE模式启动。

(2).客户端主机需要有一个IP地址来与Cobbler Server进行通信,这时网络中必须要有一个主机能自动分配IP。DHCP就是一个能为客户端主机自动分配IP地址的服务,DHCP就是安装在Cobbler Server主机上。

(3).客户端得到IP地址后,需要提供一个引导程序pxelinux.0(类似于grub) 此文件由syslinux程序提供,所以需要安装syslinux并且能加载内核及内核镜像文件(vmlinuz与initrd.img),客户端可以通过TFTP协议到TFTP Server上下载内核及内核镜像文件(vmlinuz与initrd.img),所以需要一个TFTP 服务,TFTP也是安装在Cobbler Server主机上,客户端只是知道可以用TFTP协议下载文件,但是TFTP Server的IP是那个,这个还得需要DHCP服务器指名告诉客户端那个是TFTP Server(注,所以我们在配置DHCP模板时指定next-server,同时指定了filename,这里的filename就是指定的pxelinux.0引导程序),而TFTP服务需要超级进程进行管理,此进程是xinetd,因此需要在Cobbler Server上安装xinet服务。

(4).然后通过distro找到安装的发行版,通过设置的profile找到kickstart文件,完成自动安装。

安装cobbler

  • yum install cobbler httpd cobbler-web pykickstart debmirror dhcp -y

  • yum install -y ed patch perl perl-Compress-Zlib perl-Digest-SHA1 perl-LockFile-Simple perl-libwww-perl  //Cobbler环境支持包

cobbler配置文件目录介绍:

wKiom1P8P4nDqHH_AAG4moa4goM988.jpg

  • /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模块配置文件

开始配置

1、编辑/etc/cobbler/settings 定义server 指定提供服务的ip地址,不能使用localhost。

2、编辑/etc/cobbler/settings定义next_server 指定TFTP服务器地址。

3、运行cobbler get-loaders 下载需要的程序,需要访问互联网。 如果访问不了互联网可以自行安装,syslinux 

自行复制文件pxelinux.0 menu.c32 到 /var/lib/cobbler/loaders

如:

#yum install syslinux -y

#cd /usr/share/syslinux/

#cp pxelinux.0 menu.c32 /var/lib/cobbler/loaders

4、启动rsync  chkconfig rsync on

5、编辑/etc/debmirror.conf  注释 ’dists‘ 和 ‘arches’

wKioL1P8QtGiEqYSAAFGcDCbrA4484.jpg

6、修改默认密码,编辑文件/etc/cobbler/settings,找到字段default_password_crypted,将生成的密码串替换掉默认的。

openssl passwd -1 -salt `openssl rand -hex 5`


7、安装fencing 设备 cman fence-agents //这一项无关紧要,很少用上。

配置tftp-server

首先启用tftp,可以编辑配置文件/etc/xinetd.d/tftp修改disable那一项。 或者用命令。

chkconfig tftp on

service xinetd start

也可以在settings文件中启用manage_tftpd: 1 ,使用cobbler管理tftp。

配置DHCP服务

在settings文件中启用 manage_dhcp: 1

编辑cobbler管理dhcp服务的模版文件/etc/cobbler/dhcp.template

wKiom1P8UVaxukPaAALRnus722c612.jpg


导入RHEL6.4镜像文件

cobbler import --name="rhel6.4-i386" --path=/mnt/dvd

导入的文件保存在/var/www/cobbler/ks_mirror/

我们可以通过浏览器访问到

wKiom1P8Ul6gU5EbAAGeyDWBkpo497.jpg

制作kickstart文件(略)

导入profile

cobbler profile add --name=rhel6.4-i386-basic --distro=rhel6.4-i386 --kickstart=/root/rhel6-basic.cfg 

删除默认生成的profile

cobbler profile remove --name=rhel6.4-i386

配置完成后记得执行 cobbler sync 同步配置到数据目录。

cobbler会自动给/var/lib/tftpboot/pxelinux.cfg/default 添加lable

来看看里面的信息:


DEFAULT menu

PROMPT 0

MENU TITLE Cobbler | http://www.cobblerd.org/

TIMEOUT 200

TOTALTIMEOUT 6000

ONTIMEOUT local


LABEL local

        MENU LABEL (local)

        MENU DEFAULT

        LOCALBOOT -1


LABEL rhel6.4-i386-basic

        kernel /images/rhel6.4-i386/vmlinuz

        MENU LABEL rhel6.4-i386-basic

        append initrd=/images/rhel6.4-i386/initrd.img ksdevice=bootif lang=  kssendmac text  ks=http://192.168.1.201/cblr/svc/op/ks/profile/rhel6.4-i386-basic

        ipappend 2


MENU end

这样我们的cobbler就配置完成了,开启另一台虚拟机,设置网卡启动。

wKioL1P8VZ_C1EesAADq_0ECVwE434.jpg


wKiom1P8VT-gDkUrAAFVAS4srm8894.jpg






本文出自 “坏人的博客” 博客,请务必保留此出处http://tchuairen.blog.51cto.com/3848118/1545323

运维自动化之中级进阶—Cobbler实战,实现批量多版本os自动部署。