CentOS 7.4下Cobbler安装详解
2018/03/13 09:19:53 来源:Linux社区 作者:jonauil

系统:
[root@cobbler ~]# more /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)

一、安装基础软件:
yum -y install wget net-tools curl epel-release
更新:
yum -y update
关闭iptables与selinux:
[root@cobbler ~]# vim /etc/selinux/config
SELINUX=disabled
重启后查看:
[root@cobbler ~]# sestatus
SELinux status: disabled

二、安装基础服务:
yum -y install dhcp httpd xinetd tftp-server rsync fence-agents pykickstart
设置开机启动
systemctl enable xinetd dhcpd httpd rsyncd
systemctl start xinetd dhcpd httpd rsyncd
1、安装cobbler
[root@cobbler ~]# yum -y install cobbler-web
设置开机启动:
systemctl enable cobblerd
systemctl start cobblerd

2、效验cobbler安装条件
[root@cobbler ~]# cobbler check
The following are potential configuration items that you may want to fix:

1 : comment out 'dists' on /etc/debmirror.conf for proper debian support
2 : comment out 'arches' on /etc/debmirror.conf for proper debian support

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

3、随机生成一个密码
[root@cobbler ~]# openssl passwd -1 -salt "cobbler" "huangzai"
$1$cobbler$zPOuqy9SLOb87DIQb3RbQ.

4、更改cobbler配置文件
[root@cobbler ~]# vim /etc/cobbler/settings
..........
default_password_crypted: "$1$cobbler$zPOuqy9SLOb87DIQb3RbQ." #第三步生成的密码
manage_dhcp: 1 #dhcp服务
manage_tftpd: 1 #xinetd服务
manage_rsync: 1 #rsyncd服务
next_server: 192.168.3.222 #替换成本机IP地址,dhcp服务地址
server: 192.168.3.222 #替换为本机IP地址,cobber服务地址
..........

5、更新load信息:
[root@cobbler ~]# cobbler get-loaders
task started: 2018-03-06_051434_get_loaders
task started (id=Download Bootloader Content, time=Tue Mar 6 05:14:34 2018)
downloading https://cobbler.github.io/loaders/README to /var/lib/cobbler/loaders/README
downloading https://cobbler.github.io/loaders/COPYING.elilo to /var/lib/cobbler/loaders/COPYING.elilo
downloading https://cobbler.github.io/loaders/COPYING.yaboot to /var/lib/cobbler/loaders/COPYING.yaboot
downloading https://cobbler.github.io/loaders/COPYING.syslinux to /var/lib/cobbler/loaders/COPYING.syslinux
downloading https://cobbler.github.io/loaders/elilo-3.8-ia64.efi to /var/lib/cobbler/loaders/elilo-ia64.efi
downloading https://cobbler.github.io/loaders/yaboot-1.3.17 to /var/lib/cobbler/loaders/yaboot
downloading https://cobbler.github.io/loaders/pxelinux.0-3.86 to /var/lib/cobbler/loaders/pxelinux.0
downloading https://cobbler.github.io/loaders/menu.c32-3.86 to /var/lib/cobbler/loaders/menu.c32
downloading https://cobbler.github.io/loaders/grub-0.97-x86.efi to /var/lib/cobbler/loaders/grub-x86.efi
downloading https://cobbler.github.io/loaders/grub-0.97-x86_64.efi to /var/lib/cobbler/loaders/grub-x86_64.efi
 TASK COMPLETE

6、设置tftp配置文件,‘disable'为'no'
[root@cobbler ~]# cat /etc/xinetd.d/tftp | grep -v '^#'
service tftp
{
disable = no
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -B 1380 -v -s /var/lib/tftpboot
per_source = 11
cps = 100 2
flags = IPv4
}

