Cobbler实现PXE自动化无人值守安装

目录

前言

1、环境描述

2、准备操作

3、安装配置Cobbler

3、简单配置基础服务

4、启动cobbler服务

5、检查Cobbler问题

6、Cobbler首次同步

7、导入发行版

8、验证操作

10、启用 Cobbler web

10、定制Profile

 


 

 

  • 前言

基于cobbler从0快速构建起PXE网络引导安装环境

 

Why Cobbler?

1. 优秀的Os Provisioning自动化工具,降低PXE环境管理复杂度,尤其是对于多系统PXE环境维护和管理。

2.有CLI和Web管理接口,Cobbler check和cobbler import完成后,就可以通过web界面进行管理,可以不用太过了解底层细节。

3.自动化管理PXE依赖的服务,还有一些高级功能。

 

 

1、环境描述

OS:CentOS 7.4 64bit

硬件:2CPU,2G,2块网卡

软件:cobbler-2.8.5,cobbler-web-2.8.5,dhcp-4.2.5,tftp-server-5.2-22,httpd-2.4.6,rsync-3.0.9

 

dhcp手动管理,tftp交由cobbler管理,yum repo由cobbler管理。

不需要通过system定制每个系统网络属性,直接手动管理dhcp还比较方便一点

 

2、准备操作

Step1:关闭防火墙

systemctl stop firewalld

 

Step2:关闭selinux

sed -i 's/SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

setenforce 0

 

3、安装配置Cobbler

Step1:安装Cobbler及其相关依赖包

yum install cobbler cobbler-web dhcp syslinux

作为cobbler依赖tftp-server、httpd、rsync会被自动安装

 

step2:修改cobbler配置

/etc/cobbler/settings,YAML格式配置文件,修改其中几项

default_password_crypted: $1$/FebKFB2$1RYpu1Gt8PV397FU6R6cj0

这个加密密码可以用openssl passwd -1生成,用于设定/var/lib/cobbler/kickstarts/下的kickstart模版中的root密码

server: 192.168.1.1

next_server: 192.168.1.1

server和next_server地址不能是127.0.0.1或localhost、0.0.0.0会报错,要设置为pxe网卡地址或对应主机名,其中next_server其实dhcp不是由cobbler管理的话无大碍

 

3、简单配置基础服务

 

step1:提供DHCP配置

cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf

vim /etc/dhcp/dhcpd.conf

 

option domain-name "jjf.com"; #你的域名

option domain-name-servers 192.168.1.1 #你的DNS服务器

 

default-lease-time 43200;

max-lease-time 86400;

 

log-facility local7;

 

subnet 192.168.1.0 netmask 255.255.0.0 {

range 192.168.1.100 192.168.1.120;

option routers 192.168.1.1;

next-server 192.168.1.1;

filename="pxelinux.0";

}

 

step2:启动PXE所依赖服务

#启动dhcp

systemctl start tftp.socket

systemctl enable tftp.socket

#启动tftp

systemctl start tftp.socket

systemctl enable tftp.socket

#启动httpd

systemctl start httpd.service

systemctl enable httpd.service

#启动rsync

systemctl start rsyncd.service

systemctl enable rsyncd.service

 

4、启动cobbler服务

systemctl start cobblerd.service

systemctl enable cobblerd.service

systemctl status cobblerd.service

 

5、检查Cobbler问题

Step1:cobbler环境检查

cobbler check

执行“cobbler check命令检查存的问题,而后逐一按提示解决之。常见的问题如下所示:
1 : change 'disable' to 'no' in /etc/xinetd.d/tftp
2 : Some network boot-loaders are missing from /var/lib/cobbler/loaders, you may run 'cobbler get-loaders' to download them, or, if you only want to handle x86/x86_64 netbooting, you may ensure that you have installed a *recent* version of the syslinux package installed and can ignore this message entirely.  Files in this directory, should you want to support all architectures, should include pxelinux.0, menu.c32, elilo.efi, and yaboot. The 'cobbler get-loaders' command is the easiest way to resolve these requirements.
3 : debmirror package is not installed, it will be required to manage debian deployments and repositories
4 : fencing tools were not found, and are required to use the (optional) power management features. install cman or fence-agents to use them

这些就不是什么太大的问题,基本都可以忽略详细如下:
1. 我们确保自己是以守护进程的方式正确运行tftp-server即可,只是它这里检查风格还是xinetd瞬时守护进程这种方式运行tftp-server。
2. 这一步是说可能会缺乏某些bootloader,如果是引导linux类系统不是efi问题也不大,前面我们安装了syslinux这个包,等下直接执行cobbler sync它就会把/usr/share/syslinux/下的pxelinux.0,menu.c32,memdisk都复制过去。
3. 不是引导Debian的话这步也大可不必做。
4. 最后这个是做IPMI电源管理的,我们也不需要可以忽略,

这个4个问题都是可以忽律的问题,要说最要关注的可能也只是第2点,

 

6、Cobbler首次同步

确认上述这些问题无误后,可以执行同步操作

 

