Cobbler自动化安装系统

-----------*********帮助链接*****************--------------------

https://www.cnblogs.com/nulige/p/6796593.html

https://www.cnblogs.com/xred/p/4285579.html

----------**********************************---------------------

一、Cobbler自动化安装系统

(一)概述

1.个人见解

Cobbler就是一个可以简化PXE无人值守安装的工具!该工具具体实现了的功能有:配置dhcp(让局域网内的主机找到TFTP服务器在哪)、配置httpd(用于共享ks.cfg应答文件、镜像文件)、配置tftp(提供初始化镜像、内核等)等!

Cobbler主要帮助运维人员减少了手动编写default菜单文件、ks.cfg文件的编写

如果你没有Cobbler的话,也可以选择自己搭建TFTP、dhcp、httpd等服务,然后手动修改dhcp的配置文件、手动从镜像中复制内核、初始化镜像等文件、手动编写default文件和ks.cfg应答文件。相关链接:https://blog.csdn.net/yingqianmeng/article/details/101107441

我建议大家使用Cobbler,毕竟手动编写default文件和ks.cfg应答文件会出现许多奇奇怪怪的问题。如果你很熟悉default文件、ks.cfg文件的编写的话,也可以不使用cobbler。

2.Cobbler介绍

Cobbler是一个快速网络安装linux的服务,而且在经过调整也可以支持网络安装windows。该工具使用python开发,小巧轻便(才15k行python代码),使用简单的命令即可完成PXE网络安装环境的配置,同时还可以管理DHCP、DNS、TFTP、RSYNC以及yum仓库、构造系统ISO镜像。

Cobbler支持命令行管理,web界面管理,还提供了API接口,可以方便二次开发使用,Cobbler客户端Koan支持虚拟机安装和操作系统重新安装。

3.Cobbler原理图

4.软件说明

cobbler     #cobbler程序包

cobbler-web  #cobbler的web服务包

pykickstart  #cobbler检查kickstart语法错误

httpd       #Apache web服务

 

/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日志

 

(二)实验

1.更换yum源

cd /etc/yum.repos.d

mkdir bak

mv *.repo  bak

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo

更新yum缓存

yum clean all

yum makecache

2.关闭防火墙与selinux

setenforce 0

service  iptables  stop

3.安装Cobbler及需要的服务

安装Cobbler需要的服务

yum  -y  install dhcp tftp rsync xinetd httpd

安装Cobbler

yum install cobbler -y

4.启动Cobbler

/etc/init.d/cobblerd start

/etc/init.d/httpd start

5.下载Cobbler相关的文件

[root@sutang yum.repos.d]# cobbler get-loaders

task started: 2019-09-24_145118_get_loaders

task started (id=Download Bootloader Content, time=Tue Sep 24 14:51:18 2019)

downloading http://cobbler.github.io/loaders/README to /var/lib/cobbler/loaders/README

downloading http://cobbler.github.io/loaders/COPYING.elilo to /var/lib/cobbler/loaders/COPYING.elilo

downloading http://cobbler.github.io/loaders/COPYING.yaboot to /var/lib/cobbler/loaders/COPYING.yaboot

downloading http://cobbler.github.io/loaders/COPYING.syslinux to /var/lib/cobbler/loaders/COPYING.syslinux

downloading http://cobbler.github.io/loaders/elilo-3.8-ia64.efi to /var/lib/cobbler/loaders/elilo-ia64.efi

downloading http://cobbler.github.io/loaders/yaboot-1.3.17 to /var/lib/cobbler/loaders/yaboot

downloading http://cobbler.github.io/loaders/pxelinux.0-3.86 to /var/lib/cobbler/loaders/pxelinux.0

downloading http://cobbler.github.io/loaders/menu.c32-3.86 to /var/lib/cobbler/loaders/menu.c32

downloading http://cobbler.github.io/loaders/grub-0.97-x86.efi to /var/lib/cobbler/loaders/grub-x86.efi

downloading http://cobbler.github.io/loaders/grub-0.97-x86_64.efi to /var/lib/cobbler/loaders/grub-x86_64.efi

*** TASK COMPLETE ***

[root@sutang yum.repos.d]#

6.检查Cobbler并纠错

-----------***********-----------------

[root@sutang yum.repos.d]# cobbler check

The following are potential configuration items that you may want to fix:

 

1 : The 'server' field in /etc/cobbler/settings must be set to something other than localhost, or kickstarting features will not work.  This should be a resolvable hostname or IP for the boot server as reachable by all machines that will use it.

2 : For PXE to be functional, the 'next_server' field in /etc/cobbler/settings must be set to something other than 127.0.0.1, and should match the IP of the boot server on the PXE network.

3 : change 'disable' to 'no' in /etc/xinetd.d/rsync

4 : debmirror package is not installed, it will be required to manage debian deployments and repositories

5 : ksvalidator was not found, install pykickstart

6 : The default password used by the sample templates for newly installed machines (default_password_crypted in /etc/cobbler/settings) is still set to 'cobbler' and should be changed, try: "openssl passwd -1 -salt 'random-phrase-here' 'your-password-here'" to generate new one

7 : fencing tools were not found, and are required to use the (optional) power management features. install cman or fence-agents to use them

 

Restart cobblerd and then run 'cobbler sync' to apply changes.

[root@sutang yum.repos.d]#

上面这段信息大意就是:

1,编辑/etc/cobbler/settings文件,找到 server选项,修改为适当的ip地址,即修改为本机IP

2,编辑/etc/cobbler/settings文件,找到 next_server选项,修改为适当的ip地址,即修改为本机IP

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

4,提示说debmirror没安装。如果不是安装 debian之类的系统,此提示可以忽略,如果需要安装,下载地址为:

http://rpmfind.net/linux/rpm2html/search.php?query=debmirror

5,ksvalidator没有被发现,安装pykickstart

yum   -y  install pykickstart 

6,修改cobbler用户的默认密码,可以使用如下命令生成密码,并使用生成后的密码替换/etc/cobbler/settings中的密码。生成密码命令: 其中“random-phrase-here”为干扰码

openssl passwd -1 -salt 'random-phrase-here' 'your-password-here'

用你的用户名和密码,生成一段加密后的密码:

[root@sutang yum.repos.d]# openssl passwd -1 -salt 'root' '123456'

$1$root$j0bp.KLPyr.u9kgQ428D10

修改配置文件/etc/cobbler/settings:

7:fencing tools为找到安装

yum install fence-agents  -y

重启cobbler并执行cobbler sync,改变才会生效。

--------------**********-----------------

7.重启服务cobbler并检查

[root@sutang yum.repos.d]# /etc/init.d/cobblerd restart

Stopping cobbler daemon:                                   [确定]

Starting cobbler daemon:                                   [确定]

[root@sutang yum.repos.d]# cobbler check

The following are potential configuration items that you may want to fix:

1 : debmirror package is not installed, it will be required to manage debian deployments and repositories

Restart cobblerd and then run 'cobbler sync' to apply changes.

8.挂载ISO

mkdir /mnt/Centos6.5

mount -o loop 镜像的位置  /mnt/Centos6.5/

9. 导入安装源 到Cobbler中

通过这个环节, Cobbler 会把安装的镜像ISO 拷贝到 源安装镜像目录下: /var/www/cobbler/ks_mirror/

操作命令如下:

[root@sutang ~]# cobbler import --path=/mnt/Centos6.5 --name=CentOS6.5 --arch=x86_64

task started: 2019-09-24_152759_import

task started (id=Media import, time=Tue Sep 24 15:27:59 2019)  #执行到这步后会有几分钟的拷贝时间,而且不会有任何反应,不要担心,这不是卡了,这是正常情况。

