聊一聊 Cobbler 3.x 部署实战

系统 Linux
在大批量安装Linux服务器系统时,如果手动安装,则需要花费大量的时间,而使用PXE安装时,会相对轻松很多。

[[439442]]

在大批量安装Linux服务器系统时,如果手动安装,则需要花费大量的时间,而使用PXE安装时,会相对轻松很多。

Cobbler是一个将PXE整套流程合在一起的工具,可以帮我们快速的搭建好PXE安装所需的各种工具,并且在配置中也更方便。

本文将介绍如何部署Cobbler环境,并且安装CentOS7、Ubuntu18作为测试。

文章结构

  • 安装并配置Cobbler
  • 安装Ubuntu18、CentOS7测试
  • 常用的操作及报错处理

部署前的准备

一台CentOS8的系统,作为cobbler服务端

  • 待安装的测试机
  • 建议使用VMWare的虚机,启动比较快,测试方便

详细步骤

Cobbler安装与配置

在准备好的CentOS8中,按如下步骤操作:

系统的相关优化配置

- 关闭selinux

  1. vim /etc/selinux/config 
  2.  
  3. SELINUX=disabled 

调整后重启一下系统

- 关闭firewalld

  1. systemctl stop firewalld && systemctl disable firewalld 

安装Cobbler及相关的软件包

  1. dnf install epel-release -y && dnf module enable cobbler -y && dnf install cobbler tftp dhcp-server cobbler-web yum-utils pykickstart debmirror fence-agents vim wget -y 

生成一个加密密码,安装后的系统会将其作为root密码使用

  1. # 按照提示输入两次想要设置的密码,并将生成的加密密码保存好 
  2. # 以下命令生成的加密密码的明文是 “password” 
  3. openssl passwd -1 
  4. Password:  
  5. Verifying - Password:  
  6. $1$rLza5zNH$xLKFqWoK32/IA/zslG3Up0 

修改cobbler的主配置文件 /etc/cobbler/setting

  1. # 将 server 和 next_server 修改为本机的IP地址 
  2. server: 10.1.1.1 
  3. next_server: 10.1.1.1 
  4.  
  5. manage_tftpd: 1  
  6. manage_dhcp: 1 
  7.  
  8. # 这里填写上一步生成的加密密码 
  9. default_password_crypted: $1$rLza5zNH$xLKFqWoK32/IA/zslG3Up0 

修改DHCP的配置模板 /etc/cobbler/dhcp.template