Step1:首次同步

cobbler sync

task started: 2020-03-25_115417_sync

task started (id=Sync, time=Wed Mar 25 11:54:17 2020)

running pre-sync triggers

cleaning trees

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

copying bootloaders

trying hardlink /usr/share/syslinux/pxelinux.0 -> /var/lib/tftpboot/pxelinux.0

trying hardlink /usr/share/syslinux/menu.c32 -> /var/lib/tftpboot/menu.c32

trying hardlink /usr/share/syslinux/memdisk -> /var/lib/tftpboot/memdisk

copying distros to tftpboot

copying images

generating PXE configuration files

generating PXE menu structure

rendering TFTPD files

generating /etc/xinetd.d/tftp

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 shell triggers from /var/lib/cobbler/triggers/sync/post/*

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

running python trigger cobbler.modules.manage_genders

running python trigger cobbler.modules.scm_track

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

*** TASK COMPLETE ***

 

 

7、导入发行版

导入CentOS6.4、CentOS7.4 发行版,步骤是相同的不详细列明,以CenOS7.4导入为例:

 

Step1:挂载光盘iso

mount -t iso9660 -o loop,ro /dev/sr0 /mnt/

 

Step2:执行导入

cobbler import --name=CentOS7.4 --arch=x86_64 --path=/mnt

task started: 2020-03-25_141505_import
task started (id=Media import, time=Wed Mar 25 14:15:05 2020)
Found a candidate signature: breed=redhat, version=rhel6
Found a candidate signature: breed=redhat, version=rhel7
Found a matching signature: breed=redhat, version=rhel7
Adding distros from path /var/www/cobbler/ks_mirror/CentOS7.4-x86_64:
creating new distro: CentOS7.4-x86_64
trying symlink: /var/www/cobbler/ks_mirror/CentOS7.4-x86_64 -> /var/www/cobbler/links/CentOS7.4-x86_64
creating new profile: CentOS7.4-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/CentOS7.4-x86_64 for CentOS7.4-x86_64
processing repo at : /var/www/cobbler/ks_mirror/CentOS7.4-x86_64
need to process repo/comps: /var/www/cobbler/ks_mirror/CentOS7.4-x86_64
looking for /var/www/cobbler/ks_mirror/CentOS7.4-x86_64/repodata/*comps*.xml
Keeping repodata as-is :/var/www/cobbler/ks_mirror/CentOS7.4-x86_64/repodata
*** TASK COMPLETE ***
 

注意1:/var/www/cobbler/ks_mirror目录是复制所有发行版和存储库文件的地方,因此每个要导入的发行版需要5-10GB的空闲空间。
注意2:不需要指定-arch选项,因为它通常是自动检测的。一般是为了避免发现指定多个体系结构(比如,Fedora在完整的DVD上提供了i386包,cobbler在默认情况下将创建x86_64和i386发行版)。

 

8、验证操作

import导入光盘后,自动生成同名的distro(发行版, kernal+ramdisk),还有同名的默认profile(对应grub菜单的一个选项,可以理解为kickstart+distro),还有同名的YUM repo。

发行版对应的yum仓库和的kernal、ramdisk,cobbler会自动帮我们从光盘中抽取出来放到对应位置了。而pxe网络引导需要用到的文件(pxelinux.0、mune.c32、memdisk)前面cobbler sync的时候也从syslinux的目录中复制到tftp目录下。

网络引导的选项菜单cobbler也帮我们写好,里面有两个条目就是对应我们导入的发行版,而且ks文件也帮我我们准备好了,注意这个ks文件是/var/lib/cobbler/kickstarts/sample_end.ks(后文还会有描述)。

有了这一切pxe安装一个系统就不成问题了,其实生成这一切文件就是两步,cobbler sync+cobbler import,简单这两部就构建出一个多系统的pxe环境,这就是cobbler的便捷之处。

 

Step1:验证引导安装CentOS7

 

Step2:验证引导安装CentOS6

 

10、启用 Cobbler web

cobbler web的配置也并不复杂,直接使用digest认证即可。

htdigest -c /etc/cobbler/users.digest Cobbler cobbler

交互式输入对应密码

-C,创建一个数字摘要文件, /etc/cobbler/users.digest

Cobbler,realm,类似提示吧,一定要为Cobbler

cobbler,你的账号

注意,新版会要求https

 

10、定制Profile

前面说到默认的profile使用的是/var/lib/cobbler/kickstarts/sample_end.ks这个kickstart,它是一个text模式下安装的最小化linux只%package包组,虽然说系统装配我们不需要定制太多profile,一般安装一个最小化安装的系统然后使用ansible或puppt一类的工具类配置也完全可以。

 

但有时这个默认的kickstart也未必完全符合我们的需要,比如预定义一些我们要安装的包组或安装后执行的脚本,因此我们可以创建一个Profile导入我们自定义的Kickstart,和一些传递给内核的的参数

 

发布了4 篇原创文章 · 获赞 2 · 访问量 811
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 游动-白 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览