基于cobbler自动化安装linux实验

基于cobbler自动化安装linux实验

前言

相比于pxe,cobbler是pxe的二次封装,能够快速网络安装众多linux版本。cobbler能将多种安装参数封装到一个菜单中,省去了许多配置文件的查找,cobbler会自动从网上下载,并存放到指定的目录,但前提是cobbler服务器需要联网。

cobbler工作流程

  1. client裸机配置了从网络启动后,开机后会广播包请求DHCP服务器(cobbler server)发送其分配好的一个IP
  2. DHCP服务器(cobbler server)收到请求后发送responese,包括其ip地址
  3. client裸机拿到ip后再向cobbler server发送请求OS引导文件的请求
  4. cobbler server告诉裸机OS引导文件的名字和TFTP server的ip和port
  5. client裸机通过上面告知的TFTP server地址通信,下载引导文件
  6. client裸机执行执行该引导文件,确定加载信息,选择要安装的os,期间会再向cobbler server请求kickstart文件和os image
  7. cobbler server发送请求的kickstart和os iamge
  8. client裸机加载kickstart文件
  9. client裸机接收os image,安装该os image

实验步骤

  1. yum -y install cobbler dhcp安装cobbler必要的软件包:cobbler和dhcp,其中cobbler包依赖于httpd,tftp-server等。
    以下为cobbler依赖的软件包,但是dhcp不在列表中。
[root@route2/var/lib/cobbler/kickstarts]$yum deplist cobbler|grep depend
 dependency: /bin/sh
 dependency: /sbin/service
 dependency: /usr/bin/python2
 dependency: createrepo
 dependency: genisoimage
 dependency: httpd
 dependency: mod_wsgi
 dependency: python(abi) = 2.7
 dependency: python-cheetah
 dependency: python-netaddr
 dependency: python-urlgrabber
 dependency: python2-pyyaml
 dependency: python2-simplejson
 dependency: rsync
 dependency: syslinux
 dependency: systemd
 dependency: tftp-server
 dependency: yum-utils
  1. 启动dhcp,httpd,cobblerd,tftpd服务,并设置为开机自启。
    systemctl enable --now httpd cobblerd tftp dhcpd
  2. 执行cobbler check环境检查会报错,通过一下步骤会解决无法仅需进行的报错。
    配置cobbler文件/etc/cobbler/settings,主要的几个参数为:
    server:(390行)指定cobbler的服务器地址
    next_server:(278行)指定tftp的服务器地址
    manage_dhcp:(242行)0或者1,1表示将cobbler的dhcp模板导入到dhcp服务器,0则需要手动配置,建议改为1,通过cobbler进行配置。
    default_password_crypted:(94行)cobbler-web端登录的密码。使用单向加密算法,可以使用openssl passwd -1 -salt生成摘要在导入。
    基于cobbler自动化安装linux实验_第1张图片
    在这里插入图片描述
    基于cobbler自动化安装linux实验_第2张图片在这里插入图片描述
  3. 设置与cobbler中dhcp的模板,路径为:/etc/cobbler/dhcp.template
subnet 192.168.7.0 netmask 255.255.255.0 {
     option routers             192.168.7.2;
     option domain-name-servers 192.168.7.2;
     option subnet-mask         255.255.255.0;
     range dynamic-bootp        192.168.7.100 192.168.7.200;
     default-lease-time         21600;
     max-lease-time             43200;
     next-server                $next_server;
     class "pxeclients" {
          match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
          if option pxe-system-type = 00:02 {
                  filename "ia64/elilo.efi";
          } else if option pxe-system-type = 00:06 {
                  filename "grub/grub-x86.efi";
          } else if option pxe-system-type = 00:07 {
                  filename "grub/grub-x86_64.efi";
          } else if option pxe-system-type = 00:09 {
                  filename "grub/grub-x86_64.efi";
          } else {
                  filename "pxelinux.0";
          }
     }                                 

option routers :网关
option domain-name-servers:域名服务器地址
option subnet-mask: 子网掩码
range dynamic-bootp : dhcp地址范围
default-lease-time ; 续租时间
max-lease-time : 续租最大时间;
next-server : $next_server为cobbler内置变量,指向tftp服务器地址
5.
.使用cobbler get-loaders命令联网获取网卡启动的必要文件,默认保存在/var/lib/cobbler/loaders/路径下
注:此时还未同步到各个服务对应的目录下
基于cobbler自动化安装linux实验_第3张图片
6. 重启cobbler服务systemctl restart cobblerd并使用cobbler sync同步上述配置和获取的所有文件
7. 配置自定义的kickstart启动应答文件,cobbler存放ks文件的路径为/var/lib/cobbler/kickstarts/,将我们生成的ks文件存放到此路径下
建议将ks配置文件中的网络安装url改为变量$tree
url --url=$tree
在这里插入图片描述
8.生成安装系统所需要的光盘镜像,先将光盘挂载至指定目录
使用cobbler import --name=cenos7-mini --path=/mnt --arch=x86_64
--name:指定光盘镜像的名称
--path:导入光盘镜像的地址
--arch:指定镜像的架构
生成的光盘存放与/var/www/cobble/ks_mirror,并根据名称和架构自动生成目录。
基于cobbler自动化安装linux实验_第4张图片
可以通过cobbler distro list列出导入的所有image源及其名称
在这里插入图片描述
9.根据需求,指定上述的光盘和ks生成对应的启动菜单项,从而完成cobbler自动化安装的配置命令为
cobbler profile add --name=centos7-mini --distro=centos7-mini-x86_64 --kickstart= /var/lib/cobbler/kickstarts/ks7-mini.cfg
--name:自定义指定菜单名称
--distro:第8点生成的镜像名称
--kickstart:ks的文件路径

10:配置文件解释补充:
配置文件目录 /etc/cobbler
/etc/cobbler/settings : cobbler 主配置文件
/etc/cobbler/iso/: iso模板配置文件
/etc/cobbler/pxe: pxe模板文件
/etc/cobbler/power: 电源配置文件
/etc/cobbler/user.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 : 模块的配置文件

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

11命令补充:
cobbler commands介绍
cobbler check 核对当前设置是否有问题
cobbler list 列出所有的cobbler元素
cobbler report 列出元素的详细信息
cobbler sync 同步配置到数据目录,更改配置最好都要执行下
cobbler reposync 同步yum仓库
cobbler distro 查看导入的发行版系统信息
cobbler system 查看添加的系统信息
cobbler profile 查看配置信息

最后实验总结

cobbler 实现步骤
安装包,并设置服务
检查配置
根据上面提示修改配置
下载启动相关文件菜单
配置DHCP服务
分别导入centos的安装源,并查看
准备kickstart文件并导入cobbler
测试

cobbler-web管理

1.yum install cobbler-web安装web包
2.systemctl restart httpd重启httpd服务
3.浏览器上输入:https://192.168.7.70/cobbler_web
4.账号密码均为:cobbler
基于cobbler自动化安装linux实验_第5张图片
基于cobbler自动化安装linux实验_第6张图片

你可能感兴趣的:(linux,实验,笔记)