Found a candidate signature: breed=redhat, version=rhel6

Found a matching signature: breed=redhat, version=rhel6

Adding distros from path /var/www/cobbler/ks_mirror/CentOS6.5-x86_64:

creating new distro: CentOS6.5-x86_64

trying symlink: /var/www/cobbler/ks_mirror/CentOS6.5-x86_64 -> /var/www/cobbler/links/CentOS6.5-x86_64

creating new profile: CentOS6.5-x86_64

associating repos

checking for rsync repo(s)

checking for rhn repo(s)

checking for yum repo(s)

starting descent into /var/www/cobbler/ks_mirror/CentOS6.5-x86_64 for CentOS6.5-x86_64

processing repo at : /var/www/cobbler/ks_mirror/CentOS6.5-x86_64

need to process repo/comps: /var/www/cobbler/ks_mirror/CentOS6.5-x86_64

looking for /var/www/cobbler/ks_mirror/CentOS6.5-x86_64/repodata/*comps*.xml

Keeping repodata as-is :/var/www/cobbler/ks_mirror/CentOS6.5-x86_64/repodata

*** TASK COMPLETE ***

[root@sutang ~]#

参数说明:

--name  为安装源定义一个名字

--arch    指定安装源是32位还是64位、ia64, 目前支持的选项有: x86│x86_64│ia64

注意: 这个安装源的唯一标示 就是根据这两个参数来定义

本例导入成功后,安装源的唯一标示就是:centos6.3-x86_64 ,如果重复,系统会提示导入失败

更多用法,可以查看官方文档: man cobbler ,然后查找 import 的配置

 

查看导入源库列表

[root@sutang ~]# cobbler distro list

   CentOS6.5-x86_64

[root@sutang ~]#

10.配置dhcp服务

(1)利用cobbler管理dhcp服务(可选)

如果利用cobbler管理不行的话,采用手动配置dhcp,我利用cobbler管理dhcp不行,我采用的手动模式。

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

manage_dhcp: 1               #利用vim命令模式下输入/manage_dhcp 查找

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

subnet 192.168.88.0 netmask 255.255.255.0 {

     option routers             192.168.88.2;

     option domain-name-servers 114.114.114.114;

     option subnet-mask         255.255.255.0;

     range dynamic-bootp        192.168.88.10 192.168.88.50;

     default-lease-time         21600;

     max-lease-time             43200;

     next-server                $next_server;

     class "pxeclients" {

          match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";

          if option pxe-system-type = 00:02 {

                  filename "ia64/elilo.efi";

          } else if option pxe-system-type = 00:06 {

                  filename "grub/grub-x86.efi";

          } else if option pxe-system-type = 00:07 {

                  filename "grub/grub-x86_64.efi";

          } else {

                  filename "pxelinux.0";

          }

     }

 

}

红色标注出来的根据你实际环境中的给定。

其他不用改。

(2)手动写配置文件

vim  /etc/dhcp/dhcpd.conf

subnet  192.168.88.0 netmask 255.255.255.0{

        range 192.168.88.10 192.168.88.50;

        option subnet-mask      255.255.255.0;

        ddns-update-style       none;

        default-lease-time      259200;

        max-lease-time          518400;

        option routers          192.168.88.2;

        option broadcast-address        192.168.88.255;

        option domain-name-servers      114.114.114.114,223.5.5.5;

        next-server             $next_server;

        filename                "/pxelinux.0";

}

11.重启xinetd

[root@sutang ~]# /etc/init.d/xinetd restart

停止 xinetd:                                              [失败]

正在启动 xinetd:                                          [确定]

12.同步cobbler配置

[root@sutang ~]# cobbler sync

task started: 2019-09-24_163301_sync

task started (id=Sync, time=Tue Sep 24 16:33:01 2019)

running pre-sync triggers

cleaning trees

removing: /var/www/cobbler/images/CentOS6.5-x86_64

removing: /var/lib/tftpboot/pxelinux.cfg/default

removing: /var/lib/tftpboot/grub/images

removing: /var/lib/tftpboot/grub/grub-x86_64.efi

removing: /var/lib/tftpboot/grub/efidefault

removing: /var/lib/tftpboot/grub/grub-x86.efi

removing: /var/lib/tftpboot/images/CentOS6.5-x86_64

removing: /var/lib/tftpboot/s390x/profile_list

copying bootloaders

trying hardlink /var/lib/cobbler/loaders/pxelinux.0 -> /var/lib/tftpboot/pxelinux.0

copying: /var/lib/cobbler/loaders/pxelinux.0 -> /var/lib/tftpboot/pxelinux.0

trying hardlink /var/lib/cobbler/loaders/menu.c32 -> /var/lib/tftpboot/menu.c32

copying: /var/lib/cobbler/loaders/menu.c32 -> /var/lib/tftpboot/menu.c32

trying hardlink /var/lib/cobbler/loaders/grub-x86_64.efi -> /var/lib/tftpboot/grub/grub-x86_64.efi

trying hardlink /var/lib/cobbler/loaders/grub-x86.efi -> /var/lib/tftpboot/grub/grub-x86.efi

copying distros to tftpboot

copying files for distro: CentOS6.5-x86_64

trying hardlink /var/www/cobbler/ks_mirror/CentOS6.5-x86_64/images/pxeboot/vmlinuz -> /var/lib/tftpboot/images/CentOS6.5-x86_64/vmlinuz

trying hardlink /var/www/cobbler/ks_mirror/CentOS6.5-x86_64/images/pxeboot/initrd.img -> /var/lib/tftpboot/images/CentOS6.5-x86_64/initrd.img

copying images

generating PXE configuration files

generating PXE menu structure

copying files for distro: CentOS6.5-x86_64

trying hardlink /var/www/cobbler/ks_mirror/CentOS6.5-x86_64/images/pxeboot/vmlinuz -> /var/www/cobbler/images/CentOS6.5-x86_64/vmlinuz

trying hardlink /var/www/cobbler/ks_mirror/CentOS6.5-x86_64/images/pxeboot/initrd.img -> /var/www/cobbler/images/CentOS6.5-x86_64/initrd.img

Writing template files for CentOS6.5-x86_64

rendering DHCP files

generating /etc/dhcp/dhcpd.conf

rendering TFTPD files

generating /etc/xinetd.d/tftp

processing boot_files for distro: CentOS6.5-x86_64

cleaning link caches

running post-sync triggers

running python triggers from /var/lib/cobbler/triggers/sync/post/*

running python trigger cobbler.modules.sync_post_restart_services

running: dhcpd -t -q

received on stdout:

received on stderr:

running: service dhcpd restart

received on stdout: 正在启动 dhcpd:[确定]

 

received on stderr:

running shell triggers from /var/lib/cobbler/triggers/sync/post/*

running python triggers from /var/lib/cobbler/triggers/change/*

running python trigger cobbler.modules.scm_track

running shell triggers from /var/lib/cobbler/triggers/change/*

*** TASK COMPLETE ***

[root@sutang ~]# service dhcpd status

dhcpd (pid  9617) 正在运行...

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

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

13.主机安装测试

OK开启真机或者虚拟机来测试注意开启网络引导 网卡要开启PXE  引导程序

虚拟机选nat模式,安装完成后账户为前面设置的那个(使用这命令openssl passwd -1 -salt 'root' '123456'生成的那个。)

(我的账户是root  123456)

如果你认为它自动生成的ks文件不合你意。

可以手写一份ks文件(/var/www/http下写),然后改default文件(/var/lib/tftpboot/pxelinux.cfg/default),将ks的参数指向你手写的那个ks文件。然后不要cobbler sync同步(同步后,cobbler会自动给你删掉,然后重新生成它创建的default文件。)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值