最早使用过centos5安装过cobbler,挺好用的,现在centos已经到7了,与时俱进,试着这centos7中安装一下cobbler,安装在自己的笔记本虚拟机中,方便后面工作中有可能需要装机的时候使用。
环境介绍:
本机操作系统:win10 64位
虚拟机软件: VirtualBox5.0.20(注意,老版本4.3.26不能使用桥接模式网络,这个问题花了我一个小时,后面升级到5版本就ok了)
cobbler虚拟机操作系统: centos7 单核,内存2G,硬盘30G
安装准备:
1、找参考安装步骤,参考网上的资料:http://www.olindata.com/blog/2015/07/cobbler-setup-centos7 ,《Cobbler Setup on CentOS7》。
2、准备centos7安装镜像,自行到网上找镜像下载;
3、安装centos7 的虚拟机,单核,内存2G,硬盘100G,安装的时候选择web server,将相应的包都勾上,其中主要有python环境、java环境等等,具体不记得了,反正尽量觉得能用上的都勾上,省得后面单独安装。当然,还有其他的时区、网络配置、分区等等,时区选择shanghai,其他的自己爱怎么配置就怎么配置。网络配置可以后面配置,也可以安装的时候配置,需要配置为实际物理网络的网段,方便后面cobbler通过局域网装机。我这里配置的IP地址是192.168.1.201,注意不要和现有网络地址冲突。分区的时候,注意不要采用默认的分区方式,默认的分区会有两个主要的分区,一个是根分区/,一个是/home分区,各占大概一半的空间,建议直接将/home分区去掉,直接将绝大部分空间分配给/,因为cobbler主要用到的空间是/var/www/cobbler 这个目录,放镜像的目录。
4、将虚拟机的网络设置为桥接模式,在虚拟机里面ping www.baidu.com 确认能够访问外网。
(一)安装cobbler软件,配置YUM仓库、防火墙、安装包:
1、下载yum源安装包:
wget https://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-9.noarch.rpm
rpm -ivh epel-release-7-8.noarch.rpm
2.配置防火墙
#systemctl stop firewalld #chkconfig firewalld off
3.配置selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
如果不关闭selinux也可以
#getsebool -a|grep cobbler
#setsebool -P cobbler_can_network_connect 1
4、安装cobbler以及cobbler-web: yum install cobbler cobbler-web dnsmasq syslinux pykickstart tftp tftp-server xinetd
5、开启cobbler和httpd应用:
[root@cobbler ~]# systemctl enable cobblerd
[root@cobbler ~]# systemctl start cobblerd
[root@cobbler ~]#
[root@cobbler ~]# systemctl enable httpd
[root@cobbler ~]# systemctl start httpd
[root@cobbler ~]# systemctl enable xinetd
[root@cobbler ~]# systemctl start xinetd
6、cobbler-web提供了漂亮的web界面,到现在为止,就可以通过下面的网址访问web管理界面了:
https://192.168.1.201/cobbler_web
(二)配置cobbler:
配置主要是对cobbler的配置文件/etc/cobbler/settings 进行配置。主要有以下的配置项目:
/etc/cobbler/settings:
default_password_crypted: "{今后装新机的root密码,可以使用这个命令获取: openssl passwd -1}"
manage_dhcp: 1
manage_dns: 1
pxe_just_once: 1
next_server: 192.168.1.201
server: 192.168.1.201
可以使用下面的语句直接进行修改配置:
/etc/cobbler/settings #Cobbler 主配置文件
sed -i 's/manage_dhcp: 0/manage_dhcp: 1/g' /etc/cobbler/settings
sed -i 's/manage_dns: 0/manage_dns: 1/g' /etc/cobbler/settings
sed -i 's/pxe_just_once: 0/pxe_just_once: 1/g' /etc/cobbler/settings
sed -i 's/^next_server: 127.0.0.1/next_server: 192.168.1.201/g' /etc/cobbler/settings
sed -i 's/^server: 127.0.0.1/server: 192.168.1.201/g' /etc/cobbler/settings
接下来需要修改的配置文件是:/etc/cobbler/modules.conf ,需要修改的配置项如下:
[dns]
module = manage_dnsmasq
[dhcp]
module = manage_dnsmasq
基于你的网络配置,dhcp模板配置文件也需要修改:/etc/cobbler/dhcp.template,需要修改的配置项如下(注意range dynamic-bootp参数选项是设置的dhcp地址范围):
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.1;
option domain-name-servers 192.168.1.1;
option subnet-mask 255.255.255.0;
range dynamic-bootp 192.168.1.210 192.168.1.220;
default-lease-time 21600;
max-lease-time 43200;
next-server $next_server;
}
编辑这个配置文件:/etc/cobbler/dnsmasq.template,(注意dhcp-range参数选项是设置的dhcp地址范围)
...
...
dhcp-range=192.168.1.210,192.168.1.220
...
开启tftp服务:
sed -i '/disable/c\\tdisable\t\t\t= no' /etc/xinetd.d/tftp
下载boot-loader包:
cobbler get-loaders
使能 rsyncd 服务,开机自启动:
systemctl enable rsyncd
最后请注意,装机的默认密码是: "cobbler",如果需要修改,请通过"openssl passwd -1 -salt 'random-phrase-here' 'your-password-here'"命令,修改settings配置文件的default_password_crypted参数。
重启应用
systemctl restart cobblerd
cobbler check
cobbler sync
【2016年11月22日补充】
重新做了该实验,想验证一下如何适应不同的局域网,基本思路是安装完成基本的cobbler安装包之后,修改虚拟机的IP地址,和相应的cobbler配置文件参数,使之适应新的安装环境。
虚拟机的配置有点调整,配置两块网卡,一块设置为hostonly,在虚拟化环境内部模拟局域网,是后面部署的网络,一块设置为bridge,直接桥接到物理网卡,能够上网,方便用yum进行安装。
安装配置cobbler完成之后,就要开始上传操作系统镜像,制作软件源,上传操作系统镜像可以省略,可以通过直接在虚拟机上挂载ISO文件,相当与插入光驱DVD。首先在虚拟机的存储IDE的DVD中加载ISO文件,然后运行命令如下:
mount -o loop /dev/cdrom /media/
这样,就可以在系统中访问/media/ 中ISO镜像内的文件了。下一步是制作软件安装源。
导入镜像,我放的是centos7 的安装盘:
cobbler import --path=/media/ --name=centos7 --arch=x86_64
这个命令需要执行一段时间,会在/var/www/cobbler/ks_mirror这个目录下生成相应的centos7的安装软件源。可以在这个目录下执行 du -m查看空间增长情况,最后完成的时候空间是4.15G。
导入完成之后,可以在web界面的Distros菜单上看到对应的软件源centos7-x86_64 ,以及Profiles菜单中看到centos7-x86_64 ,
将kickstart脚本拷贝到这个目录/var/lib/cobbler/kickstarts/,比如,我将cobbler虚拟机的kickstart脚本拷贝进去:
cp anaconda-ks.cfg /var/lib/cobbler/kickstarts/centos7-1122.ks
然后在web界面的 “Kickstart Templates” 菜单中就能够看到相应的模板,并且后面安装系统的时候可以选择这个模板进行安装。
不想搞得太复杂,其实到这一步,很多工作都可以直接在web界面中完成。web界面有几个菜单,分别介绍一下:
Configuration 菜单:
Distros 安装镜像,导入镜像后会生成相应的安装镜像。
Profiles 特性模板,这里可以绑定kickstart
Systems 需要安装的系统,可以针对每一台不同的机器提前配置,这里可以绑定kickstart
Repos 软件源
Kickstart Templates 非常重要,Kickstart 模板,决定了安装的系统里面的所有特性参数,比如分区,IP地址,安装包等
Actions 菜单:
Import DVD 导入生成镜像
Sync ? 配置同步
其实上面的cobbler import --path=/media/ --name=centos7 --arch=x86_64 这个命令也可以用 Actions菜单的“Import DVD”来完成。
为了节约篇幅,我简单描述一下如何使用cobbler来自动化部署新的机器:
1、导入镜像,首先挂载DVD到虚拟机的/media目录,然后使用命令或者web界面的“Import DVD”完成;
2、生成“Kickstart Templates”,根据需要生成,在新的模板里面配置好相应的参数,比如分区、IP、安装包、甚至相关安装后的相关配置修改,都可以一次性在模板里面配置,大大节约人力成本。
3、在Configuration 菜单的“systems”中配置目标安装配置主机。主要配置主机名、MAC地址等等,绑定Kickstart Templates 。
如果用虚拟机测试,创建虚拟机,并且将系统启动方式中将网络启动方式选中。
【2017年2月12日补充】
制作ubuntu16.04模板,参考官网的指导文档: https://help.ubuntu.com/community/Cobbler/Preseed
总结如下:
从unbuntu官网下载ISO镜像:http://releases.ubuntu.com/16.04/
import DVD
制作ubuntu的Distros
准备preseed文件,制作profile
直接启动目标主机,目标主机通过PXE识别到可用的profile,选择ubuntu的profile进行安装。