Cobbler是一个Linux服务器安装的服务,可以通过网络启动(PXE)的方式来快速安装、重装物理服务器和虚拟机,同时还可以管理DHCP,DNS等。Cobbler可以使用命令行方式管理,也提供了基于Web的界面管理工具(cobbler-web),还提供了API接口,可以方便二次开发使用。
cobbler工作原理
环境准备
1 | 1. 查看系统版本 |
安装cobbler
1 | [root@cobbler-9 ~]# yum install cobbler cobbler-web pykickstart httpd dhcp tftp xinetd -y |
重要配置文件注释
1 | [root@cobbler-9 ~]# rpm -ql cobbler |
启动服务
1 | cobbler的运行依赖于dhcp、tftp、rsync及dns服务。 |
检查cobbler的配置
1 | [root@cobbler-9 ~]# cobbler check |
配置DHCP
1 | 此参数为1时表示使用,cobbler管理dhcp |
同步cobbler配置
1 | #同步最新cobbler配置,它会根据配置自动修改dhcp等服务。 |
cobbler的命令行管理
查看帮助
1 | [root@cobbler-9 ~]# cobbler |
导入镜像参数
1 | [root@cobbler-9 ~]# cobbler import --help |
常见参数注释
1 | cobbler check 核对当前设置是否有问题 |
可单个执行查看帮助信息,例:
1 | [root@cobbler-9 ~]# cobbler distro |
导入镜像文件
1 | #我的CentOS6.6 和CentOS7的ISO文件已经上传到/iso目录,需要使用mount挂载后使用。 |
同理,再导入一份CentOS-7.3的操作系统
1 | #先卸载之前的挂载,重新挂载CentOS7 |
查看镜像列表:
1 | [root@cobbler-9 ~]# cobbler distro list |
镜像文件位置
1 | [root@cobbler-9 ~]# ls /var/www/cobbler/ks_mirror/ |
删除指定的镜像
1 | [root@cobbler-9 ~]# cobbler profile remove --name=CentOS-7xxx |
指定ks.cfg文件调整内核参数
1 | Cobbler使用ks.cfg文件来制定所需要的安装配置,分区,网络,主机名等开机优化操作,还可以指定系统安装相应的软件。 |
Cobbler的默认ks.cfg文件存放位置
1 | [root@cobbler-9 ~]# ls /var/lib/cobbler/kickstarts/ |
检查ks.cfg文件是否有语法错误
1 | [root@cobbler-9]# cd /var/lib/cobbler/kickstarts |
上传准备好的cfg 文件到/var/lib/cobbler/kickstarts/路径,并修改distro list镜像对应的cfg文件
1 | [root@cobbler-9 kickstarts]# ls -l CentOS* |
CentOS7系统网卡名变成eno…这种,为了运维标准化,我们需要修改为我们常用的eth0,使用下面的参数。但要注意是CentOS7才需要下面的步骤(CentOS6不需要)。
1 | [root@cobbler-9 kickstarts]# cobbler profile edit --name=CentOS-7.3-x86_64 --kopts='net.ifnames=0 biosdevname=0' |
查看安装img镜像文件信息
1 | [root@cobbler-9 kickstarts]# cobbler distro report |
查看指定的img镜像文件
1 | [root@cobbler-9 kickstarts]# cobbler distro report --name=CentOS-7.3-x86_64 |
查看所有的cfg配置文件内容
1 | [root@cobbler-9 kickstarts]# cobbler profile report |
可以指定名称查看某一个配置的cfg文件
1 | [root@cobbler-9 kickstarts]# cobbler profile report --name=CentOS-7.3-x86_64 |
每次修改为都要执行一次同步
1 | [root@cobbler-9 kickstarts]# cobbler sync |
部署操作系统
使用一台物理机,与cobbler服务器在同一个局域网,然后开机按F12通过网络启动即可。
自动化安装完成后,登陆操作系统检查配置。
自定义登陆界面
打个广告
1 | [root@cobbler-9 ~]# vim /etc/cobbler/pxe/pxedefault.template |
每次修改为都需要执行一次同步
1 | [root@cobbler-9 ~]# cobbler sync |
效果图类似
Cobbler web使用
重置cobbler账号的密码
1 | htdigest /etc/cobbler/users.digest "Cobbler" root |
新建用户
1 | htdigest /etc/cobbler/users.digest "Cobbler" your_newname |
访问cobbler页面
1 | https://cobbler_server_ip/cobbler_web |
*定制化安装
1 | 1. Cobbler支持设备的物理MAC地址来区分设备,针对不同设备安装操作系统 |
查看定义的列表
1 | [root@linux-node1 ~]# cobbler system list |
打开MAC地址为”00:50:56:38:F3:C5”的机器发现会自动安装预选的操作系统
检查新安装的设备,IP、掩码、网关、DNS、主机名、等等配置发现与预设的信息一致。
*指定设备系统重装(在需要重装系统的机器上面操作)
有些需要重新安装的系统希望reboot后自动重装
1 | 在需要重装的机器上面!!!安装koan |
检查在Cobbler上面有可选择的img
1 | [root@linux-node2 ~]# koan --server=10.10.1.10 --list=profiles |
指定要选择重装的系统
1 | [root@linux-node2 ~]# koan --replace-self --server=10.10.1.10 --profile=CentOS-6.6-x86_64 |
重启需要重装的系统,发现系统已经按照指定的镜像重新安装为CentOS6.6操作系统
1 | [root@linux-node2 ~]# reboot |
*.ks附件
centos_6.6.ks [注:ks文件内不允许出现中文,即便是注释]
1 | #Install OS |
centos_7.x.ks
1 | #version=CentOS7.x by garywu. - 2017.08.23 |
注:
- 上面的 %post …… %end,意思是可以在系统啥的都配置完之后,最后执行一些命令,比如添加epel源或者检查用户是否存在,如果不存在则创建用户
- 通过cat方式追加文本,如果文本中包含特殊字符比如: “$” , 需要在其前面加转义符”"。否则变量会丢失。
- CentOS7系统中,mbr可以识别2TB以上的硬盘,并且没有gpt一说,所以分区格式使用mbr即可。
最后感谢感谢老男孩、赵班长、徐布斯的付出,原文
关于包组
1 | 如果不清楚要安装哪些包组,需要使用system-config-kickstart命令配合X windows环境进行配置ks文件查看。 |
- 本文作者: GaryWu
- 本文链接: https://garywu520.github.io/2017/08/15/Cobbler自动化系统部署/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!