内容简介:Cobbler介绍Cobbler是一个Linux服务器快速网络安装的服务,而且在经过调整也可以支持网络安装windows,该工具使用python开发,小巧轻便(才15k行python代码),可以通过网络启动(PXE)的方式来快速安装、重装物理服务器和虚拟机,同时还可以管理DHCP,DNS,TFTP、RSYNC以及yum仓库、构造系统ISO镜像。Cobbler可以使用命令行方式管理,也提供了基于Web的界面管理工具,还提供了API接口,可以方便二次开发使用。
Cobbler介绍
Cobbler是一个 Linux 服务器快速网络安装的服务,而且在经过调整也可以支持网络安装windows,该 工具 使用 python 开发,小巧轻便(才15k行python代码),可以通过网络启动(PXE)的方式来快速安装、重装物理服务器和虚拟机,同时还可以管理DHCP,DNS,TFTP、RSYNC以及yum仓库、构造系统ISO镜像。
Cobbler可以使用命令行方式管理,也提供了基于Web的界面管理工具,还提供了API接口,可以方便二次开发使用。
Cobbler客户端Koan支持虚拟机安装和操作系统重新安装,使重装系统更便捷。
Cobbler各主要组件关系图
Cobbler设计模式
1.发⾏版(distro): 表示操作系统。它承载了内核和initrd引导程序
2.存储库(repository): 保存yum缓存⽂件的镜像仓库
3.配置⽂件(profile):定义操作系统的发⾏版的ks配置⽂件,也包含内核参数信息等
4.系统(system):主要配置⽹络接⼝, 固定IP以及MAC地址 distro->profile-system(可选)
Cobbler运⾏流程
1.DHCP服务分配IP地址
2.Client(获取IP地址、Next_server IP地址)
3.Next_server(PXE引导⽂件、启动Cobbler选择界⾯)
4.tftp(获取启动内核、initrd等⽂件)
5.kickstart (确定加载项,根据NFS,httpd,ftp等共享)
Cobbler原理
使用Cobbler,您无需进行人工干预即可安装机器。Cobbler设置一个PXE引导环境(它还可以使用yaboot支持PowerPC),并控制与安装相关的所有方面,比如网络引导服务(DHCP和TFTP)与存储库镜像。当希望安装一台新机器时,Cobbler可以:
1.使用一个以前定义的模板来配置DHCP服务(如果启用了管理DHCP)。
2.将一个存储库(yum或rsync)建立镜像或解压缩一个媒介,以注册一个新操作系统。
3.在DHCP配置文件中为需要安装的机器创建一个条目,并使用指定的参数(IP和MAC)。
4.在TFTP服务目录下创建适当的PXE文件。
5.重新启动DHCP服务来反应新的更改。
6.重新启动机器以开始安装(需手工选择系统安装菜单)。
Cobbler软件安装
1.基础环境准备
#查看当前系统版本以及内核信息 [root@Cobbler ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) [root@Cobbler ~]# uname -r 3.10.0-693.el7.x86_64 [root@Cobbler ~]# uname -n Cobbler #关闭selinux防⽕墙 [root@cobbler ~]# setenforce 0 [root@cobbler ~]# getenforce Disabled #关闭firewalld防⽕墙 [root@cobbler ~]# systemctl stop firewalld [root@cobbler ~]# systemctl disable firewalld
2.安装Cobbler
#安装epel源 [root@Cobbler ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo #安装cobbler及各个组件 [root@Cobbler /]# yum install cobbler cobbler-web pykickstart httpd dhcp tftp xinetd -y
注意:用CentOS6部署Cobbler会出现Django一直安装不上,需要自行下载并安装该软件
防止误重装系统,如果系统设置为PXE启动,可能会出现PXE引导循环
sed -i 's/pxe_just_once: 0/pxe_just_once: 1/' /etc/cobbler/settings
3.Cobbler配置文件概述
#配置文件目录:/etc/cobbler /etc/cobbler/settings #cobbler主配置文件 /etc/cobbler/iso/ #iso模板配置文件 /etc/cobbler/pxe #pxe模板文件 /etc/cobbler/power #电源配置文件 /etc/cobbler/users.conf #Web服务配置文件 /etc/cobbler/users.digest #用于web访问的用户名密码配置文件 /etc/cobbler/dhcp.template #DHCP服务配置模板文件 /etc/cobbler/dnsmasq.template #DNS服务配置模板文件 /etc/cobbler/tftpd.template #tftp服务配置模板文件 /etc/cobbler/modules.conf #Cobbler模块配置文件 #数据目录:/var/lib/cobbler /var/lib/cobbler/config #用于存放distros systems profiles等信息配置文件 /var/lib/cobbler/triggers #用于存放用户自定义的cobbler命令 /var/lib/cobbler/kickstarts #默认存放kickstart文件 /var/lib/cobbler/loaders #存放各种引导程序 #镜像数据目录: /var/www/cobbler /var/www/cobbler/ks_mirror #存放所有镜像文件 /var/www/cobbler/images #导入发行版的kernel和initrd镜像用于远程网络启动 /var/lib/cobbler/kickstarts #默认存放kickstart文件 /var/lib/cobbler/loaders #存放各种引导程序 /var/www/cobbler/repo_mirror/ #yum仓库存储目录 #日志目录:/var/log/cobbler /var/log/cobbler/install.log #客户端系统安装日志 /var/log/cobbler/cobbler.log #cobbler日志
4.启动 httpd 以及 CobblerServer
[root@cobbler ~]# systemctl start httpd [root@cobbler ~]# systemctl start cobblerd
5.执⾏ cobbler check 检测,将错误逐⼀进⾏解决
#启⽤cobbler动态配置,如不启动则可以通过⼿动或sed命令替换配置 [root@Cobbler ~]# sed -ri '/allow_dynamic_settings:/c \allow_dynamic_settings: 1' /etc/cobbler/settings [root@Cobbler ~]# systemctl restart cobblerd.service #1.配置CobblerServer地址 [root@Cobbler ~]# cobbler setting edit --name=server --value=10.0.0.202 #2.修改next_server主机IP [root@Cobbler ~]# cobbler setting edit --name=next_server --value=10.0.0.202 #3.配置tftp [root@Cobbler ~]# sed -ri '/disable/c\disable = no' /etc/xinetd.d/tftp [root@Cobbler ~]# systemctl enable xinetd [root@Cobbler ~]# systemctl start xinetd #4.启动rsync [root@Cobbler ~]# systemctl start rsyncd [root@Cobbler ~]# systemctl enable rsyncd #5.下载⽹络安装需要执⾏的⽂件(让cobbler能够处理x86/x86_64网络引导) [root@Cobbler ~]# cobbler get-loaders #6.安装debmirror, 修改/etc/debmirror.conf [root@Cobbler ~]# yum -y install debmirror [root@Cobbler ~]# sed -ri '/@dists=/c#@dists="sid";' /etc/debmirror.conf [root@Cobbler ~]# sed -ri '/@arches=/c#@arches="i386";' /etc/debmirror.conf #7.配置系统登录密码(该密码默认为cobbler) #使用openssl passwd -1 -salt '密码' '随机干扰码' 命令生成密码 [root@Cobbler ~]# openssl passwd -1 -salt 'cobbler' '123456' $1$cobbler$sqDDOBeLKJVmxTCZr52/11 [root@Cobbler ~]# cobbler setting edit --name=default_password_crypted --value='$1$cobbler$sqDDOBeLKJVmxTCZr52/11' #8.电源控制模块安装[可选] [root@Cobbler ~]# yum -y install cman fence-agents #9.开启dhcp地址分配 #不需要单独运行DHCP,由Cobbler管理 [root@Cobbler ~]# cobbler setting edit --name=manage_dhcp --value=1
6.执⾏ cobbler check 检查
[root@Cobbler ~]# systemctl restart cobblerd= [root@Cobbler ~]# cobbler check No configuration problems found. All systems go.
7.配置cobbler的dhcp模板[不代表给主机分配⼀定是如下地址]
#配置DHCP,修改cobbler的dhcp模版,这个模板会覆盖dhcp本身的配置文件/etc/dhcp/dhcpd.conf [root@Cobbler ~]# vim /etc/cobbler/dhcp.template subnet 10.0.0.0 netmask 255.255.255.0 { #子网范围 option routers 10.0.0.2; #网关地址 option domain-name-servers 10.0.0.2; #DNS地址 option subnet-mask 255.255.255.0; #掩码 range dynamic-bootp 10.0.0.100 10.0.0.120; #分配地址的范围 default-lease-time 21600; max-lease-time 43200; next-server $next_server; #调用settings配置文件中的next_server 参数
8.同步 CobblerServer 所有配置信息
#重启并同步cobblerServer [root@Cobbler ~]# systemctl restart xinetd [root@Cobbler ~]# systemctl restart cobblerd [root@Cobbler ~]# cobbler sync
提示:每次修改完Cobbler对应的配置,都要同步下cobbler数据
[root@Cobbler ~]# cobbler sync
Cobbler基础应用
1.cobbler 使⽤第⼀步需要定义 distro
如果已经有 OS 镜像安装⽂件, 使⽤ improt 导⼊⽅式。
#1.挂载CentOS7系统ISO光盘 [root@Cobbler ~]# mount /dev/cdrom /mnt/ #2.import导⼊系统镜像,以及镜像树 [root@Cobbler ~]# cobbler import --path=/mnt/ --name=CentOS-7-x86_64 --arch=x86_64 #3.查看cobbler distro [root@Cobbler cobbler]# cobbler distro list CentOS-7-x86_64 # --path 镜像路径,即从哪里导入 # --name 为导入的镜像定义名称 # --arch 指定导入的镜像是32位、64位、ia64, 目前支持的选项有: x86│x86_64│ia64
2.cobbler 默认 profile ⽆法满⾜运维需求, 需profile基础上指定 kickstart⾃定义配置⽂件(KS文件在该文章的结尾)。
#1.移除默认的profile配置 [root@Cobbler ~]# cobbler profile remove --name=CentOS-7-x86_64 #2.添加新的profile配置,并指定kickstart应答⽂件位置 [root@Cobbler \]# cobbler profile add \ --name=CentOS-7-x86_64-web \ --distro=CentOS-7-x86_64 \ --kickstart=/var/lib/cobbler/kickstarts/Centos7-x86_64.cfg #3.验证Kickstart配置文件有效性 cobbler validateks #附: 如果想修改kickstart⽂件位置 [root@Cobbler ~]# cobbler profile edit \ --name=CentOS-7-x86_64-web \ --kickstart=/var/lib/cobbler/kickstarts/CentOS-7-x86_64_Web.cfg
注意:distro可以认为是一个系统盘,profile则为安装的规则,多个profile可以指定一个distro
3.由于 CentOS7
系统⽹卡名是 eno... ,为了统⼀标准, 修改为常⽤ eth0 管理(这里还是以默认的profile来演示)
注意是 CentOS7
才需要下⾯的步骤CentOS6不需要。
#1.修改centos7系统profile安装时的内核 [root@Cobbler ~]# cobbler profile edit --name=CentOS-7-x86_64-web --kopts='net.ifnames=0 biosdevname=0' #2.也可以在kickstart配置⽂件中添加内核参数[推荐] bootloader --location=mbr --append="net.ifnames=0 biosdevname=0"
4.启动同⽹段服务器, 系统分配dhcp后会进⼊Cobbler安装界⾯, 进⾏系统选择后, 安装即可。
注意:CentOS7安装至少2G以上内存
ks文件:Centos7-x86_64.cfg
# Cobbler for Kickstart Configurator for CentOS 7 by jason install url --url=$tree text lang en_US.UTF-8 keyboard us zerombr bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet" #Network information $SNIPPET('network_config') #network --bootproto=dhcp --device=eth0 --onboot=yes --noipv6 --hostname=CentOS7 timezone --utc Asia/Shanghai authconfig --enableshadow --passalgo=sha512 rootpw --iscrypted $default_password_crypted clearpart --all --initlabel part /boot --fstype xfs --size 1024 part swap --size 1024 part / --fstype xfs --size 1 --grow firstboot --disable selinux --disabled firewall --disabled logging --level=info reboot %pre $SNIPPET('log_ks_pre') $SNIPPET('kickstart_start') $SNIPPET('pre_install_network_config') # Enable installation monitoring $SNIPPET('pre_anamon') %end %packages @^minimal @compat-libraries @core @debugging @development bash-completion chrony dos2unix kexec-tools lrzsz nmap sysstat telnet tree vim wget %end %post systemctl disable postfix.service %end
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- Web前端自动化入门总结
- Web前端自动化入门总结
- Sping Boot入门到实战之入门篇(四):Spring Boot自动化配置
- Android自动化测试入门(四)单元测试
- Android自动化测试入门(三)Espresso
- 使用selenium做自动化测试入门-基于JAVA
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
随机密码生成器
多种字符组合密码
XML、JSON 在线转换
在线XML、JSON转换工具