Cobbler

在前面讲述的PXE安装操做系统,须要本身一个一个的配置服务,有些人会以为有些麻烦,就编写了cobbler程序,大大下降了复杂度。前端

1、Cobbler

一、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

二、工做流程

2017-09-17_230927.png(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包介绍

cobbler包集成了dhcp,pxe服务,rsync,http,dns,kiskstart,IPMI电源管理。

cobbler命令

格式: 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

三、cobbler目录介绍

/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对象)

2、cobbler实战

(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环境是否配置正确

2017-09-18_112328.png

当运行cobbler check命令时出现上述的问题,咱们经过一个一个解决就能够慢慢的实现cobbler自动化安装CentOS 系统。下面咱们一个一个的解决这些文件

(a)修改cobbler服务端地址选项server[root@localhost ~]# vim /etc/cobbler/settings2017-09-18_113027.png

[root@localhost ~]# cobbler sync #将修改过的文件同步

(b)修改next_server 此选项是修改tftp的地址 [root@localhost ~]# vim /etc/cobbler/settings

2017-09-18_113142.png

[root@localhost ~]# cobbler sync

(c)修改mange_dhcp 此选项是要cobbler管理dhcp [root@localhost ~]# vim /etc/cobbler/settings

2017-09-18_113339.png

[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.

2017-09-18_115919.png

[root@localhost ~]# cobbler sync 

(f)配置dhcp服务 [root@localhost ~]# vim /etc/cobbler/dhcp.template[root@localhost tftpboot]# cobbler sync #将修改后内容太同步到/etc/dhcp/dhcpd.conf文件中

2017-09-18_120239.png

(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)新建一台虚拟机测试

2017-09-18_141500.png

另外cobbler也提供web管理。Cobbler web界面是一个很好的前端,很是容易管理Cobbler。能够添加和删除system、distro、profile,能够查看、编辑distros、profiles、subprofiles、systems、repos、kickstart文件 cobbler认证方式有两种:

方式一:

(1)修在认证方式

2017-09-18_145331.png

(2)建立管理用户 [root@localhost ~]# htdigest -c /etc/cobbler/users.digest "Cobbler" admin

2017-09-18_145547.png

注意:第一建立是须要加选项“-c”意味着建立文件/etc/cobbler/users.digest文件。

htdigest命令的使用格式:

  htdigest [ -c ] passwdfile realm username

如何修改管理用户的密码呢? [root@localhost ~]# htdigest /etc/cobbler/users.digest "Cobbler" admin 方式二: (a)修改认证方式

2017-09-18_150027.png

(b)建立管理用户

[root@localhost ~]# useradd cobbler [root@localhost ~]# passwd cobbler

(c)修改文件/etc/cobbler/user.conf

2017-09-18_150352.png

(3)在浏览器地址输入地址https://192.168.4.128/cobbler_web并管理用户和密码便可 2017-09-18_150819.png

相关文章
相关标签/搜索