cobbler的安装配置(坑多,行人请闪避!!~~)

                cobbler的安装配置(坑多,行人请闪避!!~~)

如果没有记错的话,cobbler又称为修补匠、修鞋匠,据说,cobbler将网克技术降低到了初中生的水平(完全放p,好多的坑初中生跳进去人就找不见了好吧)。目前来说,主流的网刻也就cobbler和pxe+kickstart和onekeysrv这么三种技术路线,onekeysrv是Windows平台下的工具,不在Linux的讨论范围,pxe+kickstar相比cobbler是复杂一些,但效果是最好的一种方式,cobbler应该算是中等水平的一个工具。

以上工具一般使用在校园机房系统快速安装(对于系统的分区,文件系统类型等等方面要求比较低,因此可以满足需求)。

今天这个cobbler使用的实验是在虚拟机上做的,也就是搭建一个cobbler服务器,通过这个服务器给局域网内其他的没有安装系统的机器快速安装一个centos7系统。其中使用到的技术有tftp,httpd共享文件,kickstart自动应答,DHCP动态IP,rsync同步文件这些技术(重点说一下,仍然是基于网卡远程唤醒的pxe,也就是说该项目需要网卡和主板pxe功能的支持)。

当然了,在局域网的物理机上不仅需要网卡和主板的支持(pxe功能),还需要在自动安装前设置启动顺序为网卡,这一点切记!!!!~~~

环境准备:

cobbler的服务器:192.168.0.19,centos7版本,仓库为阿里云和阿里的epel源,虚拟机自带光驱。

开始安装cobbler服务器:

[cobbler]
name=cobbler
baseurl=http://dl.fedoraproject.org/pub/epel/7/x86_64/
enable=1
gpgcheck=0

1,以上内容保存在 /etc/yum.repos.d/cobbler.repo文件内。#添加cobbler源

2,yum install cobbler -y && systemctl enable cobblerd && systemctl start cobblerd #cobbler 的服务

3,yum install pykickstart cman fence-agents -y#检查cobbler的应答文件是否正确

4,cobbler get-loaders &&yum install xinetd tftp -y && systemctl enable xinetd && systemctl start xinetd#安装tftp,xinetd守护它。

5,yum install rsync -y && systemctl enable rsyncd && systemctl start rsyncd#同步工具

6,yum install autofs -y && systemctl enable autofs && systemctl start autofs#自动挂载服务,虚拟机用这个方便挂载光驱

7,yum install httpd -y && systemctl enable httpd && systemctl start httpd#共享文件用的httpd服务(其实在第二步的时候就已经作为依赖安装了,但是服务没有启动的哦)

运行命令 :cobbler check

[root@centos8 ~]# 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.

#/etc/cobbler/setting这个文件的server选项的值不能localhost,需要设置为本机IP或者本机域名,以确保别的所有机器可访问



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.

#这个文件/etc/cobbler/settings的关于pxe的选项,其中  next_server 的值应该为cobbler服务器的IP。



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

#/etc/xinetd.d/tftp这个文件的disable 那一行的值改为no,原来为yes,打开文件一眼就可以看到哦



4 : 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.

#cobbler服务需要一些文件,要么你安装syslinux然后忽略这些文件,要么执行命令cobbler get-loaders,这个是最简单的方法了。包括的文件为:pxelinux.0, menu.c32, elilo.efi, and yaboot



5 : enable and start rsyncd.service with systemctl

#安装并启动rsyncd服务



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

#deb包管理器没安装,可能某些软件安装的时候需要它。(自作多情了,这是centos,该项可以忽略)



7 : ksvalidator was not found, install pykickstart

#命令 ksvalidator没有找到,需要安装pykickstart



8 : 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

#默认密码设置太简单了,请使用openssl passwd -1 -salt 'random-phrase-here‘'your-password-here'’ 生成一个新密码,并将该密码放入/etc/cobbler/settings文件内的default_password_crypted的值。



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

#需要安装fencing tools,以管理optional,安装cman 或者fence-agents  并使用它们。

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

#以上九个选项修改后,重启cobblerd服务,并运行cobbler  sync命令以使改动生效。


九个提示项修改完毕后,修改两个文件

 

vim /etc/cobbler/settings

#将manage_dhcp的值改成1,这个是说使用cobbler服务接管管理DHCP

vim /etc/cobbler/dhcp.template

#这个文件是cobbler的DHCP模板文件,它修改了,DHCP这个服务的配置文件就修改了

subnet 192.168.0.0 netmask 255.255.255.0 {#表示网段
     option routers             192.168.0.1;#本网段的路由gate
     option domain-name-servers 61.128.114.166;#希望客户机的dns
     option subnet-mask         255.255.255.0;#子网掩码
     range dynamic-bootp        192.168.0.100 192.168.0.254;#DHCP的范围,100到254  192.168.0.  这些IP提供给客户端
     default-lease-time         21600;#默认租约时间(没什么好解释的,不懂就百度)
     max-lease-time             43200;#最长租约时间
     next-server                $next_server;

执行命令:

cobbler profile edit --name=CentOS-7.1-x86_64 --kopts='net.ifnames=0 biosdevname=0'

#修改内核,指定客户端网卡名称为eth0。

cobbler import --path=/misc/cd/ --name=CentOS-7.2-x86_64 --arch=x86_64

查看cobbler服务器的状态

[root@centos9 kickstarts]# cobbler profile report
Name                           : CentOS-7.2-x86_64
TFTP Boot Files                : {}
Comment                        : 
DHCP Tag                       : default
Distribution                   : CentOS-7.2-x86_64#前面定义的
Enable gPXE?                   : 0
Enable PXE Menu?               : 1
Fetchable Files                : {}
Kernel Options                 : {'biosdevname': '0', 'net.ifnames': '0'}
Kernel Options (Post Install)  : {}
Kickstart                      : /var/lib/cobbler/kickstarts/sample_end.ks#默认使用的应答文件
Kickstart Metadata             : {}
Management Classes             : []
Management Parameters          : <<inherit>>
Name Servers                   : []
Name Servers Search Path       : []
Owners                         : ['admin']
Parent Profile                 : 
Internal proxy                 : 
Red Hat Management Key         : <<inherit>>
Red Hat Management Server      : <<inherit>>
Repos                          : []
Server Override                : <<inherit>>
Template Files                 : {}
Virt Auto Boot                 : 1
Virt Bridge                    : xenbr0
Virt CPUs                      : 1
Virt Disk Driver Type          : raw
Virt File Size(GB)             : 5
Virt Path                      : 
Virt RAM (MB)                  : 512
Virt Type                      : kvm

[root@centos9 kickstarts]# cobbler profile
usage
=====
cobbler profile add
cobbler profile copy
cobbler profile dumpvars
cobbler profile edit
cobbler profile find
cobbler profile getks
cobbler profile list
cobbler profile remove
cobbler profile rename
cobbler profile report

#cobbler配置时所使用的参数,上一个命令就使用了最后一个参数。

编辑上面命令所查询出来的应答文件,
var/lib/cobbler/kickstarts/sample_end.ks

#Kickstart Configurator for cobbler by Jason Zhao
#platform=x86, AMD64, or Intel EM64T
#System  language
lang en_US
#System keyboard
keyboard us
#Sytem timezone
timezone Asia/Shanghai
#Root password
rootpw --iscrypted $default_password_crypted
#Use text mode install
text
#Install OS instead of upgrade
install
#Use NFS installation Media
url --url=$tree
#System bootloader configuration
bootloader --location=mbr
#Clear the Master Boot Record
zerombr
#Partition clearing information
clearpart --all --initlabel
#Disk partitioning information
part /boot --fstype xfs --size 1024 --ondisk sda
part swap --size 16384 --ondisk sda
part / --fstype xfs --size 1 --grow --ondisk sda
#System authorization infomation
auth  --useshadow  --enablemd5
#Network information
$SNIPPET('network_config')
#network --bootproto=dhcp --device=em1 --onboot=on
# Reboot after installation
reboot
#Firewall configuration
firewall --disabled
#SELinux configuration
selinux --disabled
#Do not configure XWindows
skipx
#Package install information
%pre
$SNIPPET('log_ks_pre')
$SNIPPET('kickstart_start')
$SNIPPET('pre_install_network_config')
# Enable installation monitoring
$SNIPPET('pre_anamon')
%end
 
%packages
@ base
@ core
sysstat
iptraf
ntp
lrzsz
ncurses-devel
openssl-devel
zlib-devel
OpenIPMI-tools
mysql
nmap
screen
%end
 
%post
systemctl disable postfix.service
%end

再一次执行cobbler sync 命令 

至此,cobbler服务器搭建完毕,可以新建一个虚拟机实验网克了。

新建的虚拟机需要内存至少1g,硬盘至少20g,这是centos7对于硬件的要求。如果不满足,会报各种错哦,比如,kernel offset disable这样的错误(内存不足的时候)。

最为重要的文件是应答文件,这个需要注意的地方太多啦,难点就在这,以后专开一篇详细介绍吧。
 

 

 

 

 

 

 

©️2020 CSDN 皮肤主题: 终极编程指南 设计师:CSDN官方博客 返回首页