使用cobbler批量安装linux系统
第一 cobber 简介
Cobbler 可使用 kickstart 模板。基于 Red Hat 或 Fedora 的系统使用 kickstart 文件来自动化安装流程。通过使用模板,您就会拥有基本的 kickstart 模板,然后定义如何针对一种配置文件或机器配置而替换其中的变量。例如,一个模板可能包含两个变量 $domain和 $machine_name。在 Cobbler 配置中,一个配置文件指定 domain=mydomain.com,并且每台使用该配置文件的机器在machine_name 变量中指定其名称。该配置文件中的所有机器都使用相同的 kickstart 安装且针对 domain=mydomain.com 进行配置,但每台机器拥有其自己的机器名称。您仍然可以使用 kickstart 模板在不同的域中安装其他机器并使用不同的机器名称。
工作原理:
Server端:
第一步,启动Cobbler服务
第二步,进行Cobbler错误检查,执行cobbler check命令
第三步,进行配置同步,执行cobbler sync命令
第四步,复制相关启动文件文件到TFTP目录中
第五步,启动DHCP服务,提供地址分配
第六步,DHCP服务分配IP地址
第七步,TFTP传输启动文件
第八步,Server端接收安装信息
第九步,Server端发送ISO镜像与Kickstart文件
Client端:
第一步,客户端以PXE模式启动
第二步,客户端获取IP地址
第三步,通过TFTP服务器获取启动文件
第四步,进入Cobbler安装选择界面
第五步,客户端确定加载信息
第六步,根据配置信息准备安装系统
第七步,加载Kickstart文件
第八步,传输系统安装的其它文件
第九步,进行安装系统
第二选择yum源
2.1 选择 epel源
Centos5 32位: rpm -Uvh http://mirrors.ustc.edu.cn/fedora/epel/5/i386/epel-release-5-4.noarch.rpm
Centos5 64位: rpm -Uvh http://mirrors.ustc.edu.cn/fedora/epel/5/x86_64/epel-release-5-4.noarch.rpm
Centos6 32位: rpm -Uvh 'http://mirrors.ustc.edu.cn/fedora/epel/6/i386/epel-release-6-7.noarch.rpm'
Centos6 64位: rpm -Uvh 'http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-7.noarch.rpm
2.2 下载安装yum源
[root@localhost src]# wget http://mirrors.ustc.edu.cn/fedora/epel/5/x86_64/epel-release-5-4.noarch.rpm
--2015-06-29 10:13:48-- http://mirrors.ustc.edu.cn/fedora/epel/5/x86_64/epel-release-5-4.noarch.rpm
Resolving mirrors.ustc.edu.cn... 202.141.176.110, 2001:da8:d800:95::110
Connecting to mirrors.ustc.edu.cn|202.141.176.110|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 12232 (12K) [application/x-redhat-package-manager]
Saving to: `epel-release-5-4.noarch.rpm'
100%[====================================================================================================>] 12,232 --.-K/s in 0.02s
2015-06-29 10:13:52 (484 KB/s) - `epel-release-5-4.noarch.rpm' saved [12232/12232]
[root@localhost src]# ls
epel-release-5-4.noarch.rpm
[root@localhost src]# rpm -ivh epel-release-5-4.noarch.rpm
warning: epel-release-5-4.noarch.rpm: Header V3 DSA signature: NOKEY, key ID 217521f6
Preparing... ########################################### [100%]
1:epel-release ########################################### [100%]
[root@localhost src]#
2.3 安装cobber
安装软件 yum install cobbler tftp tftp-server xinetd dhcp httpd rsync 安装cobbler
[root@localhost src]# yum install pykickstart debmirror python-ctypes cman -y 安装cobbler所需的软件包
2.4 配置cobbler
2.4.1 设置httpd服务
[root@localhost src]# cat /etc/httpd/conf.d/wsgi.conf
# NOTE: mod_wsgi can not coexist in the same apache process as
# mod_wsgi_python3. Only load if mod_wsgi_python3 is not
# already loaded.
<IfModule !wsgi_module>
LoadModule wsgi_module modules/mod_wsgi.so # 取消前面的注释
</IfModule>
[root@localhost src]# /etc/init.d/httpd restart
Stopping httpd: [FAILED]
Starting httpd: [ OK ]
[root@localhost src]# chkconfig httpd on
2.4.2 设置tftp
[root@localhost src]# cat /etc/cobbler/tftpd.template
# default: off
# description: The tftp server serves files using the trivial file transfer \
# protocol. The tftp protocol is often used to boot diskless \
# workstations, download configuration files to network-aware printers, \
# and to start the installation process for some operating systems.
service tftp
{
disable = no ##将no改为no
socket_type = dgram
protocol = udp
wait = yes
user = $user
server = $binary
server_args = -B 1380 -v -s $args
per_source = 11
cps = 100 2
flags = IPv4
}
[root@localhost src]# cat /etc/xinetd.d/rsync
# default: off
# description: The rsync server is a good addition to an ftp server, as it \
# allows crc checksumming etc.
service rsync
{
disable = no ##将yes改为no
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
[root@localhost src]# /etc/init.d/xinetd start
[root@localhost src]# vim /etc/debmirror.conf
注释
#@dists="sid";
#@arches="i386";
2.4.3 创建用户密码
[root@localhost src]# openssl passwd -1 -salt 'osyunwei' '123456'
$1$osyunwei$sEV8iwXXuR4CqzLXyLnzm
修改 vim /etc/cobber/settings
default_kickstart: /var/lib/cobbler/kickstarts/default.ks
default_password_crypted: "$1$osyunwei$sEV8iwXXuR4CqzLXyLnzm0"
manage_dhcp: 1
next_server: 192.168.209.128
server: 192.168.209.128
2.4.4 搭建dhcp服务
[root@localhost ~]# grep -v "#" /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.209.0 netmask 255.255.255.0 {
option routers 192.168.209.1;
option domain-name-servers 8.8.8.8,8.8.4.4; 注: 这里多个ip时 使用逗号分开 ,已陷坑多时
option subnet-mask 255.255.255.0;
range dynamic-bootp 192.168.209.100 192.168.209.254;
filename "/pxelinux.0";
default-lease-time 21600;
max-lease-time 43200;
next-server $next_server;
}
[root@localhost ks_mirror]# cat /etc/sysconfig/dhcpd
# Command line options here
DHCPDARGS=eth0
启动dhcp 使用cobber sync 就可以启动dhcp
同步cobber sync 就可以加载dhcp服务启动了
cobbler check 检查cobbler 配置是否错误
注:如果提示'cobbler get-loaders' 的一些错误 可以忽略,暂时没发现有什么影响
以为执行cobbler get-loaders 这个命令 回包HTTP 404 也不知是不是网站倒闭了怎样
或许换centos6 可以试试
确保这些服务都开启就可以进行测试安装了,
/etc/init.d/xinted start
/etc/init.d/httpd start
/etc/init.d/cobber start
2.4.5 创建镜像站点
挂载映像文件到httpd的站点目录
mkdir -p /var/www/html/os/centos_x64_x86
mount /dev/cdrom /media/
rsync -avP /media/* /var/www/html/os/centos_x64_x86/
使用rsync或者scp
cobbler import --path=/var/www/html/os/centos_x64_x86/ --name=centos_x64_x86 --arch=x86_64
导入镜像的命令参数
命令格式:cobbler import --path=镜像路径 -- name=安装引导名 --arch=32位或64位, 重复上面的操作,把其他的系统镜像文件导入到cobber中,
cobbler distro list 列出已经安装镜像
注: 1. 原以为不用新建/var/www/html/os/centos_x64_x86/ 网站目录 直接讲httpd目录改成/var/www/cobbler/images/ 这个 cobbler 已经自动导入镜像的路径, 结果报错, 暂不清楚为何cobbler导入镜像后 为何还需要http服务
2. cobbler import --path=/var/www/html/os/centos_x64_x86/ --name=qing --arch=x86_64
导入的镜像后的命名规则 name+arch (cobbler distro list 查看 不使用qing-xen-x86_64)
在创建profile 时 会调用这个distro名字
qing-x86_64
qing-xen-x86_64
2.4.6 创建自动化安装脚本
创建自动化安装脚本
进入到kickstarts 模板目录(默认)
cd /var/lib/cobbler/kickstarts
[root@localhost kickstarts]# ls
default.ks legacy.ks sample_end.ks sample_esxi5.ks sample.seed
esxi4-ks.cfg pxerescue.ks sample_esx4.ks sample.ks
esxi5-ks.cfg sample_autoyast.xml sample_esxi4.ks sample_old.seed
注: 此目录为模板的默认存放目录, 新添加profile时需指定默认的模板文件, 否则就会使用默认的sample.ks的文件, 造成装机错误(因为没有正确使用kistart文件)
安装kickstart
yum install system-config-kickstart
yum groupinstall "X Window System"
startx 进入到图形界面
system-config-kickstart 运行生成ks.cf 文件
具体修改内容请参考下面注释
修改文件名称添加到cobber 中
[root@localhost ~]# cobbler profile add --name=centos_x64-x86_64 --distro=centos_x64-x86_64 --kickstart=/var/lib/cobbler/kickstarts/cenots5.8_x86_64.cfg
添加文件的命令参数
命令:cobbler profile add|edit|remove --name=安装引导名 --distro=系统镜像名 --kickstart=kickstart自动安装文件路径
--name:自定义的安装引导名,在客户端(被装的机器上)显示的就是这个名字
--distro:系统安装镜像名,用cobbler distro list可以查看
--kickstart:与系统镜像文件相关联的kickstart自动安装文件
2.3 测试
测试之前将bios 调整为pxe启动,
在这里就可以测试pxe引导安装了(选择centos_x64-x86_64 这个选项)
2.4 cobbler 帮助
[root@localhost ~]# man cobbler 查看cobbler帮助
cobbler list
cobbler report 常用
cobbler profile report
cobbler distro list
[root@localhost ~]# cobbler list
distros:
centos_x64-x86_64
centos_x64-xen-x86_64
profiles:
centos_x64-x86_64
centos_x64-xen-x86_64
systems:
repos:
images:
mgmtclasses:
packages:
files:
[root@localhost ~]# cobbler distro list
centos_x64-x86_64
centos_x64-xen-x86_64
[root@localhost ~]#
Kickstart图解: