Cobbler自动部署主机系统
Cobbler由python语言开发,是对PXE和 Kickstart以及DHCP的封装。
融合很多特性,提供了CLI和Web的管理形式。更加方便的实行网络安装。
同时,Cobbler也提供了API接口,使用其它语言也很容易做扩展。
它不仅可以安装物理机,同时也支持kvm、xen虚拟化、Guest OS的安装。
更多的是它还能结合Puppet等集中化管理软件,实现自动化的管理。
PXE 预启动执行环境(Preboot eXecution Environment,PXE,也被称为预执行环境)是让计算机通过网卡独立地使用数据设备(如硬盘)或者安装操作系统。
Cobbler提供以下服务集成:
* PXE服务支持
* DHCP服务管理
* DNS服务管理
* 电源管理
* Kickstart服务支持
* yum仓库管理
1.安装cobbler
rpm -Uvh http://download.Fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum -y install httpd rsync tftp-server xinetd dhcp python-ctypes cman pykickstart man gcc wget bind
yum -y install cobbler* debmirror*
2.cobbler命令说明
cobbler check:检查cobbler配置
cobbler list:列出所有的cobbler元素
cobbler report:列出元素的详细信息
cobbler distro:查看导入的发行版系统信息
cobbler system:查看添加的系统信息
cobbler profile:查看配置信息
cobbler sync:同步cobbler配置
cobbler reposync:同步yum仓库
3.cobbler配置文件说明:
/etc/cobbler/seetings cobbler的主配置文件
/etc/cobbler/users.digest 用于web访问的用户名密码配置文件
/etc/cobbler/modules.conf 模块配置文件
/etc/cobbler/users.conf cobbler webui/web服务授权配置文件
/etc/cobbler/iso/ buildiso模板配置文件
/etc/cobbler/power 电源配置文件
/etc/cobbler/pxe pxeprofile配置模板
/etc/cobbler 此目录包含rsync,dhcp,dns,pxe,等服务的模板配置文件
4.系统镜像数据目录/var/www/cobbler
导入的系统发行版,repos镜像和kickstart文件都放置在/var/www/cobbler目录下
/var/www/cobbler/images存储所有导入发行版的kernel和initrd镜像用于远程网络启动
/var/www/cobbler/ks_mirror存储导入的发行版系统数据
/var/www/cobbler/repo_mirror 仓库存储目录
/var/log/cobbler cobbler日志文件
5.cobbler数据目录/var/lib/cobbler
/var/lib/cobbler/config/存放distros,repos,systems,和profile等信息配置文件,一般是json文件
/var/lib/cobbler/snippets存放ks文件可以导入的脚本小片段
/var/lib/cobbler/triggers存放用户定义的cobbler命令
/var/lib/cobbler/kickstarts/存放kictstart配置文件
6.配置cobbler
vim /etc/cobbler/setting
242 manage_dhcp: 1 ##启用cobbler管理DHCP功能
261 manage_rsync: 1 ##启用cobbler管理rsync功能
246 manage_dns: 0 ##启用cobbler管理dns,这里没有开启
272 next_server: 192.168.112.128 ##DHCP服务地址
292 pxe_just_once: 1 ##预防将机器中的安装循环配置为始终从网络引导
384 server: 192.168.112.128 ##cobbler服务器地址
7.配置tftp,rsync
vim /etc/xinetd.d/tftp
disable = no
vim /etc/xinetd.d/rsync
disable = no
或者使用sed
sed -i '/disable/c\\tdisable\t\t\t= no' /etc/xinetd.d/tftp
sed -i 's/\=\ yes/\=\ no/g' /etc/xinetd.d/rsync
8.启用wsgi模块:python应用程序或框架和web服务器之间的一种接口
cat /etc/httpd/conf.d/wsgi.conf
LoadModule wsgi_module modules/mod_wsgi.so
9.生成cobbler安装系统root的初始密码 # 这里生成密钥和配置默认密钥,后面ks文件引用
openssl passwd -1 -salt 'random-phrase-here' 'password'
$1$random-p$sFftrCTxKKsDZ.Sdr8mDG0
vim /etc/cobbler/settings +101
101 default_password_crypted: "$1$random-p$sFftrCTxKKsDZ.Sdr8mDG0"
10.配置DHCP
vim /etc/cobbler/dhcp.template
subnet 192.168.112.0 netmask 255.255.255.0 { # 分配所属网段
option routers 192.168.112.128; # 默认网关
option domain-name-servers 192.168.112.1; #dns ip
option subnet-mask 255.255.255.0; #掩码
range dynamic-bootp 192.168.112.133 192.168.112.135; # 分配地址段
filename "/pxelinux.0"; ##指定的网络引导程序
default-lease-time 21600; #租约时间,秒
max-lease-time 43200; #最大租约时间,秒
next-server $next_server; #指定的TFTP服务器的地址
11。编辑dhcp配置文件,不然可能无法启动dhcp
vi /etc/sysconfig/dhcpd #指定DHCP服务的网络接口
DHCPDARGS=eth0
:wq! #保存退出
dhcpd #测试dhcp服务器配置是否正确
启动服务:
/etc/init.d/xinetd start
/etc/init.d/dhcpd start
/etc/init.d/cobblerd start
/etc/init.d/httpd restart
/etc/init.d/named restart
开机启动:
chkconfig xinetd on
chkconfig dhcpd on
chkconfig cobblerd on
chkconfig httpd on
chkconfig named on
12.管理cobbler
#获取PXE启动需要的文件
cobbler get-loaders
cobbler get-loaders --force
#此处有bug,检查/var/lib/cobbler/loaders/下menu.c32 pxelinux.0文件大小,发现为0
#yum install syslinux*
#安装syslinux后,拷贝/usr/share/syslinux/目录下的menu.c32 pxelinux.0到/var/lib/cobbler/loaders/,否则客户端安装系统会卡在获取到IP的界面。(这里我只拷贝这两个需要的文件)
13.编辑debmiror
vim /etc/debmirror.conf
@dists="sid";
@arches="i386";
这两行注释
14.检查cobbler配置
cobbler check
15.运行cobbler sync命令使配置生效(dhcp无法启动,同步时会启动)
cobbler sync
16.挂载镜像
mount /dev/sr0 /media
17.导入安装文件
cobbler import --path/media/ --name=centos6.5x86_64 导出的文件在/var/www/下
18.列出导入后的配置
cobbler list 列出详细信息可以使用cobbler report
查看配置是否存在
cobbler profile find --distro=centos6.5X86_64-x86_64
19.定义ks文件
cd /var/lib/cobbler/kickstarts
cp sample.ks centos6.5X86_64.cfg
cobbler profile edit --name=centos6.5X86_64-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos6.5x86_64.cfg
######################################################################################
默认的Kickstart文件有许多地方并不符合我们的安装需求,如:默认时区不符合、分区不符合等。这里可以自定义Kickstart文件。
自定义Kickstart文件
两种方案:
手动的修改已有的Kickstart文件
用system-config-kickstart工具生成Kickstart文件
手动的修改已有的Kickstart文件
注:手动修改已存在的Kickstart文件,其中有两个地方有Kickstart文件。一个在root家目录下的anaconda-ks.cfg文件,另一个就是我们默认的/var/lib/cobbler/kickstarts/sample.ks文件。其中anaconda-ks.cfg文件中有我们需要的时区信息、分区信息等,而sample.ks文件有我们需要的其它信息。我们可以手动修改一下,整理出我们需要的Kickstart文件。好了,下面我们就来手动的修改一下。
用system-config-kickstart工具生成Kickstart文件
######################################################################################
查看系统列表
cobbler distro list
#########################################
Ubuntu的Server版和Mini版import和自动安装的有些许不同,可以参考“Ubuntu官方Cobbler相关”
我这里实现的是Ubuntu的半自动安装
###################
20.同步Cobbler配置 ##建议先执行cobbler check进行配置检查再执行cobbler sync,修改cobbler配置后都需要执行此步骤
21.现在就可以装机了
22.现在用web界面管理cobbler服务
在浏览器输入:https://192.168.32.200/cobber_web
23.此时,编辑/etc/cobbler/module.conf,其中有一行:
module = authn_denyall ,将这行改为module=authn_configfile,也可以改为authn_pam(这是基于系统用户进行认证)
我现在将其改为module=authn_pam
添加用户,并设置密码:useradd cobbleruser echo "redhat" | passwd --stdin cobbleruser
然后编辑/etc/cobbler/user.conf,找到admin="",改为:admin="cobbleruser" // 这是我刚刚添加的用户
重启cobbler服务,登录web界面
参考:
Ubuntu官方Cobbler相关
https://help.ubuntu.com/community/Cobbler
CentOS 6.3 安装和配置cobbler(3)ubuntu篇
http://www.chenshake.com/installation-and-configuration-centos-6-3-cobbler-3/
使用 Cobbler 自动化和管理系统安装
http://www.ibm.com/developerworks/cn/linux/l-cobbler/
运维自动化之 Cobbler 系统安装使用详解
http://os.51cto.com/art/201405/439670.htm
Linux运维自动化之cobbler实战案例
http://freeloda.blog.51cto.com/2033581/1324498