黑帽联盟

 找回密码
 会员注册
查看: 874|回复: 0
打印 上一主题 下一主题

[基础服务] 使用Cobbler批量部署Linux和Windows:Cobbler服务端部署(一)

[复制链接]

852

主题

38

听众

3174

积分

白金VIP

Rank: 8Rank: 8

  • TA的每日心情
    开心
    2024-3-7 12:52
  • 签到天数: 1538 天

    [LV.Master]伴坛终老

    本文记录了我使用Cobbler批量安装部署Linux和Windows系统的过程,文章主要分为三部分:

    第一部分:Cobbler服务端的安装配置、Linux发行版CentOS和Ubuntu的自动安装部署、Windows 7系统的自动安装部署。这里是关于Cobbler服务端的安装配置

    第二部分:使用Cobbler批量部署Linux和Windows:CentOS/Ubuntu批量安装(二)

    第三部分:使用Cobbler批量部署Linux和Windows:Windows系统批量安装(三)


    批量部署操作系统的相关环境

    Cobbler服务端相关

    操作系统:

    CentOS Linux release 7.4 ,不推荐Debian/Ubuntu系列,原因是Cobbler是由RedHat公司开发,RedHat会使得Cobbler在RedHat/CentOS保持更新迭代,从而兼容易用,而Debian/Ubuntu系列则会在适配方面处于滞后状态。实际情况是,Cobbler目前有三个大版本,分别为2.4.x、2.6.x、2.8.x,在CentOS 7上yum安装的版本为2.8.2,而在Ubuntu 16.04上apt安装的版本为2.4.1,基本上是最“古老”的版本了,并且Cobbler官网原先还提供2.4.x和2.6.x的deb安装包,2.8.x版本之后不再提供。另外,2.4.x版本在部署的过程中会从指定域名下载一些数据,而该域名已经被Cobbler废弃,因此无法解析DNS域名,导致安装部署出现问题。


    CentOS发行版

    对于CentOS发行版的安装测试,我测试了CentOS 6.6 x64和CentOS 7.4 x64,这两个版本都是没有问题的,32位版本没有测试过。


    Ubuntu发行版

    对于Ubuntu发行版发行版的安装测试,我测试了Ubuntu 16.04,该版本没有问题,但是Ubuntu 14.10版本则不行,在导入过程中会因失败而中止,最终查找原因是Cobbler会对每个发行版版本进行相关的签名校验,如果不支持该版本则会报错。可以通过下面的命令进行查看:

    1. cobbler signature report --name=ubuntu
    复制代码

    结果如下:

    1.png

    从截图中可以看到,并没有发行版Ubuntu 14.10 (Utopic Unicorn)的签名,因此该版本不被支持,推测该版本是短期支持版本,所以不被支持。


    Windows发行版

    对于Windows发行版,只测试了Windows 7 x64 SP1旗舰版( cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso ),Windows系统的自动安装需要配合相关的Autounattend.xml自动应答文件进行。


    接下来开始具体的配置说明。

    一、Cobbler服务端环境部署

    Cobbler体系结构示意图:

    2.png


    Cobbler组件:

    • 发行版(distro) :表示一个操作系统,它承载了内核和initrd的信息,以及内核等其他数据。
    • 仓库 (repository):保存了一个yum或者rsync仓库的镜像信息。
    • 配置文件(profile):包含了一个发行版(distro),一个kickstart文件以及可能的仓库(repository),还包含了更多的内核参数等其他数据。
    • 系统(system):表示要定制的具体客户机器,它包含了一个配置文件或一个镜像,还包含了ip和mac地址,电源管理(地址,凭据,类型)以及更为专业的数据信息。
    • 镜像(image):可替换一个包含不属于此类别的文件的发行版对象(eg: 无法作为内核和initrd的对象)。

    以上各个组件中, 发行版和配置文件为必须配置项。发行版distro 表示具体要导入安装的系统,配置文件profile 表示对应系统的配置,系统system 则可以定制某一台具体的机器安装,相当于一条数据库记录,可以省略。


    Cobbler工作流程:

    3.jpg


    Server端

    第一步,启动Cobbler服务
    第二步,进行Cobbler错误检查,执行cobbler check命令
    第三步,进行配置同步,执行cobbler sync命令
    第四步,复制相关启动文件文件到TFTP目录中
    第五步,启动DHCP服务,提供地址分配
    第六步,DHCP服务分配IP地址
    第七步,TFTP传输启动文件
    第八步,Server端接收安装信息
    第九步,Server端发送ISO镜像与Kickstart文件


    Client端
    第一步,客户端以PXE模式启动
    第二步,客户端获取IP地址
    第三步,通过TFTP服务器获取启动文件
    第四步,进入Cobbler安装选择界面
    第五步,客户端确定加载信息
    第六步,根据配置信息准备安装系统
    第七步,加载Kickstart文件
    第八步,传输系统安装的其它文件
    第九步,进行安装系统


    环境:CentOS 7.4 x86_64 minimal 全新纯净系统一台,root 权限 。使用 cobbler 服务时,请保持防火墙关闭

    • 安装Cobbler
    1. yum update -y
    2. yum install epel-release -y
    3. yum update -y
    4. yum install cobbler dhcp -y
    复制代码

    因为默认的仓库中没有 cobbler,所以需要安装 epel-release 软件来额外配置仓库源,cobbler会在PXE安装过程中为待安装客户机器分配IP地址,因此还需要安装 DHCP 服务。在正确安装 cobbler 之后,可以通过 cobbler 相关命令来查看和配置,如下:

    4.png

    5.png

    默认安装后,cobbler 服务还没有启动,使用相关命令会报错,需要关闭防火墙并启动 cobbler,并且应当将其设置为开机自启该服务。如下:

    1. setenforce 0 #临时关闭,重启后失效,需重新关闭
    2. vi /etc/selinux/config # ==> SELINUX=disabled 禁用
    3. service firewalld stop #临时关闭防火墙,如有iptables,也一并关闭,重启后失效,需重新关闭
    4. systemctl disable firewalld
    5. systemctl start  cobblerd
    6. systemctl enable cobblerd
    复制代码
    • Cobbler检查

    启动服务后,开始进行相应检查。如下:

    1. cobbler check
    复制代码

    该命令执行后,会报告一个错误,如下:

    6.png


    错误提示 HTTP 服务没有运行,需要启动 HTTP,并且应当将其设置为开启自启服务。如下:

    1. systemctl start  httpd
    2. systemctl enable httpd
    复制代码

    再次检查,如下:

    7.png

    依次解决上面的错误:



    问题1、2:
    修改配置文件 /etc/cobbler/settings

    1. server: 192.168.1.x #修改为cobbler server端所在机器IP
    2. next_server: 192.168.1.x #修改为cobbler server端所在机器IP<span style="font-size: 1em; color: rgb(0, 0, 0); font-family: 微软雅黑, 宋体, Arial; background-color: rgb(255, 255, 255);"> </span>
    复制代码

    问题3:

    开启 tftp 服务

    1. vi /etc/xinetd.d/tftp # ==> disable = no
    2. systemctl start  tftp
    3. systemctl enable tftp
    复制代码

    问题4:

    执行下列命令以下载网络引导文件进行修复

    1. cobbler get-loaders
    复制代码

    问题5:

    开启 rsync 服务

    1. systemctl start  rsyncd
    2. systemctl enable rsyncd
    复制代码

    问题6:

    安装 debmirror

    1. yum install debmirror -y
    复制代码

    问题7:

    安装 pykickstart

    1. yum install pykickstart -y
    复制代码

    问题8:

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

    1. default_password_crypted: "$1$root$j0bp.KLPyr.u9kgQ428D10"
    复制代码

    上面的加密密码使用下面的命令生成:

    1. openssl passwd -1 -salt "test"  "123456"  #"test"可以为任意字符串, "123456"为密码
    复制代码

    问题9:

    安装 fence-agents

    1. yum install fence-agents -y
    复制代码

    按照以上步骤修复完问题之后,重启 cobbler 服务,再次 check,如下:

    1. service cobblerd restart
    2. cobbler check
    复制代码

    则会收到如下报告:

    8.png


    按照提示相应解决即可,如下:

    9.png


    最后再次check,如果输出如下,则表明 cobber server 端安装正常:

    10.png


    如果做完以上操作仍不成功,可重启系统后再次check。注意防火墙关闭,以及一些必要服务确保启动。


    • Cobbler配置

    在 cobber server 端安装完并且 check 成功之后,接下来需要对cobbler做相应的配置,以便后续使用。

    修改配置文件 /etc/cobbler/settings,需要关注的配置如下:

    1. manage_dhcp: 1  #启用dhcp管理
    2. pxe_just_once: 1 #仅安装一次
    复制代码

    修改配置文件 /etc/cobbler/dhcp.template,需要关注的配置如下:

    1. option routers             192.168.1.x; #修改为cobbler server端所在机器IP
    2. option domain-name-servers 192.168.1.x; #修改为cobbler server端所在机器IP
    复制代码

    在 cobber 配置更改之后,需要将所有的配置重新生成同步一次(尤其是 DHCP 配置文件),如下:

    1. service cobblerd restart
    2. cobbler sync
    3. service cobblerd restart
    复制代码

    由于启用了 DHCP 管理,因此需要运行并设置 DHCP 开机自启,如下:

    1. systemctl start  dhcpd
    2. systemctl enable dhcpd
    复制代码

    至此,Cobber server 端安装配置完成。(如不成功,请检查防火墙和相应服务状态)


    帖子永久地址: 

    黑帽联盟 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与黑帽联盟享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和黑帽联盟的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、黑帽联盟管理员和版主有权不事先通知发贴者而删除本文

    勿忘初心,方得始终!
    您需要登录后才可以回帖 登录 | 会员注册

    发布主题 !fastreply! 收藏帖子 返回列表 搜索
    回顶部