在前面讲述的PXE安装操做系统,须要本身一个一个的配置服务,有些人会以为有些麻烦,就编写了cobbler程序,大大下降了复杂度。前端
Cobbler是一个Linux服务器快速网络安装的服务,并且在通过调整也能够支持网络安装windows。 该工具使用python开发,小巧轻便(才15k行python代码),能够经过网络启动(PXE)的方式来快速安装、重装物理服务器和虚拟机,同时还能够管理DHCP,DNS,TFTP、RSYNC以及yum仓库、构造系统ISO镜像。 Cobbler能够使用命令行方式管理,也提供了基于Web的界面管理工具(cobbler-web),还提供了API接口,能够方便二次开发使用。 Cobbler是较早前的kickstart的升级版,优势是比较容易配置,还自带web界面比较易于管理。 Cobbler内置了一个轻量级配置管理系统,但它也支持和其它配置管理系统集成,如Puppet,暂时不支持SaltStack。 Cobbler客户端Koan支持虚拟机安装和操做系统从新安装,使重装系统更便捷。python
(a)client裸机配置了从网络启动后,开机后会广播包请求DHCP服务器(cobbler server)发送其分配好的一个IPlinux
(b)DHCP服务器(cobbler server)收到请求后发送responese,包括其ip地址web
(c)client裸机拿到ip后再向cobbler server发送请求OS引导文件的请求vim
(d)cobbler server告诉裸机OS引导文件的名字和TFTP server的ip和 portwindows
(e)client裸机经过上面告知的TFTP server地址通讯,下载引导文件centos
(f)client裸机执行执行该引导文件,肯定加载信息,选择要安装的os,浏览器
(g)期间会再向cobbler server请求kickstart文件和os p_w_picpath服务器
(h)cobbler server发送请求的kickstart和os iamge client裸机加载kickstart文件网络
(i)client裸机接收os p_w_picpath,安装该os p_w_picpath
cobbler包集成了dhcp,pxe服务,rsync,http,dns,kiskstart,IPMI电源管理。
格式: cobbler command [subcommand] [--arg1=value1] [--arg2=value2]
cobbler check 核对当前设置是否有问题 cobbler list 列出全部的cobbler元素 cobbler repo 列出元素的详细信息
cobbler sync 同步配置到数据目录,更改配置
cobbler reposync 同步yum仓库
cobbler distro 查看导入的发行版系统信息
cobbler distro add cobbler distro copy cobbler distro edit cobbler distro find cobbler distro list cobbler distro remove cobbler distro rename cobbler distro report
cobbler system 查看添加的系统信息
cobbler profile 查看配置信息
cobbler profile add --name=NAME --distro=DISTRO --kickstart=KICKSTART cobbler profile list #列出配置文件信息 cobbler profile remove cobbler profile rename 修改配置文件名称 cobbler profile report #列出某个配置文件的报告 --name=NAME
cobbler improt
--arch=ARCH | OS architecture being imported |
--breed=BREED | the breed being imported |
--os-version=OS_VERSION | the version being imported |
--path=PATH | local path or rsync location |
--name=NAME | name, ex 'RHEL-5' |
--available-as=AVAILABLE_AS | tree is here, don't mirror |
--kickstart=KICKSTART_FILE | assign this kickstart file |
--rsync-flags=RSYNC_FLAGS | pass additional flags to rsync |
/etc/cobbler/settings : cobbler 主配置文件 /etc/cobbler/iso/: iso模板配置文件 /etc/cobbler/pxe: pxe模板文件 /etc/cobbler/power: 电源配置文件 /etc/cobbler/user.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 : 模块的配置文件
数据目录
/var/lib/cobbler/config/: 用于存放distros,system,profiles 等信息配置文件 /var/lib/cobbler/triggers/: 用于存放用户定义的cobbler命令 /var/lib/cobbler/kickstart/: 默认存放kickstart文件 /var/lib/cobbler/loaders/: 存放各类引导程序
镜像目录
/var/www/cobbler/ks_mirror/: 导入的发行版系统的全部数据 /var/www/cobbler/p_w_picpaths/ : 导入发行版的kernel和initrd镜像用于远程网络启动 /var/www/cobbler/repo_mirror/: yum 仓库存储目录
日志目录
/var/log/cobbler/installing: 客户端安装日志 /var/log/cobbler/cobbler.log : cobbler日志
发行版:表示一个操做系统。它承载了内核和initrd信息,以及内核参数等其余数据。
配置文件:包含一个发行版、一个kickstart文件以及可能的存储库,还包含更多特定的内核参数等其余数据。
系统:表示要配给的机器。它包含一个配置文件或一个镜像,还包含IP和MAC地址、电源管理以及更专业的数据信息。
存储库:保存一个yum或rsync存储库的镜像信息。 镜像:可替换一个包含不属于此类别的文件的发行版对象。(例如,没法分为内核和initrd对象)
(1)安装cobbler安装包和dhcp [root@localhost ~]# yum install -y cobbler
[root@localhost ~]# yum install -y dhcp
(2)将服务设为开机启动并启动服务 [root@localhost ~]# systemctl enable tftp
#将tftp服务设为开机启动,并启动它[root@localhost ~]# systemctl start tftp
[root@localhost ~]# systemctl enabel httpd
#将http服务设为开机启动并启动[root@localhost ~]# systemctl enable httpd
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# systemctl enable cobblerd
#将cobbler设为开机启动并启动 [root@localhost ~]# systemctl start cobblerd
(3)运行cobbler check
命令解决问题 为了确保出现没必要要的问题,禁用iptables和setenforce [root@localhost ~]# iptables -F #清空防火墙规则 [root@localhost ~]# setenforce 0 #将selinux设为permissiving [root@localhost ~]# cobbler check #检查cobbler环境是否配置正确
当运行cobbler check
命令时出现上述的问题,咱们经过一个一个解决就能够慢慢的实现cobbler自动化安装CentOS 系统。下面咱们一个一个的解决这些文件
(a)修改cobbler服务端地址选项server[root@localhost ~]# vim /etc/cobbler/settings
[root@localhost ~]# cobbler sync
#将修改过的文件同步
(b)修改next_server 此选项是修改tftp的地址 [root@localhost ~]# vim /etc/cobbler/settings
[root@localhost ~]# cobbler sync
(c)修改mange_dhcp 此选项是要cobbler管理dhcp [root@localhost ~]# vim /etc/cobbler/settings
[root@localhost ~]# cobbler sync
(d)获取启动菜单 方法一: 若是有网络的话使用以下方式 [root@localhost ~]# cobbler get-loaders
方法二: 若是没有网络/var/lib/tftpboot/
目录下的pxelinux.0和menu.c32文件复制到/var/lib/cobbler/loaders
[root@localhost ~]# cp /var/lib/tftpboot/{pxelinux.0,menu.c32} /var/lib/cobbler/loaders/
[root@localhost ~]# cobbler sync
(e)修改用户口令 [root@localhost ~]# openssl passwd -1
#生成加密口令
Password: Verifying - Password: $1$gMx01QUD$eo5dQGlEDGh9o0fY8dgnr.
[root@localhost ~]# cobbler sync
(f)配置dhcp服务 [root@localhost ~]# vim /etc/cobbler/dhcp.template
[root@localhost tftpboot]# cobbler sync
#将修改后内容太同步到/etc/dhcp/dhcpd.conf
文件中
(4)导入yum源 [root@localhost ~]# cobbler import --path=/media/cdrom --name=centos7.3 --arch=x86_64
--path:指明yum源的路径 --name:指明复制到`/var/www/cobbler`目录下 --arhc:指明架构类型
(5)编辑ks文件并导入
默认的ks位置/var/lib/cobbler/kickstarts/sample.ks
首先将ks文件复制到/var/lib/cobbler/kickstarts
目录下,而后将ks文件导入
[root@localhost kickstarts]# cobbler profile edit/add --name=centos7.3-x86_64 --distro=centos7.3-x86_64 --kickstart=/var/lib/cobbler/kickstarts/ks7.cfg
#编辑原有的ks文件
[root@localhost tftpboot]# cobbler sync
(6)编辑菜单文件
默认的菜单文件/etc/cobbler/pxe/pxedefault.template
#默认菜单模板
启动菜单存放位置/var/lib/tftpboot/pxelinux.cfg/default
[root@localhost tftpboot]# cobbler sync
(7)新建一台虚拟机测试
另外cobbler也提供web管理。Cobbler web界面是一个很好的前端,很是容易管理Cobbler。能够添加和删除system、distro、profile,能够查看、编辑distros、profiles、subprofiles、systems、repos、kickstart文件 cobbler认证方式有两种:
方式一:
(1)修在认证方式
(2)建立管理用户 [root@localhost ~]# htdigest -c /etc/cobbler/users.digest "Cobbler" admin
注意:第一建立是须要加选项“-c”意味着建立文件/etc/cobbler/users.digest
文件。
htdigest命令的使用格式:
htdigest [ -c ] passwdfile realm username
如何修改管理用户的密码呢? [root@localhost ~]# htdigest /etc/cobbler/users.digest "Cobbler" admin
方式二: (a)修改认证方式
(b)建立管理用户
[root@localhost ~]# useradd cobbler
[root@localhost ~]# passwd cobbler
(c)修改文件/etc/cobbler/user.conf
(3)在浏览器地址输入地址https://192.168.4.128/cobbler_web并管理用户和密码便可