运维自动化安装方面,早期一般使用人工配置pxe+dhcp+tftp配合kickstart,现在开源工具就多了,如cobbler,OpenQRM和Spacewalk。本文重点介绍Cobbler。
Cobbler介绍
Cobbler是一个快速网络安装linux的服务,而且在经过调整也可以支持网络安装windows。该工具使用python开发,小巧轻便(才15k行代码),使用简单的命令即可完成PXE网络安装环境的配置,同时还可以管理DHCP,DNS,以及yum包镜像。
Cobbler支持命令行管理,web界面管理,还提供了API接口,可以方便二次开发使用。
和Kickstart不同的是,使用cobbler不会因为在局域网中启动了dhcp而导致有些机器因为默认从pxe启动在重启服务器后加载tftp内容导致启动终止。
cobbler的安装部署配置
cobbler安装环境准备
对于centos本身源 ,可根据自己所在地选择离自己近的镜像源,比如mirrors.163.com或mirrors.sohu.com
1、安装epel
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
2、安装其它相关软件
yum install dhcp cobbler httpd xinetdtftp-server cman debmirror rsyncpykickstart -y
3、关闭selinux,关闭iptables
关闭后最好重启一下,让selinux的设置生效
4、设置http服务
vi/etc/httpd/conf.d/wsgi.conf
LoadModule wsgi_modulemodules/mod_wsgi.so #取消前面的注释
5、修改参数
sed -i '/disable/c\\tdisable\t\t\t= no'/etc/xinetd.d/tftp
sed -i -e 's/\=\ yes/\=\ no/g'/etc/xinetd.d/rsync
重启xinetd服务(xinetd负责管理rsync,tftp服务)
service xinetd restart
修改debmirror.conf配置文件
sed-i -e 's|@dists=.*|#@dists=|' /etc/debmirror.conf
sed-i -e 's|@arches=.*|#@arches=|' /etc/debmirror.conf
openssl passwd -1 -salt '任意字符串' '123456' #生成默认模板下系统安完后root账号
登录密码为123456
$1$osyunwei$sEV8iwXXuR4CqzLXyLnzm0 #记录下这行,下面会用到
vim /etc/cobbler/settings #编辑,修改以下几项目配置
default_password_crypted:"$1$osyunwei$sEV8iwXXuR4CqzLXyLnzm0"此处原来为默认密码
next_server:192.168.1.2 本机IP
server: 192.168.1.2 本机IP
manage_dhcp: 1 使用cobbler来管理dhcp
配置dhcp服务器
vi /etc/cobbler/dhcp.template #编辑,修改
subnet 192.168.1.0 netmask 255.255.255.0 { #设置网段
optionrouters 192.168.1.2; #设置网关(可为本机IP)
option domain-name-servers202.106.0.20,114.114.114.114; #设置dns服务器地址
optionsubnet-mask 255.255.255.0; #设置子网掩码
rangedynamic-bootp 192.168.1.100 192.168.1.200; #设置dhcp服务器IP地址租用范围
default-lease-time 21600; #默认租约时间
max-lease-time 43200; #最大租约时间
next-server #本机IP;
下载引导文件 cobbler get-loaders
挂载镜像
本地光盘
mount/dev/cdrom /mnt
导入到cobbler
cobblerimport --path=/mnt/ --name=CentOS_6.6_Final
网络镜像
cobbler import--path=rsync://centos.ustc.edu.cn/centos/6.6/os/i386/ --name=centos-6.6-i386
本次安装脚本使用系统默认脚本 位置/var/lib/cobbler/kickstarts默认模版目录
扩展阅读部分
在第一次导入系统镜像时,cobbler会给安装镜像指定一个默认的kickstart自动安装文件
通过cobbler profile report 命令可查看当前默认的ks文件
cobbler distro report --nameCentOS-5.10-x86_64 #查看安装镜像文件信息
cobbler profile remove--name=CentOS-5.10-x86_64 #移除profile
cobbler profile add --name=CentOS-5.10-x86_64 --distro=CentOS-5.10-x86_64 --kickstart=/var/lib/cobbler/kickstarts/CentOS-5.10-x86_64.ks #添加
cobbler profile edit --name=CentOS-5.10-x86_64 --distro=CentOS-5.10-x86_64 --kickstart=/var/lib/cobbler/kickstarts/CentOS-5.10-x86_64.ks #编辑
命令:cobbler profile add|edit|remove --name=安装引导名--distro=系统镜像名 --kickstart=kickstart自动安装文件路径
--name:自定义的安装引导名,注意不能重复
--distro:系统安装镜像名,用cobbler distro list可以查看
--kickstart:与系统镜像文件相关联的kickstart自动安装文件
#查看Cobbler列表命令
cobbler list
cobbler report
cobbler profile report
cobbler distro list
#通过profile查找对应的kickstart自动安装文件文件
例如:
ksfile=$( cobbler profile report --name CentOS-5.10-x86_64|grep -E '^Kickstart' |head -n 1|cut -d ':' -f 2 );cat$ksfile;
重复上面的操作,把其他的系统镜像文件和kickstart自动安装文件关联起来
注意:
1、kickstart自动安装文件需要预先配置好
2、每次修改完配置文件,需要执行一次同步操作:cobbler sync 配置才能生效
3、kickstart自动安装文件可以用工具生成(需要用到图形界面操作)
yum installsystem-config-kickstart #安装
yum groupinstall "X WindowSystem" #安装X Window图形界面
system-config-kickstart #运行kickstart配置
service cobbler sync #与cobbler sync作用相同
service cobbler restart #重启cobbler
6、设置开机启动
chkconfig httpd on
chkconfig cobblerd on
chkconfig xinted on
chkconfig dhcpd on
7、启动服务
servicehttpd restart 如果报错
打开/etc/httpd/conf/httpd.conf
将ServerNamewww.example.com:80前面的#号去掉
servicexinetd restart
service cobblerd restart
8、同步cobbler配置
执行 cobbler sync
cobbler会自动进行初始化工作,移除已经存在的启动项,然后根据模板拷贝loader文件。之后再生成pxe的配置文件,生成dhcp的配置文件,最后再重启dhcp服务。
至此,就可以使用虚拟机来测试cobbler安装了。
9、Cobbler测试安装
使用vmware虚拟机,将服务器新增一块网卡,模式设置为虚拟网卡VMnet,并配置IP地址,客户端网卡也必须使用此模式与服务器在同一网络,并且VMnet的名字要一致。
否则客户端将无法dhcp分配到地址。
以下是Linuxkvm虚拟机中的测试
在启动的时候选择PXE的模式。
然后就能看到下面的图示内容。虚拟机通过dhcp获得了122段的ip,然后通过tftp获得到pxe的启动文件。
下图是cobbler的pxe安装启动菜单,这里有我们刚刚创建好的CentOS版本。
系统安装使用默认的ks文件,经过短暂的等待,系统就自动被安装好了。
安装好的系统如下图所示。
安装使用心得
以上所有内容虽然是在kvm虚拟机上测试的,但完全可以直接使用于生产环境中,不会给现有环境带来任何影响。唯一需要做的就是规划好现有网络。
对于很多人担心的生成环境开启DHCP服务问题,我认为不会对现有生产环境产生任何影响,理由有二:
1、没有人会在装好系统后让网卡使用dhcp模式,通常都是为网卡配置静态ip
2、从测试过程中看到,就算是服务器默认设置成了通过pxe启动,而且也顺利的通过pxe启动了,但之后会收到cobbler的引导菜单。如果默认没有任何选择的话,20秒后会使用local方式加载,也就是启动硬盘上的系统。
综上所述,cobbler还是很安全的。
扩展阅读:
Cobbler目录说明:
1、Cobbler配置文件目录:/etc/cobbler
/etc/cobbler/settings #cobbler主配置文件
/etc/cobbler/dhcp.template #DHCP服务的配置模板
/etc/cobbler/tftpd.template #tftp服务的配置模板
/etc/cobbler/rsync.template #rsync服务的配置模板
/etc/cobbler/iso #iso模板配置文件
/etc/cobbler/pxe #pxe模板文件
/etc/cobbler/power #电源的配置文件
/etc/cobbler/users.conf #Web服务授权配置文件
/etc/cobbler/users.digest #用于web访问的用户名密码配置文件
/etc/cobbler/dnsmasq.template #DNS服务的配置模板
/etc/cobbler/modules.conf #Cobbler模块配置文件
2、Cobbler数据目录:/var/lib/cobbler
/var/lib/cobbler/config #配置文件
/var/lib/cobbler/triggers #Cobbler命令
/var/lib/cobbler/kickstarts #默认存放kickstart文件
/var/lib/cobbler/loaders #存放的各种引导程序
3、系统安装镜像目录:/var/www/cobbler
/var/www/cobbler/ks_mirror #导入的系统镜像列表
/var/www/cobbler/images #导入的系统镜像启动文件
/var/www/cobbler/repo_mirror #yum源存储目录
4、日志目录:/var/log/cobbler
/var/log/cobbler/install.log #客户端系统安装日志
/var/log/cobbler/cobbler.log #cobbler日志