首页 > 代码库 > cobbler部署

cobbler部署

1.cobbler介绍

      Cobbler是一个快速网络安装linux的服务,而且在经过调整也可以支持网络安装windows。该工具使用python开发,小巧轻便(才15k行python代码),使用简单的命令即可完成PXE网络安装环境的配置,同时还可以管理DHCP、DNS、TFTP、RSYNC以及yum仓库、构造系统ISO镜像。Cobbler支持命令行管理,web界面管理,还提供了API接口,可以方便二次开发使用。Cobbler客户端Koan支持虚拟机安装和操作系统重新安装,使重装系统更便捷。

  Cobbler功能

     使用Cobbler,可以做到无需进行人工干预即可安装机器;Cobbler设置一个PXE引导环境(它还可使用yaboot支持PowerPC),并控制与安装相关的所有方面,比如网络引导服务     (DHCP和TFTP)与存储库镜像。当希望安装一台新机器时,Cobbler可以:使用一个以前定义的模板来配置DHCP服务(如果启用了管理 DHCP)将一个存储库(yum或rsync)建立镜像或解压缩一个媒介,以注册一个新操作系统在DHCP配置文件中为需要安装的机器创建一个条目,并使用您指定的参数(IP和MAC地址);在TFTFP服务目录下创建适当的PXE文件;重新启动DHCP服务以反映更改;重新启动机器以开始安装(如果电源管理已启用)。

2.cobbler部署

系统环境

[root@cobbler-server ~]# cat /etc/redhat-release       #系统版本
CentOSLinux release 7.1.1503(Core)
[root@cobbler-server ~]# uname –r        #内核版本
3.10.0-229.el7.x86_64
[root@cobbler-server ~]# getenforce       #检测selinux是否关闭(必须关闭)
Disabled
[root@cobbler-server ~]# systemctl stop firewalld        #关闭防火墙
[root@cobbler-server ~]# ifconfig eth0|awk -F [ :]+‘‘NR==2 {print $3}       #查看IP地址
10.0.0.101
[root@cobbler-server ~]# hostname        #查看主机名
cobbler-server
[root@cobbler-server ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo         #cobbler安装必须使用到epel源

安装软件

[root@cobbler-server ~]# yum install cobbler cobbler-web pykickstart httpd dhcp tftp xinetd

 

 

 

配置文件

cobbler        #cobbler程序包
cobbler-web     #cobbler的web服务包
pykickstart    #cobbler检查kickstart语法错误
httpd      #Apache web服务
dhcp       #Dhcp服务
tftp      #tftp服务
/etc/cobbler       #配置文件目录
/etc/cobbler/settings       #cobbler主配置文件
/etc/cobbler/dhcp.template       #DHCP服务的配置模板
/etc/cobbler/tftpd.template     #tftp服务的配置模板
/etc/cobbler/rsync.template     #rsync服务的配置模板
/etc/cobbler/iso      #iso模板配置文件目录
/etc/cobbler/pxe      #pxe模板文件目录
/etc/cobbler/power     #电源的配置文件目录
/etc/cobbler/users.conf     #web服务授权配置文件
/etc/cobbler/users.digest     #web访问的用户名密码配置文件
/etc/cobbler/dnsmasq.template     #DNS服务的配置模板
/etc/cobbler/modules.conf     #Cobbler模块配置文件
/var/lib/cobbler        #Cobbler数据目录
/var/lib/cobbler/config       #配置文件
/var/lib/cobbler/kickstarts       #默认存放kickstart文件
/var/lib/cobbler/loaders      #存放的各种引导程序
/var/www/cobbler        #系统安装镜像目录
/var/www/cobbler/ks_mirror       #导入的系统镜像列表
/var/www/cobbler/images       #导入的系统镜像启动文件
/var/www/cobbler/repo_mirror      #yum源存储目录
/var/log/cobbler         #日志目录
/var/log/cobbler/install.log       #客户端系统安装日志
/var/log/cobbler/cobbler.log       #cobbler日志

 

Cobbler的检测
     
cobbler的运行依赖于dhcp、tftp、rsync及dns服务,其中dhcp可由dhcpd(isc)提供,也可由dnsmasq提供;tftp可由tftp-server程序包提供,也可由cobbler功能提供,rsync有rsync程序包提供,dns可由bind提供,也可由dnsmasq提供cobbler可自行管理这些服务中的部分甚至是全部,但需要配置文件/etc/cobbler/settings中的“manange_dhcp”、“manager_tftpd”、“manager_rsync”、“manager_dns”分别来进行定义,另外,由于各种服务都有着不同的实现方式,如若需要进行自定义,需要通过修改/etc/cobbler/modules.conf配置文件中各服务的模块参数的值来实现。

 #启动apache服务

[root@cobbler-server ~]# systemctl start httpd    

 

  #启动cobbler程序

[root@cobbler-server ~]# systemctl start cobblerd   

 

查看检查

[root@cobbler-server ~]# cobbler check       #检查存在的问题,逐一解决     

 

1)指定cobbler服务主机ip

