cobbler介绍

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_43058911/article/details/102604516

cobbler介绍:

快速网络安装Linux操作系统的服务,支持众多Linux发行版Redhat、Debian、centos、Ubuntu、也可以支持网络安装Windows
它是将PXE一系列操作进行封装,将多种安装参数封装到一个菜单中,然后根据cobbler自身命令同步,自动创建所需文件。
cobbler是Python开发编写的
提供了CLI字符界面和web图像界面的管理形式

cobbler的工作流程

启动服务								PXE启动
sync更新									|
拷贝TFTP file							|
启动dhcpd							   \|/
报告信息-->no-->报告错误
报告信息-->yes-->DHCP分配		-->		获取IP地址
				TFTP发送问件	-->		TFTP引导
									选择版本界面
				接收安装选项信息-->	确定版本加载选项
				发送ks文件/镜像 -->	根据配置的信息进行安装 --> 确认KS文件 --> 根据ks文件中的路径传输文件 --> 安装操作系统
				
client裸机配置了从网络启动后,开机后会广播请求DHCP服务器(cobbler server)发送器分配好的一个IP
DHCP服务器收到请求后发送response,包括IP地址
客户机拿到IP后再向cobbler server发送请求OS引导文件的请求
cobbler server告诉裸机OS引导文件的名字和TFTP server的IP和端口
客户机通过上面告知的TFTP server地址通信,下载引导文件
客户机执行该引导文件,确定加载信息,选择要安装的OS,期间再向cobbler server发送请求kickstart和 OS image
cobbler server发送请求的kickstart和OS image
客户机加载kickstart文件
客户机接收OS镜像,安装OS镜像

安装包:cobbler基于EPEL源
cobbler服务集成,彼此依赖关系,部分服务在安装cobbler时,会自动安装
	PXE
	DHCP
	rsync
	HTTP
	DNS
	kickstart
	IPMI电源管理
	
检查cobbler环境:会给出提示信息,缺少的哪些动作没有完成
	cobbler check

cobbler的各目录介绍:

数据目录:
	/var/lib/cobbler/kickstarts/	:默认存放kickstart文件
	/var/lib/cobbler/config/		:用于存放distro,system,profile等信息配置文件
	/var/lib/cobbler/triggers/		:用于存放用户定义的cobbler命令
	/var/lib/cobbler/loaders/		:存放各种引导程序
镜像目录:
	/var/lib/cobbler/ks_mirror/		:导入的发行版系统的所有数据
	/var/lib/cobbler/images/		:导入发行版kernel和initrd镜像用于远程网络启动
	/var/lib/cobbler/repo_mirror/	:yum仓库存储目录
日志目录:
	/var/log/cobbler/installing		:客户端安装日志
	/var/log/cobbler/cobbler.log	:cobbler日志

具体实现步骤:

要确保机器能联网,因为需要在网络中下载安装包和部分文件、驱动等
安装时如果遇到需要 python-pygments包,就到http://fr2.rpmfind.net/linux/RPM/index.html网站下载
yum install cobbler dhcp	:httpd等包安装cobbler时会被自动安装
systemctl enable httpd tftp dhcpd cobblerd	:设置开机自启
systemctl start httpd 	:cobbler check 命令依赖httpd服务,如果httpd服务没启动,cobbler check不能执行
systemctl start cobblerd	:启动cobbler服务
cobbler check 	:执行此命令,会出现提示信息给出缺少的动作没有完成,根据提示完成相应的动作,需要修改的几项,没有写出来的忽略不管
	The following are potential configuration items that you may want to fix:
	1 : The 'server' field in /etc/cobbler/settings must be set to something other than localhost, or kickstarting features will not work.  
	This should be a resolvable hostname or IP for the boot server as reachable by all machines that will use it.
		这项是说cobbler服务器是哪个,编辑/etc/cobbler/settings,找到server,修改cobbler服务器地址
	2 : For PXE to be functional, the 'next_server' field in /etc/cobbler/settings must be set to something other than 127.0.0.1, and should match the IP of the
	boot server on the PXE network.
		这项是说TFTP服务器地址,编辑/etc/cobbler/settings,找到next_server,修改TFTP服务器地址
	3 : SELinux is enabled. Please review the following wiki page for details on ensuring cobbler works correctly in your SELinux environment:
		这项是说selinux如果是开启的,需要关闭
	8 : The default password used by the sample templates for newly installed machines (default_password_crypted in /etc/cobbler/settings) is still set to 
	'cobbler' and should be changed, try: "openssl passwd -1 -salt 'random
		这项是说安装时root的口令,有一个默认口令,但是不安全,最好自己创建一个密码填写进去,
		使用openssl passwd -1命令输入两遍密码,然后将加密后生成的密码串填写至文件中
		找到default_password_crypted填写至后方即可
	manage_dhcp: 1
		此项cobbler check检查不出来,但需要修改为 1,改为1 的意思是DHCP服务由cobbler管理,DHCP配置文件下面会有介绍
	
