Cobbler Quickstart Guide

关闭SELinux(可选)

在用cobbler批量安装系统前,关闭SELinux或将SELinux设置成“permissive”模式是个好主意,尤其是当你不熟悉SElinux排错或如何修改SElinux策略的时候。
Cobbler不断发展帮助管理新系统的技术,你操作系统上的SElinux策略有时会落后于cobbler提供的较新的设置,因此会导致AVC拒绝,破坏cobbler的功能。

安装EPEL

EPEL(Fedora Extra Packages for Enterprise Linux repository) 此仓库提供了许多不包含在正式Centos或红帽企业Linux仓库里的软件包。
下载适合你系统的RPM包来安装EPEL仓库。安装命令如下
yum install epel-release
补充:如果上述命令不管用,可以手动安装命令如下 参考1

CentOS和红帽5.x 
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-5.noarch.rpm
sudo rpm -Uvh epel-release-5*.rpm
CentOS和红帽6.x
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
sudo rpm -Uvh epel-release-6*.rpm
CentOS和红帽7.x
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo rpm -Uvh epel-release-7*.rpm

安装cobbler

通过yum安装cobbler
yum install cobbler

修改设置

在开启cobblerd服务前,我们需要修改设置。
对cobbler/cobblerd的设置存储在/etc/cobbler/settings中. 这个文件是一个YAML格式的数据文件,编辑这个文件要格外小心,错误的格式会使cobbler/cobblerd无法执行。

默认的加密密码

这个设置用来控制kickstart过程中新系统的root密码
default_password_crypted:” 1 bfI7WLZzPxXetL97LkScqJFxnW7KS1 openssl passwd -1
例如:

[root@nagios-client5-135-Python-Env ~]# openssl passwd -1
Password: oldboy
Verifying - Password: oldboy
$1$ntBqTEUh$TS.3bPNxHUVSfROOlDxuC/

Server和Next_Server

server选项设置cobbler server使用的IP地址。不要使用0.0.0.0 它不是监听地址。它是主机通过HTTP或TFTP协议连接到的cobbler server的IP地址

# default, localhost
server: 127.0.0.1       #需修改为192.168.76.135

next_server选项用在DCHP/PXE,作为TFTP服务器的IP地址。网络boot文件从TFTP服务器下载。通常和server选项的IP相同。

# default, localhost
next_server: 127.0.0.1  #需修改为192.168.76.135

DHCP 管理和DHCP server模板

为了PXE启动,你需要一个DHCP服务器分发来IP地址,将启动系统指向TFTP服务器,这样就可以从TFTP下载网络启动文件。Cobbler通过manage_dhcp选项帮你管理:

# default, don't manage
manage_dhcp: 0

修改manage_dhcp为1,这样cobbler就根据dhcp.template 产生dhcpd.conf. 这个模板包含在cobbler中,这个模板需要根据你的网络实际进行修改。

$ 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         21600;
     max-lease-time             43200;
     next-server                $next_server;
}

无论如何不要修改 “next-server $next_server;” 这行,这行指明了next_server设置是如何加进配置文件中的。

同时不要修改 #for dhcp_tag in $dhcp_tags.keys(): 以后的内容。

获取dhcpd.conf 配置语法参看 man dhcpd.conf

文件和目录

cobbler 大量使用/var 目录, /var/www/cobbler/ks_mirror目录是distribution和respository文件存放的地方。每个distribution需要5-10G的空闲空间。
如果安装cobbler的系统,包含/var分区的空闲空间不足,请参阅 参考2

启动并开机启用cobbler服务

一旦更新完你的设置,就可以启动服务。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命令的输出如下:

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

报错:

[root@nagios-client5-135-Python-Env ks_mirror]# cobbler check
Traceback (most recent call last):
  File "/usr/bin/cobbler", line 36, in <module>
    sys.exit(app.main())
  File "/usr/lib/python2.6/site-packages/cobbler/cli.py", line 657, in main
    rc = cli.run(sys.argv)
  File "/usr/lib/python2.6/site-packages/cobbler/cli.py", line 270, in run
    self.token         = self.remote.login("", self.shared_secret)
  File "/usr/lib64/python2.6/xmlrpclib.py", line 1199, in __call__
    return self.__send(self.__name, args)
  File "/usr/lib64/python2.6/xmlrpclib.py", line 1489, in __request
    verbose=self.__verbose
  File "/usr/lib64/python2.6/xmlrpclib.py", line 1253, in request
    return self._parse_response(h.getfile(), sock)
  File "/usr/lib64/python2.6/xmlrpclib.py", line 1392, in _parse_response
    return u.close()
  File "/usr/lib64/python2.6/xmlrpclib.py", line 838, in close
    raise Fault(**self._stack[0])
