分类: LINUX
2012-01-01 01:21:58
直奔Cobbler 的主题吧,这才是今天讨论的重点。 Cobbler 项目最初在 2008 年左右发布。是红帽软件 Fedora 项目社区的一个子项目。是新一代网络安装套件可以快速建立网络安装环境。降低大批量部署安装的难度。兄弟们苦逼的日子来啦啊。 原因你懂的!
cobbler官方网站:
Cobbler作为一个预备工具,使部署 RedHat/Centos/Fedora 系统更容易,同时也支持 Suse 和 Debian 系统的部署。(据说支持WINDOWS,还么测试哦。不过有个东西可以再LINUX上快速部署WIN系统。已经测试很成功。下回分享给大家)
它提供以下服务集成:
* PXE服务支持
* DHCP服务管理
* DNS服务管理
* Kickstart服务支持
* yum仓库管理
Cobbler客户端 Koan 支持虚拟机安装和操作系统重新安装。
Cobbler服务器部署:
1、 先 确保EPEL 仓库可用,如果不可用先安装 epel 包: 同时确保本地仓库也是可用的。 (确保机器可以联网)需要注意一点,注意 /var/www/cobbler 目录必须具有足够容纳 Linux 安装文件的空间 ( 移动,建软链接 ) 一本 5G 左右吧,但是你要同步不了 YUM 源了。这个后面再探讨。
# rpm -Uvh
或
# wget
# rpm -ivh epel-release-5-4.noarch.rpm
#yum list
2、安装 cobbler server 需要的的所有包:
# yum install cobbler httpd rsync tftp-server xinetd dhcp
修改 tftp:
# sed '/disable/s/no/yes/g' /etc/xinetd.d/tftp
# sed '/disable/s/no/yes/g' /etc/xinetd.d/rsync
# /etc/init.d/xinetd restart
3、启动 httpd 和 cobblerd ,并设置为开机自启动:
# service httpd start
# service cobblerd start
chkconfig httpd on
chkconfig dhcpd on
sbin/chkconfig xinetd on
sbin/chkconfig tftp on
sbin/chkconfig cobblerd on
4、检查 cobbler 相关配置:
下面是执行# 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.
#修改 server 选项为主机名或是 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.
#修改 next-server 对应的 IP 地址
3 : Must enable a selinux boolean to enable vital web services components, run: setsebool -P httpd_can_network_connect true
#修改 SELINUX setsebool -P httpd_can_network_connect true
4 : you need to set some SELinux content rules to ensure cobbler serves content correctly in your SELinux environment, run the following: /usr/sbin/semanage fcontext -a -t public_content_t "/tftpboot/.*" && /usr/sbin/semanage fcontext -a -t public_content_t "/var/www/cobbler/images/.*"
#修改 selinux 安全上下文标签
5 : you need to set some SELinux rules if you want to use cobbler-web (an optional package), run the following: /usr/sbin/semanage fcontext -a -t httpd_sys_content_rw_t "/var/lib/cobbler/webui_sessions/.*"
#修改 cobbler 对应的安全上下文标签
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.
#运行 cobbler get-loaders 以获取 PXE 启动需要的文件
7 : change 'disable' to 'no' in /etc/xinetd.d/tftp
#开启 tftp
8 : change 'disable' to 'no' in /etc/xinetd.d/rsync
#开启 rsync
9 : since iptables may be running, ensure 69, 80, and 25151 are unblocked
#确保 69,80,25151 这个几个端口没有 iptables 阻止
10 : debmirror package is not installed, it will be required to manage debian deployments and repositories
# debian的镜像包没有安装,如果不安装 debian ,这条可忽略
11 : 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
# 要求使用以上命令行创建新的密码
12 : fencing tools were not found, and are required to use the (optional) power management features. install cman or fence-agents to use them
# 没有安装 fencing 工具,
Restart cobblerd and then run 'cobbler sync' to apply changes.上面已经说的够清楚的了吧?你看懂了嘛?下面给出我的应对之策:
修正上面错误:
1)、 vi /etc/cobbler/settings
server: 192.168. 1.40 #设置 cobbler server 的 IP 地址
next-server: 192.168. 1 . 40 #设置 PXE server 的 IP 地址
manage_dhcp: 1 #开启管理 DHCP 服务
default_kickstart: /var/lib/cobbler/kickstarts/default.ks #设置默认的 kickstart 配置文件,用 system-config-kickstart (需要 图形 环境)生成 。直接写得了。
2)、关闭防火墙和 SElinux
3)、获取启动镜像
# cobbler get-loaders
4)、启动 tftp 和 rsync
vi /etc/xinetd.d/tftp
将disable = yes 改为: disable = no
vi /etc/xinetd.d/rsync
将disable = yes 改为: disable = no
重启xinetd 服务:
/etc/init.d/xinetd restart
5)、修改 DHCP 模板,确保 DHCP 分配的地址和 Cobbler 在同一网段 (这个可用不这么做。你可以直接架设一个 DHCP)
vi
/etc/cobbler/dhcp.template
# ******************************************************************
# Cobbler managed dhcpd.conf file
#
# generated from cobbler dhcp.conf template ($date)
# Do NOT make changes to /etc/dhcpd.conf. Instead, make your changes
# in /etc/cobbler/dhcp.template, as /etc/dhcpd.conf will be
# overwritten.
#
# ******************************************************************
ddns-update-style interim;
allow booting;
allow bootp;
ignore client-updates;
set vendorclass = option vendor-class-identifier;
subnet 192.168. 1 .0 netmask 255.255.255.0 {
option routers 192.168. 1 . 254 ;
# option domain-name-servers 192.168. 1.1 ;
option subnet-mask 255.255.255.0;
range dynamic-bootp 192.168. 1 .100 192.168. 1 .200;
filename "/pxelinux.0";
next-server $next_server;
default-lease-time 21600;
max-lease-time 43200;
}
#for dhcp_tag in $dhcp_tags.keys():
## group could be subnet if your dhcp tags line up with your subnets
## or really any valid dhcpd.conf construct ... if you only use the
## default dhcp tag in cobbler, the group block can be deleted for a
## flat configuration
# group for Cobbler DHCP tag: $dhcp_tag
group {
#for mac in $dhcp_tags[$dhcp_tag].keys():
#set iface = $dhcp_tags[$dhcp_tag][$mac]
host $iface.name {
hardware ethernet $mac;
#if $iface.ip_address:
fixed-address $iface.ip_address;
#end if
#if $iface.hostname:
option host-name "$iface.hostname";
#end if
#if $iface.subnet:
option subnet-mask $iface.subnet;
#end if
#if $iface.gateway:
option routers $iface.gateway;
#end if
filename "$iface.filename";
## Cobbler defaults to $next_server, but some users
## may like to use $iface.system.server for proxied setups
next-server $next_server;
## next-server $iface.next_server;
}
#end for
}
#end for
5、同步 cobbler 配置,使修改生效:
# cobbler sync
6、挂载 Linux 光盘 ,生成安装镜像:
# mount /dev/cdrom /mnt/
# cobbler import --path=/mnt/ --name= RHEL5.6-x86-64
7、 RPM 仓库管理 (根据需要自己决定吧)
相关阅读:
我们可以为cobbler 添加 RPM 仓库:
cobbler repo add --name= RHEL5.6-x86-64 --mirror=
cobbler repo add --name= EPEL5.-x86-64 --mirror=
同步仓库到本地:
cobbler reposync
也可以通过设置--mirror-locally=0 不下载到本地,而通过 kickstart server 去仓库下载 rpm 包。
添加计划任务,每天凌晨两点进行一次同步:
crontab -e
0 2 * * * cobbler reposync --tries=3 --no-fail
8、设置 profile 和 system (这个功能比较牛 P。需要深入研究哈)
profile可以理解为按角色进行分类。
cobbler profile add --name=webserver --distro=CentOS-5-i386 --repos=EPEL-5-i386 --kickstart=/var/lib/cobbler/kickstarts/webserver.ks
system是对待安装机器做具体设置,如设置主机名、 IP 地址、 hostname 等,这些设置根据 MAC 应用到具体机器上。
# cobbler system add --name=webserver1 --ip=192.168.0.110 --mac=00:0C:29:77:89:c7 --profile=webserver --kickstart=/var/lib/cobbler/kickstarts/webserver.ks --static=1
# cobbler system edit --name=webserver1 --dns-name=webserver1.grid.house.sina.com.cn --hostname=webserver1.grid.house.sina.com.cn
cobbler system edit --name=webserver1 --gateway=192.168.0.1 --subnet=255.255.255.0
cobbler system edit --name=webserver1 --interface=eth1 --static=0
可以通过访问 来查看真正的 kickstart 配置。
9、启动待安装的服务器,开始安装。
10、重新安装
yum install koan
koan --server=192.168. 1 . 40 --list=profiles
koan --replace-self --server=192.168. 1 . 40 --profile=webserver
reboot
11、设置 Cobbler web 界面
Cobbler web界面是一个很好的前端,非常容易管理很多 Cobbler 操作。可以用它列出和编辑distros, profiles, subprofiles, systems, repos and kickstart 文件。
安装Cobbler web :
yum install cobbler-web
Cobbler web界面访问地址:
1.40 /cobbler_web/
(192.168. 1.40 为Cobbler web server 地址)
设置用户名密码:
为已存在的用户重置密码:
htdigest /etc/cobbler/users.digest "Cobbler" cobbler
添加新用户:
htdigest /etc/cobbler/users.digest "Cobbler" username
设置/etc/cobbler/modules 如下:
[authentication]
module = authn_configfile
[authorization]
module = authz_allowall
重启Cobbler 服务:
service cobblerd restart
12、 Cobbler 命令说明
cobbler check - 核对当前设置是否有问题
cobbler list - 列出所有的 cobbler 元素
cobbler report - 详细的列出个元素
cobbler sync - 同步配置到 dhcp/pxe 和数据目录
cobbler reposync - 同步 yum 仓库
13、 Cobbler 配置文件说明
Cobbler配置文件存放在 /etc/cobbler 下。 /etc/cobbler/settings 为主配置文件;在 /etc/cobbler 下你还能看到 dhcp 、 dns 、 pxe 、 dnsmasq 的模板配置文件; /etc/cobbler/users.digest 为用于 web 访问的用户名密码配置文件; /etc/cobbler/modules.conf 为模块配置文件;/etc/cobbler/users.conf 为 Cobbler WebUI/Web service 授权配置文件。
Repo数据目录 /var/www/cobbler
导入的发行版,repos 镜像和 kickstart 文件都放置在 /var/www/cobbler 目录下。确保 /var 目录有足够的空间来存储这些文件。
images/ - 存储所有导入发行版的 Kernel 和 initrd 镜像用于远程网络启动
ks_mirror/ - 存储导入的发行版
repo_mirror/ - yum repos存储目录
/var/log/cobbler用于存放日志文件 /var/log/cobbler/cobbler.log
Cobbler数据目录 /var/lib/cobbler ,此目录存储和 Cobbler profiles 、 systems 、 distros 相关的配置。
configs/ - 此目录用于存储 distros 、 repos 、 systems 和 profiles 相关信息
backup/ - 备份目录
snippets/ - 用于放置一些可以在 kickstarts 导入的脚本小片段
triggers/ - 此目录用来放置一些可执行脚本
kickstarts/ - 此目录用来放置 kickstart 模板文件
与Puppet 整合进行配置管理: 这个功能后续在研究吧。先写到这里。感谢你的支持。
参考文献:
http://candon123.blog.51cto.com/704299/596302
http://hi.baidu.com/lenvol/blog/item/8e8b123d038f98fb55e72342.html