然后重启服务,再次cobbler check时,会少很多项,有的是没用的
	
	5 : Some network boot-loaders are missing from /var/lib/cobbler/loaders, you may run 'cobbler get-loaders' to download them, or, if you only want to handle
	x86/x86_64 netbooting, you may ensure that you have installed a *recent* version of the syslinux package installed and can ignore this message entirely. 
	Files in this directory, should you want to support all architectures, should include pxelinux.0, menu.c32, elilo.efi, and yaboot. The 'cobbler get-loaders' 
	command is the easiest way to resolve these requirements.
		这项是说准备pxelinux.0等等的文件,不需要手动复制,只需要执行cobbler get-loaders命令就会自动从互联网下载相对应文件,此项可等将配置文件修改完成后再执行
	cobbler get-loaders		:执行此命令
		下载后默认将文件保存至/var/lib/cobbler/loaders/目录中
	cobbler sync		:执行此命令,同步命令,会自动将文件复制到/var/lib/tftpboot/目录下
					会有报错,dhcpd没有启动,目前先不需要管,下面就会准备

接着准备DHCP服务	
	[root@centos7 ~]# rpm -ql cobbler | grep dhcp	:查找和DHCP服务相关的配置
	/etc/cobbler/dhcp.template			:修改此DHCP配置文件模板,随后生成dhcp配置文件
	vim /etc/cobbler/dhcp.template	
		subnet 192.168.40.0 netmask 255.255.255.0 {		:将网段改为你所需要的网段
		 option routers             192.168.40.1;		:网关可加可不加
		 option subnet-mask         255.255.255.0;		:掩码
		 range dynamic-bootp        192.168.40.100 192.168.40.254;	:地址池
		 default-lease-time         21600;		:默认租期
		 max-lease-time             43200;		:最大租期
		 next-server                $next_server;	:变量,此变量就是cobbler配置文件中修改的next_server后面跟的IP地址
				:文件中还有其他内容,其他不需要修改
	再次执行同步命令
		cobbler sync
		cobbler check	:再次检查会发现没有报错
		cat /etc/dhcp/dhcpd.conf	:查看DHCP配置文件已经改为模板中定义的内容

接着准备yum源,cobbler会根据yum源生成菜单文件
	cobbler import --help
		--arch=ARCH       	:平台,x86_64等
		--path=PATH         :镜像文件路径
		--name=NAME           name, ex 'RHEL-5',菜单的名字,选择版本的时候的名字
		--kickstart=KICKSTART_FILE	:可以指定ks应答文件,不指定默认生成一个最小化的应答文件
	执行命令:将centos7镜像导入,生产中可直接将一个镜像文件导入进去
		cobbler import --path=/misc/cd/ --name=Centos7-7.6-x86_64 --arch=x86_64	:7的镜像
		
		将centos6镜像也导入,生产中可直接将一个镜像文件导入进去
			mkdir /mnt/cdrom
			mount /dev/sr1 /mnt/cdrom
			cobbler import --path=/mnt/cdrom --name=Centos6.10-x86_64 --arch=x86_64
		导入完成后查看/var/lib/tftpboot/pxelinux.cfg/default文件,看看菜单是否添加完成,如过菜单没有更新,执行cobbler sync同步一下
		
		MENU DEFAULT设置为默认安装哪个版本,可修改
完成后就可以实现安装操作系统了

使用自己创建的ks应答文件

/var/lib/cobbler/kickstarts		:此目录存放cobbler的应答文件,自己写的应答文件也需要放在这里
vim /var/lib/cobbler/kickstarts/ks7-mini.cfg 
	url --url=$tree		:此项必须改,$tree是cobbler的变量

cobbler系列命令

cobbler distro list	 :查看系统版本
cobbler profile list :相当于菜单项,不同ks应答文件,例如有mini安装,desktop安装等

添加菜单项,自定义应答文件
	cobbler profile add --name=centos7.5-x86_64.mini --kickstart=/var/lib/cobbler/kickstarts/ks7-mini.cfg  --distro=Centos-7.5-x86_64
	cobbler profile add --name=centos6.10-x86_64.mini --kickstart=/var/lib/cobbler/kickstarts/ks6-mini.cfg  --distro=Centos-6.10-x86_64
		--name是菜单名,也就是要安装的版本
		--kickstart是具体使用哪个应答文件,应答文件中定义了到底是最下化安装还是图形安装等
		--distro是安装的版本
		再次安装时会多出两个菜单项,也就是多出两个不同的系统,主要体现在ks文件定义的不同,安装包等等
删除菜单项
	cobbler profile remove --name=Centos-6.10-x86_64	:再次安装时就少一个选择
	cobbler profile remove --name=Centos-7.5-x86_64
为菜案项改名字
	cobbler profile rename --name=centos6.10-x86_64.mini --newname=centos6.10-x86_64.desktop	
		名字改了后建议看看ks应答文件中是否对应有安装包,要不改名字的意义何在
查看菜单项的详细信息
	cobbler profile report --name=centos7.5-x86_64.mini	:能看到对应的应答文件是哪个,路径在哪,还有其他信息

基于web方式管理cobbler

yum install cobbler-web		:安装web包,需要epel源
		安装后cobbler-web的配置文件放在了/etc/httpd/conf.d/目录下cobbler_web.conf
		这就说明要是用web管理就需要httpd配合使用,需要重启httpd服务,重启后ss -nltu查看会多出一个443端口,cobbler-web方式是基于https加密来访问的
https://192.168.40.4/cobbler_web/		:需要使用https,并且还有一个子目录
					访问时因为证书是自签证书,所以不受信任,可以将证书添加到信任列表,也可以直接接受风险继续访问
回车后输入默认用户和密码
	用户:cobbler
	密码:cobbler
系统默认的验证方法:
	vim /etc/cobbler/modules.conf
		[authentication]
		module = authn_configfile
	
	authn_configfile对应的文件是/etc/cobbler/users.digest
		cat /etc/cobbler/users.digest
			cobbler:Cobbler:a2d6bae81669d707b72c0bd9806e01f3
			用户   :领域realm:加密后密码
	管理cobbler用户
		htdigest --help
		Usage: htdigest [-c] passwordfile realm username
			例:htdigest /etc/cobbler/users.digest Cobbler cheng	:领域要照抄,回车后输入两遍密码
		-c flag creates a new file.	:-c是创建一个新密码文件

通过pam模块认证cobbler_web用户
	vim /etc/cobbler/modules.conf
		[authentication]
		module = authn_pam
	基于pam模块方式是使用的系统用户,所以可以创建一个系统用户
		useradd -s /sbin/nologin cobbler
		echo 123123 | passwd --stdin cobbler
	vim /etc/cobbler/users.conf
		[admins]
		admin="cobbler"
	重启cobbler服务

猜你喜欢

转载自blog.csdn.net/qq_43058911/article/details/102604516
今日推荐