xmlrpclib.Fault: <Fault 1: "<class 'cobbler.cexceptions.CX'>:'login failed'">

解决方法是:
[root@nagios-client5-135-Python-Env ks_mirror]# service cobblerd restart
[root@nagios-client5-135-Python-Env ks_mirror]# cobbler check

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.
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.
3 : SELinux is enabled. Please review the following wiki page for details on ensuring cobbler works correctly in your SELinux environment:
    https://github.com/cobbler/cobbler/wiki/Selinux
4 : service dhcpd is not running
5 : change 'disable' to 'no' in /etc/xinetd.d/tftp
6 : 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.
7 : change 'disable' to 'no' in /etc/xinetd.d/rsync
8 : reposync is not installed, need for cobbler reposync, install/upgrade yum-utils?
9 : debmirror package is not installed, it will be required to manage debian deployments and repositories
10 : fencing tools were not found, and are required to use the (optional) power management features. install cman or fence-agents to use them

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

翻译

1. 编辑/etc/cobbler/settings文件,找到 server选项,修改为适当的ip地址,
   本实例配置ip为:192.168.76.135
2. 编辑/etc/cobbler/settings文件,找到 next_server选项,修改为适当的ip地址
   本实例配置ip为:192.168.76.135
3. 关闭SElinux 或配置SElinux环境使cobbler正常工作 
   解决办法 vim /etc/sysconfig/selinux 
4. dhcpd 没有运行   ==> service dhcpd start 
5. /etc/xinetd.d/tftp disable 改为no
6. /etc/xinetd.d/rsync 由disable 改为no
   修改配置文件同时service xinetd start
7. /var/lib/cobbler/loaders目录缺少网络启动加载器,可以运行'cobbler get-loaders' 来下载它?

8. reposync包未装,cobbler reposync需要此包,试试install/upgrade yum-utils? 
   解决办法: yum install yum-utils
9. 没有发现 debmirror包 此工具用来管理debian部署和仓库 
    解决办法: yum install debmirror
    vim /etc/debmirror.conf
    #注释掉@dists="sid"与@arches="i386即可
    #@dists="sid";
    #@arches="i386";
10. 没有发现 fencing 工具  ==》 fence 代理包,Cobbler 使用这个程序包执行电源管理活动         解决办法是 yum install fence-agents

按提示修改第6项 cobbler get-loaders时报错:

[root@nagios-client5-135-Python-Env loaders]# cobbler get-loaders
task started: 2016-02-08_214823_get_loaders
task started (id=Download Bootloader Content, time=Mon Feb  8 21:48:23 2016)
downloading http://cobbler.github.com/loaders/README to /var/lib/cobbler/loaders/README

Exception occured: <class 'urlgrabber.grabber.URLGrabError'>
Exception value: [Errno 12] Timeout on http://cobbler.github.com/loaders/README: (28, 'Operation too slow. Less than 1 bytes/sec transfered the last 300 seconds')
Exception Info:
  File "/usr/lib/python2.6/site-packages/cobbler/remote.py", line 87, in run
    rc = self._run(self)
   File "/usr/lib/python2.6/site-packages/cobbler/remote.py", line 181, in runner
    return self.remote.api.dlcontent(self.options.get("force",False), self.logger)
   File "/usr/lib/python2.6/site-packages/cobbler/api.py", line 751, in dlcontent
    return grabber.run(force)
   File "/usr/lib/python2.6/site-packages/cobbler/action_dlcontent.py", line 73, in run
    urlgrabber.grabber.urlgrab(src, filename=dst, proxies=proxies)
   File "/usr/lib/python2.6/site-packages/urlgrabber/grabber.py", line 618, in urlgrab
    return default_grabber.urlgrab(url, filename, **kwargs)
   File "/usr/lib/python2.6/site-packages/urlgrabber/grabber.py", line 985, in urlgrab
    return self._retry(opts, retryfunc, url, filename)
   File "/usr/lib/python2.6/site-packages/urlgrabber/grabber.py", line 886, in _retry
    r = apply(func, (opts,) + args, {})
   File "/usr/lib/python2.6/site-packages/urlgrabber/grabber.py", line 971, in retryfunc
    fo = PyCurlFileObject(url, filename, opts)
   File "/usr/lib/python2.6/site-packages/urlgrabber/grabber.py", line 1066, in __init__
    self._do_open()
   File "/usr/lib/python2.6/site-packages/urlgrabber/grabber.py", line 1360, in _do_open
    self._do_grab()
   File "/usr/lib/python2.6/site-packages/urlgrabber/grabber.py", line 1490, in _do_grab
    self._do_perform()
   File "/usr/lib/python2.6/site-packages/urlgrabber/grabber.py", line 1290, in _do_perform
    raise err

