Cobbler 快速入门指南(翻译)

Stella981
• 阅读 1197

Cobbler 快速入门指南


由于Cobbler涉及各种各样的技术,Cobbler可能是一个稍微复杂的系统,但它在安装后几乎不需要任何配置就支持大量功能。在开始使用Cobbler之前,您应该具备PXE相关知识以及所选发行版的自动化安装方法。

本快速入门指南将重点介绍红帽kickstart流程,该流程非常成熟并经过了充分测试。未来我们将为其他发行版(如Ubuntu和SuSE)添加快速入门指南。下面的步骤将集中在Fedora上,但它们应该适用于任何基于Red Hat的发行版,例如RHEL,CentOS或Scientific Linux。有关您的特定操作系统版本的安装和先决条件的详细信息,请参阅安装补丁程序部分。

最后,本指南将只关注CLI应用程序。欲了解更多关于Cobbler Web界面的细节,请点击这里:Cobbler Web用户界面

Disable SELinux(optional)


在开始使用Cobbler之前,最好禁用SELinux或将其设置为“permissive”模式,特别是您不熟悉SELinux故障排除或修改SELinux策略时。

如果您想在运行cobblerd的系统上继续使用SELinux,请务必阅读本手册中的SELinux With Cobbler部分。

Installing Cobbler


安装只需通过yum完成:(需要安装epel源yum -y install epel-release

$ yum install cobbler

这将提供基本配置所有要求的文件。

Changing Settings


在启动cobblerd服务之前,您应该修改一些配置。

Cobbler/Cobbler的配置存储在/etc/cobbler/settings。此文件是YAML格式的数据文件,因此在编辑此文件时务必小心,因为格式不正确的文件将阻止Cobbler/Cobbler运行。

Default Encrypted Password

此设置用于为新系统指定root用户的密码。

default_password_crypted: "$1$bfI7WLZz$PxXetL97LkScqJFxnW7KS1"

您应该通过运行以下命令并将输出插入到上面的字符串中进行修改(请确保保存引号):

$ openssl passwd -1

Server and Next_Server

server选项设置将用于指定cobbler服务器的IP地址。**不要**使用0.0.0.0,因为它不是监听地址。这应该设置为cobbler服务器的可用IP,以便与例如HTTP和TFTP之类的协议联系cobbler服务器。

# default, localhost
server: 127.0.0.1

next_server选项用于指定DHCP/PXE下载网络引导文件的TFTP服务器的IP。通常,这将与服务器设置的IP相同。

# default, localhost
next_server: 127.0.0.1

DHCP Management and DHCP Server Template

为了进行PXE引导,您需要一个DHCP服务器来分发地址,并将引导系统指向TFTP服务器,以便在其中下载网络引导文件。Cobbler可以通过manage_dhcp设置管理DHCP服务器:

# default, don't manage
manage_dhcp: 0

将该设置更改为1,以便cobbler将根据cobbler附带的dhcp.template生成dhcpd.conf文件。根据您的网络设置对该模板进行修改:

$ vi /etc/cobbler/dhcp.template

对于大多数用途,您只需要修改该块:

subnet 192.168.1.0 netmask 255.255.255.0 {
     option routers             192.168.1.1;
     option domain-name-servers 192.168.1.210,192.168.1.211;
     option subnet-mask         255.255.255.0;
     filename                   "/pxelinux.0";
     default-lease-time         2.8.0;
     max-lease-time             43200;
     next-server                $next_server;
}

无论如何,请确保不要修改next-server $next_server; 行,因为$next_server的值将从/etc/cobbler/settings文件读取。这个文件是一个cheetah模板,所以一定不要修改这行后面的任何内容:

#for dhcp_tag in $dhcp_tags.keys():

彻底检查dhcpd.conf配置语法超出了本文档的范围,但有关更多信息,请参阅手册页以获取更多详细信息:

$ man dhcpd.conf

Files and Directory Notes


Cobbler多处使用了/var目录。该/var/www/cobbler/ks_mirror目录是存放所有发行版和repo文件的地方,因此,您将需要为每个导入的发行版准备5-10GB的可用空间。

如果您已将Cobbler安装到包含分区的可用空间非常小的系统上/var,请阅读手册中的“ 重新分配安装”部分,以了解如何正确地重新安装。

Starting and Enabling the Cobbler Service


在启动cobblerd服务之前,请确保httpd服务已经安装并启动:

$ yum install -y httpd
$ systemctl restart httpd
$ systemctl enable httpd

一旦你更新了以上设置,你就可以启动cobblerd服务了。Fedora现在使用systemctl来管理服务,但您仍然可以使用常规的init脚本:

$ systemctl start cobblerd.service
$ systemctl enable cobblerd.service
$ systemctl status cobblerd.service

or

$ service cobblerd start
$ chkconfig cobblerd on
$ service cobblerd status

如果一切顺利,你应该看到status command的输出如下所示:

cobblerd.service - Cobbler Helper Daemon
          Loaded: loaded (/lib/systemd/system/cobblerd.service; enabled)
          Active: active (running) since Sun, 17 Jun 2012 13:01:28 -0500; 1min 44s ago
        Main PID: 1234 (cobblerd)
          CGroup: name=systemd:/system/cobblerd.service
                  └ 1234 /usr/bin/python /usr/bin/cobblerd -F

Checking for Problems and Your First Sync


既然cobblerd服务已经启动并正在运行,那么是时候检查配置问题了。Cobbler的检查配置命令cobbler check会提出一些建议,但重要的是要记住,_这些主要只是建议_,可能不是基本功能的关键,请根据情况来进行解决所提出的问题。

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


....

....


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

请您在更改配置后务必按照其建议重新启动Cobblerd服务,以便更改生效。

一旦你解决了cobbler check提出的所有问题,现在是第一次同步的时候了。

$ cobbler sync
task started: 2012-06-24_224243_sync
task started (id=Sync, time=Sun Jun 24 22:42:43 2012)
running pre-sync triggers
...
rendering DHCP files
generating /etc/dhcp/dhcpd.conf
rendering TFTPD files
generating /etc/xinetd.d/tftp
cleaning link caches
running: find /var/lib/tftpboot/images/.link_cache -maxdepth 1 -type f -links 1 -exec rm -f '{}' ';'
received on stdout:
received on stderr:
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:
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 

假设一切顺利,没有错误报告,您就可以继续下一步了。

Importing Your First Distribution


Cobbler通过cobbler import命令自动添加发行版和配置文件。此命令可以(通常)自动检测您导入的分类类型和版本,并为您创建(一个或多个)具有正确设置的配置文件。

Download an ISO Image

为了导入发行版,您需要为您的发行版提供DVD ISO。**注:**您必须使用完整的DVD,而不是“Live CD”ISO。在这个例子中,我们将使用Fedora 28 x86_64 ISO,可以在这里下载

一旦下载这个文件,请将它挂载在某个目录下:

$ mount -t iso9660 -o loop,ro /path/to/isos/Fedora-Server-dvd-x86_64-28-1.1.iso /mnt

Run the Import

您现在已准备好导入的发行版。名称和路径参数是导入的唯一且必需选项:

$ cobbler import --name=fedora28 --arch=x86_64 --path=/mnt

--arch选项不需要指定,因为它通常会被自动检测。在这个例子中,我们这样做是为了防止找到多个体系结构(Fedora在完整的DVD上运行i386包,默认情况下,cobbler将创建x86_64和i386发行版)。

Listing Objects

如果在导入期间未报告错误,则可以查看有关在导入过程中创建的发行版和配置文件的详细信息。

$ cobbler distro list


$ cobbler profile list

导入命令通常会创建至少一个发行版/配置文件对,其名称与上面显示的名称相同。在某些情况下(例如,当找到基于xen的内核时),将创建多个发行/配置文件对。

Object Details

这个报告命令显示了Cobbler Object的细节:

$ cobbler distro report --name=fedora28-x86_64
Name                           : fedora28-x86_64
Architecture                   : x86_64
TFTP Boot Files                : {}
Breed                          : redhat
Comment                        :
Fetchable Files                : {}
Initrd                         : /var/www/cobbler/ks_mirror/fedora28-x86_64/images/pxeboot/initrd.img
Kernel                         : /var/www/cobbler/ks_mirror/fedora28-x86_64/images/pxeboot/vmlinuz
Kernel Options                 : {}
Kernel Options (Post Install)  : {}
Kickstart Metadata             : {'tree': 'http://@@http_server@@/cblr/links/fedora28-x86_64'}
Management Classes             : []
OS Version                     : fedora28
Owners                         : ['admin']
Red Hat Management Key         : <<inherit>>
Red Hat Management Server      : <<inherit>>
Template Files                 : {}

正如你在上面看到的那样,Kickstart Metadata字段(内部为--ksmeta)用于各种变量,并且包含关键的tree变量。这些在kickstart模板中用于指定可以找到安装文件的URL。

其他要注意的是:有些字段被设置为<< inherit >>。这意味着他们将使用默认设置(在settings文件中找到),或者(对于配置文件,子配置文件和系统)将使用父对象中配置的设置。

Creating a kickstart file (Options)


你已经成功导入了发行版,发行版镜像的内容会自动复制到/var/www/cobbler/ks_mirror目录下,现在你可以选择提供一个定制的ks文件(在CentOS安装完成后提供一个文件/root/anaconda-ks.cfg),你可以将/root/anaconda-ks.cfg复制到/var/lib/cobbler/kickstarts目录下;你也可以不用提供ks文件,因为cobbler默认提供了很多ks文件在/var/lib/cobbler/kickstarts目录下(默认使用sample_end.ks)。

如果你决定提供定制的ks文件,那么如下命令进行指定ks文件,系统将会更具你指定ks文件进行部署:

$ cobbler profile edit --name=fedora28-x86_64 --kickstart=/var/lib/cobbler/kickstarts/anaconda-ks.cfg

每次对cobbler做出修改后,你都应该执行命令cobbler sync。 至此,你已经可以开始批量部署操作系统了。 启动client并确保和cobbler server端在同一网络内即可开始自动部署。

Creating a System (Options)


现在您已拥有发行版和配置文件,您可以创建一个系统。配置文件可用于PXE启动,但Cobbler的大部分功能都围绕着system object。您可以提供更多的系统信息来给Cobbler使用。

首先,我们将根据导入期间创建的配置文件创建一个system object。创建system时,名称和配置文件是唯一且必需的两个字段:

$ cobbler system add --name=test --profile=fedora28-x86_64
$ cobbler system list
test
$ cobbler system report --name=test
Name                           : test
TFTP Boot Files                : {}
Comment                        :
Enable gPXE?                   : 0
Fetchable Files                : {}
Gateway                        :
Hostname                       :
Image                          :
IPv6 Autoconfiguration         : False
IPv6 Default Device            :
Kernel Options                 : {}
Kernel Options (Post Install)  : {}
Kickstart                      : <<inherit>>
Kickstart Metadata             : {}
LDAP Enabled                   : False
LDAP Management Type           : authconfig
Management Classes             : []
Management Parameters          : <<inherit>>
Monit Enabled                  : False
Name Servers                   : []
Name Servers Search Path       : []
Netboot Enabled                : True
Owners                         : ['admin']
Power Management Address       :
Power Management ID            :
Power Management Password      :
Power Management Type          : ipmitool
Power Management Username      :
Profile                        : fedora28-x86_64
Proxy                          : <<inherit>>
Red Hat Management Key         : <<inherit>>
Red Hat Management Server      : <<inherit>>
Repos Enabled                  : False
Server Override                : <<inherit>>
Status                         : production
Template Files                 : {}
Virt Auto Boot                 : <<inherit>>
Virt CPUs                      : <<inherit>>
Virt Disk Driver Type          : <<inherit>>
Virt File Size(GB)             : <<inherit>>
Virt Path                      : <<inherit>>
Virt RAM (MB)                  : <<inherit>>
Virt Type                      : <<inherit>>

创建system的主要原因是网络配置。使用配置文件时,仅限于DHCP接口,但通过system可以指定更多的网络配置选项。

所以现在我们将在192.168.1/24网络中设置一个简单的接口:

$ cobbler system edit --name=test --interface=eth0 --mac=00:11:22:AA:BB:CC --ip-address=192.168.1.100 --netmask=255.255.255.0 --static=1 --dns-name=test.mydomain.com

默认网关没有按每个NIC指定,因此只需单独添加(与主机名一同添加):

$ cobbler system edit --name=test --gateway=192.168.1.1 --hostname=test.mydomain.com

--hostname字段对应于本地系统名称,由hostname命令返回。--dns-name(可以根据NIC设置)应该对应于与该接口的IP绑定的DNS A记录。两者都不是必需的,但指定两者都是一个好习惯。某些高级功能(如配置管理)依赖于--dns-name字段进行系统记录查找。

无论何时编辑system object,cobbler都会执行所谓的"lite sync",它会重新生成关键文件,如TFTP根目录中的PXE引导文件。有一件事情不会执行服务管理操作,例如重新生成dhcpd.conf重新启动DHCP服务。在添加带有静态接口的系统后,执行完整的“cobbler sync”是一个好主意,以确保dhcpd.conf文件被正确的静态租约重写并且服务被重启。

官方链接


点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
Cobbler极简教程
1\.Cobbler介绍Cobbler是一个Linux服务器安装的服务,可以通过网络启动(PXE)的方式来快速安装、重装物理服务器和虚拟机,同时还可以管理DHCP,DNS等。Cobbler可以使用命令行方式管理,也提供了基于Web的界面管理工具(cobblerweb),还提供了API接口,
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
胖大海 胖大海
2年前
Cobbler批量部署原理
Cobbler可以干什么Cobbler是一个快速网络安装linux的服务,而且在经过调整也可以支持网络安装windows。使用简单的命令即可完成PXE网络安装环境的配置,同时还可以管理DHCP、DNS、TFTP、RSYNC以及yum仓库、
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这