dhcp的模板内容较多,仅修改下面设置中的部分内容即可

  1. # 仅修改以下部分配置即可,根据自己的测试环境修改 网关与待分配的IP 
  2. subnet 10.1.1.0 netmask 255.255.255.0 { 
  3.     option routers             10.1.1.254; 
  4.     option domain-name-servers 223.5.5.5; 
  5.     option subnet-mask         255.255.255.0; 
  6.     range dynamic-bootp        10.1.1.100 10.1.1.200; 
  7.     filename   "/pxelinux.0"
  8.     default-lease-time         21600; 
  9.     max-lease-time             43200; 
  10.     next-server                $next_server; 

编辑 /etc/cobbler/tftpd.template

  1. defaultoff 
  2. # description: The tftp server serves files using the trivial file transfer \ 
  3. #       protocol. The tftp protocol is often used to boot diskless \ 
  4. #       workstations, download configuration files to network-aware printers, \ 
  5. #       and to start the installation process for some operating systems. 
  6. service tftp 
  7.       disable                 = no 
  8.       socket_type             = dgram 
  9.       protocol                = udp 
  10.       wait                    = yes 
  11.       user                    = $user 
  12.       server                  = $binary 
  13.       server_args             = -B 1380 -v -s $args 
  14.       per_source              = 11 
  15.       cps                     = 100 2 
  16.       flags                   = IPv4 

开启相关的服务

  1. systemctl restart cobblerd tftp dhcp && systemctl enable cobblerd tftp dhcpd 

执行命令 cobbler get-loaders下载相关的loader组件

执行 cobbler check检查配置,并解决出现的问题

  1. vim /etc/debmirror.conf 
  2.  
  3. # 注释掉以下两行 
  4. #@dists="sid"
  5. #@arches="i386"

反复执行 cobbler check,将问题处理完成

执行 cobbler sync 生成配置文件并自动重启相关的服务

配置Ubuntu18与CentOS7的镜像

下载镜像

  1. # 下载 ubuntu18 镜像 
  2. # 注意要从如下链接下载,不要在各大镜像源下载带 “live” 字样的系统,有 “live” 字样的操作系统不适用于 seed 文件安装 
  3. wget http://cdimage.ubuntu.com/ubuntu/releases/bionic/release/ubuntu-18.04.5-server-amd64.iso 
  4.  
  5. # 下载 centos7镜像 
  6. wget http://mirrors.163.com/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-Minimal-2009.iso 

挂载镜像到本地

  1. mkdir -p /mnt/ubuntu18; mkdir -pv /mnt/centos7 
  2.  
  3. mount -t iso9660 -o loop,ro /root/ubuntu-18.04.5-server-amd64.iso /mnt/ubuntu18 
  4. mount -t iso9660 -o loop,ro /root/CentOS-7-x86_64-Minimal-2009.iso /mnt/centos7 

导入

  1. cobbler import --name=ubuntu1804 --path=/mnt/ubuntu18 
  2.  
  3. cobbler import --name=centos7 --path=/mnt/centos7 

创建system

  1. # 获取到profile的名称 
  2. cobbler profile list  
  3.  
  4. # 上一步获取的 profile 名称填到 --profile 后面 
  5. cobbler system add --name=ubuntu1804 --profile=ubuntu1804-x86_64 
  6. cobbler system add --name=centos7 --profile=centos7-x86_64 

编辑 ubuntu18的seed文件

打开cobbler的web控制台:https://ip/cobbler_web,用户名密码均为 cobbler

点击左侧的“Templates”,Edit 右侧的 sample.seed,复制全部内容,并新建一个Template文件,可命名为 ubuntu1804.seed

这里仅列出需要修改的地方

  1. # 我这里调整了文件系统格式为 ext4,分区为自动,也可根据自己的情况调整 
  2. d-i partman-auto/disk string /dev/sda 
  3. d-i partman-auto/choose_recipe select atomic 
  4. d-i partman-auto/method string regular 
  5. d-i partman-lvm/device_remove_lvm boolean true 
  6. d-i partman-md/device_remove_md boolean true 
  7. d-i partman-partitioning/confirm_write_new_label boolean true 
  8. d-i partman/choose_partition select finish 
  9. d-i partman/confirm boolean true 
  10. d-i partman/confirm_nooverwrite boolean true 
  11. d-i partman/default_filesystem string ext4 
  12. d-i partman/mount_style select uuid 
  13.  
  14.  
  15. # 该命令表示可以从 cobbler 的指定目录下载 os 初始化的脚本,该脚本用于配置 IP 地址或其他的操作 
  16. # 该脚本可以放到 /var/www/cobbler/pub/commands/ 内 
  17. d-i preseed/late_command string wget -P /target/root http://$http_server/cblr/pub/commands/ubuntu18_os_start.sh; \ 
  18.    uname -a 

编辑centos的kickstart文件

打开cobbler的web控制台:https://ip:cobbler_web,用户名密码均为 cobbler

点击左侧的“Templates”,Edit 右侧的 default.ks,复制全部内容,并新建一个Template文件,可命名为 centos7.ks

这里仅列出需要修改的地方

  1. # Partition clearing information 
  2. # xfs 文件系统,boot 分配1g,其余分给 / ,没有 swap分区 
  3. clearpart --all --initlabel 
  4. part /boot --asprimary --fstype="xfs" --ondisk=sda  --size=1024 
  5. part / --asprimary --fstype="xfs" --ondisk=sda  --grow --size=5000 
  6.  
  7. # 下载 os 初始化的脚本 
  8. curl -o /root/centos7_os_start.sh http://$server/cblr/pub/commands/centos7_os_start.sh 

其他配置

完成以上步骤后,cobbler sync 同步一下配置文件

ubuntu 18需要执行如下命令,否则 PXE启动时会报识别光驱的错误,每次 cobbler sync 后,都需要执行如下命令

  1. cp /mnt/ubuntu18/install/netboot/ubuntu-installer/amd64/initrd.gz /var/lib/tftpboot/images/ubuntu1804-x86_64/ 

安装测试

创建一台虚机,注意网卡要和Cobbler在同一个VLAN或广播域,该网段内不要有其他的DHCP服务器

注意:内存要4G或以上,否则会安装不成功

开机启动

选择 ubuntu18或centos安装即可,ubuntu18的 hwe 版本的内核比较新,对硬件支持更好,可根据需求选择

等待自动安装完成

日常操作与问题解决

cobbler sync 命令

该命令比较常用,很重要,执行后会将 /etc/cobbler/ 下的 xxx.template 文件解析后写到各自的配置文件或 tftp 根目录以及 /var/www/cobbler 中

执行后会重启部分服务,例如 dhcpd

centos8中安装cobbler和 centos7安装的差异

centos8 epel源中的cobbler是3.x版本比较新,建议使用

centos7安装cobbler在执行 get-loaders时会报错,但是多次执行可能会成功

PXE 启动时报 PXE-E3B TFTP Error

查看一下 /var/lib/tftpboot/grub ,可能没有 grub.0,如果没有的话,执行一下 /usr/share/cobbler/bin/mkgrub.sh ,会有报错,但先不用管

到 /var/lib/cobbler/loaders/ 看一下,确认是否有 grub 文件夹,如果有的话,应该就没问题了,再 cobbler sync 一下就可以了

参考文档:

· 官方文档-Quickstart

· https://asciinema.org/a/351156

· https://askubuntu.com/questions/1235723/automated-20-04-server-installation-using-pxe-and-live-server-image

· https://wiki.ubuntu.com/UEFI/PXE-netboot-install 

· https://ubuntu.com/server/docs/install/netboot-amd64

 

责任编辑:武晓燕 来源: 新钛云服
相关推荐

2021-08-26 05:01:40

0x3f 数组算法

2021-02-20 06:15:00

项目SpringBoot热部署

2023-09-22 17:36:37

2021-01-28 22:31:33

分组密码算法

2020-05-22 08:16:07

PONGPONXG-PON

2018-06-07 13:17:12

契约测试单元测试API测试

2023-05-15 08:38:58

模板方法模式

2022-08-08 08:25:21

Javajar 文件

2019-02-13 14:15:59

Linux版本Fedora

2018-11-29 09:13:47

CPU中断控制器

2021-02-06 08:34:49

函数memoize文档

2021-08-04 09:32:05

Typescript 技巧Partial

2021-01-29 08:32:21

数据结构数组

2022-11-01 08:46:20

责任链模式对象

2023-07-06 13:56:14

微软Skype

2020-10-15 06:56:51

MySQL排序

2023-10-24 15:56:23

2020-09-08 06:54:29

Java Gradle语言

2020-06-28 09:30:37

Linux内存操作系统

2020-08-12 08:34:16

开发安全We
点赞
收藏

51CTO技术栈公众号