!!! TASK FAILED !!!

解决办法或是从这里下载文件

cd /var/lib/cobbler/loaders
cat filelist.txt
http://dgoodwin.fedorapeople.org/loaders/README
http://dgoodwin.fedorapeople.org/loaders/COPYING.elilo
http://dgoodwin.fedorapeople.org/loaders/COPYING.yaboot
http://dgoodwin.fedorapeople.org/loaders/COPYING.syslinux 
http://dgoodwin.fedorapeople.org/loaders/elilo-3.8-ia64.efi
http://dgoodwin.fedorapeople.org/loaders/yaboot-1.3.14-12
http://dgoodwin.fedorapeople.org/loaders/pxelinux.0-3.61
http://dgoodwin.fedorapeople.org/loaders/menu.c32-3.61
http://dgoodwin.fedorapeople.org/loaders/grub-0.97-x86.efi
http://dgoodwin.fedorapeople.org/loaders/grub-0.97-x86_64.efi
wget -i filelist.txt

检查问题并第一次Sync

$ cobbler check
一旦你检查完cobbler check的输出,就是时候开始第一次同步,这不是关键步骤,但是sync失败会给出配置错误信息
$ cobbler sync

导入你的第一个Distribution

cobbler对象关系

下载ISO镜像

下载并挂载镜像:
mount -t iso9660 -o loop,ro /dev/cdrom /mnt

运行import

你现在可以导入distribution,名称和路径参数是import命令所必须的 导入的镜像存在/var/www/cobbler/ks_mirror目录下

[root@nagios-client5-135-Python-Env dvd]# cobbler import --name=centos6.5 --path=/mnt/dvd
task started: 2016-02-08_222547_import
task started (id=Media import, time=Mon Feb  8 22:25:47 2016)
Found a candidate signature: breed=redhat, version=rhel6
Found a matching signature: breed=redhat, version=rhel6
Adding distros from path /var/www/cobbler/ks_mirror/centos6.5:
creating new distro: centos6.5-x86_64
trying symlink: /var/www/cobbler/ks_mirror/centos6.5 -> /var/www/cobbler/links/centos6.5-x86_64
creating new profile: centos6.5-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/centos6.5 for centos6.5-x86_64
processing repo at : /var/www/cobbler/ks_mirror/centos6.5
need to process repo/comps: /var/www/cobbler/ks_mirror/centos6.5
looking for /var/www/cobbler/ks_mirror/centos6.5/repodata/*comps*.xml
Keeping repodata as-is :/var/www/cobbler/ks_mirror/centos6.5/repodata
*** TASK COMPLETE ***

列出对象

import命令一般会创建distro和profile对

# 列出 distros
$ cobbler distro list

# 列出 profiles
$ cobbler profile list
cobbler profile report

创建一个system

有了distro和profile,你就可以创建一个系统(system), Profiles 被用于PXE boot,但是cobbler的大部分功能以system对象为中心。你给一个system的信息越多,cobbler就能自动为你做的越多
首先,根据import产生的profile来创建system,创建system,名称和profile是必须要的

$ cobbler system add --name=test --profile=centos6.5-x86_64  
$ cobbler system list
test
$ cobbler system report --name=test

创建system对象的主要原因是为了网络配置,当使用profile时,你被限制使用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

没有为每个网卡指定默认网关,分开增加网关:

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

Cobbler WebGUI

需要安装django和 cobbler-web
http://www.cnblogs.com/kittychentao2013/p/3311716.html

附录

http://cobbler.github.io/manuals/quickstart/
http://freeloda.blog.51cto.com/2033581/1320090
http://laoguang.blog.51cto.com/6013350/1097874
这个写的很好:http://7938217.blog.51cto.com/7928217/1671122

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值