7、修改dhcp配置文件
[root@cobbler ~]# vim /etc/cobbler/dhcp.template
ddns-update-style interim;
allow booting;
allow bootp;
ignore client-updates;
set vendorclass = option vendor-class-identifier;
option pxe-system-type code 93 = unsigned integer 16;
subnet 192.168.3.0 netmask 255.255.255.0 {
option routers 192.168.3.222;
option domain-name-servers 202.96.209.5,202.96.209.133;
option subnet-mask 255.255.255.0;
range dynamic-bootp 192.168.3.60 192.168.3.100;
default-lease-time 21600;
max-lease-time 43200;
next-server $next_server;
class "pxeclients" {
match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
if option pxe-system-type = 00:02 {
filename "ia64/elilo.efi";
} else if option pxe-system-type = 00:06 {
filename "grub/grub-x86.efi";
} else if option pxe-system-type = 00:07 {
filename "grub/grub-x86_64.efi";
} else if option pxe-system-type = 00:09 {
filename "grub/grub-x86_64.efi";
} else {
filename "pxelinux.0";
}
}

}
.........

三、导入镜像进行配置
1、上传iso镜像到服务器
2、创建文件夹
mkdir -p /data/centos7.0
3、将镜像文件挂载或copy到文件夹
[root@cobbler ~]# mount /dev/cdrom /data/centos7.0/

4、把挂载光盘镜像的mnt目录中的内容导入到cobbler
[root@cobbler ~]# cobbler import --path=/data/centos7.0/ --name=cent7.0
task started: 2018-03-06_055628_import
task started (id=Media import, time=Tue Mar 6 05:56:28 2018)
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/cent7.0:
creating new distro: cent7.0-x86_64
trying symlink: /var/www/cobbler/ks_mirror/cent7.0 -> /var/www/cobbler/links/cent7.0-x86_64
creating new profile: cent7.0-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/cent7.0 for cent7.0-x86_64
processing repo at : /var/www/cobbler/ks_mirror/cent7.0
need to process repo/comps: /var/www/cobbler/ks_mirror/cent7.0
looking for /var/www/cobbler/ks_mirror/cent7.0/repodata/comps.xml
Keeping repodata as-is :/var/www/cobbler/ks_mirror/cent7.0/repodata
 TASK COMPLETE

5、cobber report查看导入信息
[root@cobbler ~]# cobbler report
distros:

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

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

profiles:

Name : cent7.0-x86_64
TFTP Boot Files : {}
Comment :
DHCP Tag : default
Distribution : cent7.0-x86_64
Enable gPXE? : 0
Enable PXE Menu? : 1
Fetchable Files : {}
Kernel Options : {}
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

Name : rhel7.0-x86_64
TFTP Boot Files : {}
Comment :
DHCP Tag : default
Distribution : rhel7.0-x86_64
Enable gPXE? : 0
Enable PXE Menu? : 1
Fetchable Files : {}
Kernel Options : {}
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

6、查看导入列表
[root@cobbler ~]# cobbler distro list
cent7.0-x86_64
rhel7.0-x86_64

7、同步所有cobber配置
[root@cobbler ~]# cobbler sync
task started: 2018-03-06_061140_sync
task started (id=Sync, time=Tue Mar 6 06:11:40 2018)
running pre-sync triggers
cleaning trees
removing: /var/www/cobbler/images/cent7.0-x86_64
removing: /var/lib/tftpboot/pxelinux.cfg/default
removing: /var/lib/tftpboot/grub/images
removing: /var/lib/tftpboot/grub/efidefault
removing: /var/lib/tftpboot/images/cent7.0-x86_64
removing: /var/lib/tftpboot/s390x/profile_list
copying bootloaders
copying: /var/lib/cobbler/loaders/pxelinux.0 -> /var/lib/tftpboot/pxelinux.0
copying: /var/lib/cobbler/loaders/menu.c32 -> /var/lib/tftpboot/menu.c32
copying: /var/lib/cobbler/loaders/yaboot -> /var/lib/tftpboot/yaboot
copying: /usr/share/syslinux/memdisk -> /var/lib/tftpboot/memdisk
copying: /var/lib/cobbler/loaders/grub-x86.efi -> /var/lib/tftpboot/grub/grub-x86.efi
copying: /var/lib/cobbler/loaders/grub-x86_64.efi -> /var/lib/tftpboot/grub/grub-x86_64.efi
copying distros to tftpboot
copying files for distro: cent7.0-x86_64
trying hardlink /var/www/cobbler/ks_mirror/cent7.0/images/pxeboot/vmlinuz -> /var/lib/tftpboot/images/cent7.0-x86_64/vmlinuz
trying hardlink /var/www/cobbler/ks_mirror/cent7.0/images/pxeboot/initrd.img -> /var/lib/tftpboot/images/cent7.0-x86_64/initrd.img
copying images
generating PXE configuration files
generating PXE menu structure
copying files for distro: cent7.0-x86_64
trying hardlink /var/www/cobbler/ks_mirror/cent7.0/images/pxeboot/vmlinuz -> /var/www/cobbler/images/cent7.0-x86_64/vmlinuz
trying hardlink /var/www/cobbler/ks_mirror/cent7.0/images/pxeboot/initrd.img -> /var/www/cobbler/images/cent7.0-x86_64/initrd.img
Writing template files for cent7.0-x86_64
rendering TFTPD files
generating /etc/xinetd.d/tftp
processing boot_files for distro: cent7.0-x86_64
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.scm_track
running shell triggers from /var/lib/cobbler/triggers/change/
 TASK COMPLETE

