cobbler

运维自动化之系统安装篇(一)–cobbler安装配置

已授权给51CTO,首发地址:http://os.51cto.com/art/201109/288604.htm,此链接文章为完全版,此篇文章略有删改。

《摩登时代》这部片子大家应该都很熟习,在工业大生产下,每一个工序都需要人为的操作来完成,工人的压力之大,强度之高是有目共睹的。

在当今时代,各种自动化营运而生,工人、技术员只需要在操作台操纵几个按钮,所有产品便可以自动的生产,而技术人员只需要定期的进行检查即可。

试想,我们的SA们要如何从烦杂的事务性工作中解放出来呢。运维自动化这条路非走不可。

今天蚊子就来介绍一个好用简单的工具—cobbler。

Cobbler是一个快速网络安装linux的服务,当然在经过调整也可以支持网络安装windows,配合koan工具,能更便捷的完成linux系统的重新安装。

Cobbler使用python开发,是一款小巧轻便的应用(才1.5w行代码),使用简单的命令即可完成PXE网络安装环境的配置,同时cobbler还可以管理DHCP,DNS,yum包镜像。

Cobbler支持命令行管理,web界面管理(如右图),甚至提供了API接口,可以方便二次开发使用。
使用cobbler不会因为在局域网中启动了dhcp而导致有些机器因为默认从pxe启动在重启服务器后加载tftp内容导致启动终止。常用架构如下图:

cobbler安装环境准备

对于centos本身源 ,可根据自己所在地选择离自己近的镜像源,比如mirrors.163.com或mirrors.sohu.com

1,安装epel

rpm -Uvh ‘http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-5.noarch.rpm’

2,安装dhcp服务

yum -y install dhcp

3,其他服务的安装

额外需要的服务还有tftp,rsync,xinetd,httpd所以如果安装系统的时候如果这几个包没装上,请手动安装。

4,关闭selinux

建议最好重启一下,让selinux的设置生效

cobbler安装配置

1,cobbler安装

yum -y install cobbler

2,cobbler的配置

启动cobbler

# /etc/init.d/cobblerd start

启动httpd服务

# /etc/init.d/httpd start

检查配置,执行

cobbler check

执行完后出现下面的信息

 

接下来就来逐一的解决上面出现的情况。

1,编辑/etc/cobbler/settings文件,找到 server选项,修改为适当的ip地址,本实例配置ip为:192.168.10.1

2,同样编辑/etc/cobbler/settings文件,找到 next_server选项,修改为适当的ip地址,本实例配置ip为:192.168.10.1

3,如果在之前的准备工作中将selinux设置为disabled并重启过服务器的话,提示3应该不会出现,建议将selinux设置为disabled,如果必须保留,请根据3中的提示进行设置。

4,执行 cobbler get-loaders,系统将自动下载loader程序,完成提示4的修复工作。

5,编辑/etc/xinetd.d/tftp文件,将文件中的disable字段的配置由yes改为no

6,编辑/etc/xinetd.d/rsync文件,将文件中的disable字段的配置由yes改为no

7,如果仅仅只是在内部环境中使用,建议直接将防火墙关掉

8,如果不是安装 debian之类的系统,此提示可以忽略,如果需要安装,下载地址http://rpmfind.net/linux/rpm2html/search.php?query=debmirror,centos6使用rhel5的包就可以。

9,修改cobbler用户的默认密码,可以使用如下命令生成密码,并使用生成后的密码替换/etc/cobbler/settings中的密码

生成密码命令:openssl passwd -1 -salt ‘random-phrase-here’ ‘your-password-here’

其中“random-phrase-here”为扰码

所有提示全部fix之后,执行

/etc/init.d/cobblerd restart

cobbler的使用

导入安装文件

执行如下命令

cobbler import –path=rsync://mirrors.163.com/centos/6.0/os/i386/ –name=centos-6.0-i386

从上面显示信息所知,cobbler会将镜像中的拷贝到本地一份,放-在/var/www/cobbler/ks_mirrors下的centos-6.0-i386目录下。同时会创建一个名字为centos-6.0-i386的一个发布版本,一个名字为centos-6.0-i386的profile文件。

配置dhcp服务

首先修改cobbler配置,让cobbler来管理dhcp服务,编辑文件/etc/cobbler/settings

manage_dhcp: 1

修改上面的设置,由0改为1,如果已经是1可以忽略此步。

接下来修改/etc/cobbler/dhcp.template,文件,此文件是cobbler管理dhcp的模板

对于此文件,本例中只需要修改如下部分

其余部分维持默认值即可。

到目前为止,全部的准备工作已经就算全部完成了。接下来要做的就是启动服务了,因在之前的调试过程中,很多服务已经启动过了,这里只需要启动xinetd服务即可

/etc/init.d/xinetd start

同步cobbler配置

执行

# cobbler sync

会看到如下列提示。cobbler会自动进行初始化工作。会移除已经存在的启动项。然后根据模板拷贝loader文件。生成pxe的配置文件,生成dhcp的配置文件,最后在重启dhcp服务。

至此,就可以使用虚拟机来测试cobbler安装了。

Cobbler测试安装

创建虚拟机

在启动的时候选择PXE的模式。

启动虚拟机

然后就能看到下面的图示内容。虚拟机通过dhcp获得了122段的ip,然后通过tftp获得到pxe的启动文件。

如下图,就是cobbler的pxe安装启动菜单,这里有我们刚刚创建好的centos的版本。

在之后的内容就不用我介绍了。系统安装或使用默认的ks文件,经过短暂的等待,系统就自动被安装好了。

安装好的如下图所示。

安装使用心得

以上所有内容虽然是在kvm虚拟机上测试的,但完全可以直接使用于生产环境中,不会给现有环境带来任何影响。唯一需要做的就是规划好现有网络。

对于很多人担心的生成环境开启DHCP服务问题,我也考虑过了,我认为,不会对现有生产环境产生任何影响,理由有2

1,没有人会在装好系统后让网卡使用dhcp模式,通常都是为网卡配置静态ip

2,从测试过程中看到,就算是服务器默认设置成了通过pxe启动,而且也顺利的通过pxe启动了,但之后会收到cobbler的引导菜单,如果默认没有任何选择的话,20秒后会使用local方式加载,也就是启动硬盘上的系统。

从上两条解释来看,cobbler还是很安全的。

Related Post

1 Comment

  1. 执行cobbler import –path=rsync://mirrors.163.com/centos/6.0/os/i386/ –name=centos-6.0-i386
    报错
    task started: 2012-11-06_223927_import
    task started (id=Media import, time=Tue Nov 6 22:39:27 2012)
    Exception occured: cobbler.cexceptions.CX
    Exception value: ‘Command failed’
    Exception Info:
    File “/usr/lib/python2.4/site-packages/cobbler/remote.py”, line 89, in run
    rc = self._run(self)
    File “/usr/lib/python2.4/site-packages/cobbler/remote.py”, line 232, in runner
    self.logger
    File “/usr/lib/python2.4/site-packages/cobbler/api.py”, line 823, in import_tree
    utils.run_this(rsync_cmd, (spacer, mirror_url, path), self.logger)
    File “/usr/lib/python2.4/site-packages/cobbler/utils.py”, line 892, in run_this
    die(logger,”Command failed”)
    File “/usr/lib/python2.4/site-packages/cobbler/utils.py”, line 134, in die
    raise CX(msg)

    !!! TASK FAILED !!!

Leave a Reply

Your email address will not be published. Required fields are marked *