[root@cobbler-server ~]# sed -i s/server: 127.0.0.1/server: 10.0.0.101//etc/cobbler/settings

2)提供PXE服务的主机ip

[root@cobbler-server ~]# sed -i s/next_server: 127.0.0.1/next_server: 10.0.0.101//etc/cobbler/settings

3)启用tftp服务

[root@cobbler-server]#cat /etc/xinetd.d/tftp | grep disable
                                    disable                 = no

 


4)更新引导程序,如果不能下载可以在复制/usr/share/syslinux/{pxelinux.0,memu.c32}到/var/lib/cobbler/loaders/

[root@cobbler-server ~]# cobbler get-loaders     下载引导程序

5)执行 systemctl enable rsyncd命令即可;

[root@cobbler-server ~]# openssl passwd -1 -salt $(openssl rand -hex 4)‘‘cobbler
$1$$(openss$.wbDUBV/STL0YaNuAcusK/
[root@cobbler-server~]# grep "default_password_crypted"/etc/cobbler/settings   #替换/etc/cobbler/setting内的default_password_crypted为上个命令结果
default_password_crypted:"$1$$(openss$.wbDUBV/STL0YaNuAcusK/"

 

[root@cobbler-server~]# yum –y install cman fence-agents

 

最后重启Cobbler:

[root@cobbler-server~]# systemctl restart cobblerd

 

配置dhcp

[root@cobbler-server~]# sed -i s#manage_dhcp: 0#manage_dhcp: 1#g/etc/cobbler/settings              #使用cobbler管理dhcp
[root@cobbler-server~]# vim /etc/cobbler/dhcp.template             #修改cobbler的dhcp模版,因为cobbler会替换。
subnet 10.0.0.0 netmask 255.255.255.0{
option routers 10.0.0.2;
option domain-name-servers 10.0.0.2;
option subnet-mask 255.255.255.0;
range dynamic-bootp 10.0.0.20010.0.0.250;
default-lease-time 21600;
max-lease-time 43200;
next-server $next_server;

 

同步cobbler

[root@cobbler-server~]# systemctl restart xinetd     #重启xinetd
[root@cobbler-server~]# systemctl restart cobblerd    #重启cobbler
[root@cobbler-server~]# cobbler sync      #同步最新cobbler配置,可以看具体做了哪些操作

 

3.管理cobbler服务

  1)上传系统镜像

[root@cobbler-server ~]# mkdir /home/CentOS
[root@cobbler-server ~]# mount /home/src/CentOS-6.7-i386-bin-DVD.iso /home/CentOS/ -o loop
[root@cobbler-server ~]# cobbler import --mirror=/home/CentOS --name=CentOS-6.7
[root@cobbler-server ~]# cobbler sync    应用配置模板

 

2)添加kickstart文件指定到系统列表

[root@cobbler-server ~]#cobbler profile edit --name=CentOS-6.7.1-x86_64-distro --kickstart=/var/lib/cobbler/kickstarts/Cobbler-CentOS-6.7-x86_64.cfg #指定ks路径

 

 

 

[root@cobbler ~]# ln s /var/lib/cobbler/kickstarts/centos6.5-ks.cfg /var/www/cobbler/pub/

 

 指定无人看守安装

[root@cobbler ~]# cat /var/lib/tftpboot/pxelinux.cfg/default
DEFAULT menu
PROMPT 0
MENU TITLE Cobbler | http://cobbler.github.io
TIMEOUT 200
TOTALTIMEOUT 6000
ONTIMEOUT local

LABEL local
        MENU LABEL (local)
        MENU DEFAULT
        LOCALBOOT -1

LABEL CentOS_6.5-x86_64
        kernel /images/CentOS_6.5-x86_64/vmlinuz
        MENU LABEL CentOS_6.5-x86_64
        append initrd=/images/CentOS_6.5-x86_64/initrd.img ksdevice=bootif lang=  kssendmac text  ks=http://172.16.68.61/cobbler/pub/centos6.5-ks.cfg
        ipappend 2



MENU end

 

  

cobbler部署