8、重启所有服务

9、安装成功,客户端启动:

10、修改cobber登录密码:
[root@cobbler ~]# htdigest /etc/cobbler/users.digest "Cobbler" cobbler
Changing password for user cobbler in realm Cobbler
New password:
Re-type new password:

11、打开cobber web

cobblerd启动报错
[root@cobbler conf.d]# systemctl status cobblerd
● cobblerd.service - Cobbler Helper Daemon
Loaded: loaded (/usr/lib/systemd/system/cobblerd.service; enabled; vendor preset: disabled)
Active: inactive (dead) since Mon 2018-03-12 07:09:51 EDT; 18s ago
Process: 1644 ExecStartPost=/usr/bin/touch /usr/share/cobbler/web/cobbler.wsgi (code=exited, status=0/SUCCESS)
Process: 1643 ExecStart=/usr/bin/cobblerd -F (code=exited, status=0/SUCCESS)
Main PID: 1643 (code=exited, status=0/SUCCESS)

Mar 12 07:09:51 cobbler cobblerd[1643]: Traceback (most recent call last):
Mar 12 07:09:51 cobbler cobblerd[1643]: File "/usr/bin/cobblerd", line 75, in main
Mar 12 07:09:51 cobbler cobblerd[1643]: api = cobbler_api.BootAPI(is_cobblerd=True)
Mar 12 07:09:51 cobbler cobblerd[1643]: File "/usr/lib/python2.7/site-packages/cobbler/api.py", ...it__
Mar 12 07:09:51 cobbler cobblerd[1643]: "authn_configfile"
Mar 12 07:09:51 cobbler cobblerd[1643]: File "/usr/lib/python2.7/site-packages/cobbler/api.py", ...file
Mar 12 07:09:51 cobbler cobblerd[1643]: return module_loader.get_module_from_file(section,name,f...ack)
Mar 12 07:09:51 cobbler cobblerd[1643]: File "/usr/lib/python2.7/site-packages/cobbler/modulelo...file
Mar 12 07:09:51 cobbler cobblerd[1643]: raise CX(("Failed to load module for %s/%s") % (categor...ld))
Mar 12 07:09:51 cobbler cobblerd[1643]: CX: 'Failed to load module for authentication/module'
Hint: Some lines were ellipsized, use -l to show in full.
解决方法:
[root@cobbler ~]# vim /etc/cobbler/modules.conf
[authentication]
module = authn_configfile
重启cobber服务
systemctl restart cobblerd

效验报错:
[root@cobbler ~]# cobbler check
httpd does not appear to be running and proxying cobbler, or SELinux is in the way. Original traceback:
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/cobbler/cli.py", line 251, in check_setup
s.ping()
File "/usr/lib64/python2.7/xmlrpclib.py", line 1233, in call
return self.send(self.name, args)
File "/usr/lib64/python2.7/xmlrpclib.py", line 1587, in request
verbose=self.verbose
File "/usr/lib64/python2.7/xmlrpclib.py", line 1273, in request
return self.single_request(host, handler, request_body, verbose)
File "/usr/lib64/python2.7/xmlrpclib.py", line 1321, in single_request
response.msg,
ProtocolError: <ProtocolError for 127.0.0.1:80/cobbler_api: 503 Service Unavailable>

解决方法:
关闭selinux:
[root@cobbler ~]# vim /etc/selinux/config
SELINUX=disabled
重启服务器

本文永久更新链接地址https://www.linuxidc.com/Linux/2018-03/151347.htm


5

本栏最新