Linux之cobbler

cobbler

简介

  • cobbler 是 Redhat 支持的一个开源项目,用来部署和安装系统。所以对 Redhat 系列 os 支持是比较好的。
  • cobbler 不仅仅是一个 pxe 服务器,他还可以管理 dns( bind), dhcp。一般数据中心里或者生产环境,是不允许 dhcp, 但是 pxe,必须需要 dhcp,所以我们需要根据 mac 地址来分配 IP,这样 dhcp就不会影响到网络。
  • Cobbler 的优点:自动管理各个服务之间的配置,更强大的管理功能。而且它还有 web 管理界面,可以通过点一点鼠标就可以安装一台主机。
  • Cobbler 的优点:自动管理各个服务之间的配置,更强大的管理功能。而且它还有 web 管理界面,可以通过点一点鼠标就可以安装一台主机。 Kickstart 的模板文件可以配置多个。

运行流程

服务端

  • 启动cobbler服务
  • 进行cobbler服务自检 执行:cobbler check
  • 进行cobbler服务同步 执行:cobbler sync
  • 复制相关的配置文件到TFTP目录
  • 根据DHCP给pxe服务端分配地址
  • TFTP传输启动文件给客户端
  • 服务端发送安装信息
  • 服务端发送ISO镜像以及kickstart文件

客户端

  • 客户端以pxe模式启动
  • 客户端通过DHCP获取地址
  • 客户端通过TFTP向服务端进行文件请求
  • 进行cobbler安装选择界面
  • 客户端确定加载信息
  • 根据配置信息准备安装系统
  • 加载kichstart文件
  • 传输系统安装的其它文件
  • 进行安装系统

配置cobbler

安装cobbler

# 首先安装 epel-release, cobbler 和 tftp-server 在 base 源中是没有的
[root@CobblerServer ~]# yum install -y epel-release
[root@CobblerServer ~]# yum -y install cobbler cobbler-web dhcp tftp-server pykickstart httpd rsync xinetd

cobbler #cobbler 程序包
cobbler-web #cobbler 的 web 服务包
pykickstart #用于操作 kickstart 的 python 库
httpd #Apache web 服务

介绍工作目录

cobbler的配置目录

'''
/etc/cobbler # 配置文件目录
/etc/cobbler/settings # cobbler 主配置文件,这个文件是 YAML 格式, Cobbler 是python 写的程序。
/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 模块配置文件
/var/lib/cobbler #Cobbler 数据目录
/var/lib/cobbler/config #配置文件
/var/lib/cobbler/kickstarts #默认存放 kickstart 文件
/var/lib/cobbler/loaders #存放的各种引导程序
/var/www/cobbler #系统安装镜像目录
/var/www/cobbler/ks_mirror #导入的系统镜像列表
/var/www/cobbler/images #导入的系统镜像启动文件
/var/www/cobbler/repo_mirror #yum 源存储目录
/var/log/cobbler #日志目录
/var/log/cobbler/install.log #客户端系统安装日志
/var/log/cobbler/cobbler.log #cobbler 日志
'''

启动cobbler

# 首先启动 cobbler 和 httpd 服务
[root@CobblerServer ~]# systemctl start cobblerd httpd

[root@CobblerServer ~]# cobbler check      # 检查cobbler

解决自检报错

# 解决问题一与问题二
[root@CobblerServer ~]# vim /etc/cobbler/settings    
        
      server:127.0.0.1 ----> server: 10.1.1.2      # 注意:后面一定要有一个空格在写IP地址
      next_server:127.0.0.1 ----> next_server: 10.1.1.2
# 问题 3:修改 tftp 服务被 xinetd 服务管理
[root@CobblerServer ~]# vim /etc/xinetd.d/tftp
      disbale  yes  ----> disable no
# 问题 4:下载操作系统引导文件
[root@CobblerServer ~]# cobbler get-loaders

# 问题 5:修改 rsyncd 服务为开机自启动状态并启用它。
[root@CobblerServer ~]# systemctl start rsyncd && systemctl enable rsyncd

# 问题 7:修改操作系统默认密码
[root@SR ~]# openssl passwd -1 -salt 'root' 'root123'
      $1$root$x7tWWN5lswqZBbOy8kXti     # 给root用户添加密码
[root@SR ~]# vim /etc/cobbler/settings
      default_password_crypted: "$1$root$x7tWWN5lswqZBbOy8kXti"      # 修改默认密码为上述生成的密码

# PS:由于是实验环境 上述存在部分自检问题尚未解决

修改DHCP配置

# cobbler使用DHCP为PXE服务器分配地址
``` python
[root@CobblerServer ~]# vim /etc/cobbler/dhcp.template
     subnet 10.1.1.0 netmask 255.255.255.0       # 分配的网段
     option routers             10.1.1.188;      # 网关
     option domain-name-servers 8.8.8.8;      # DNS
     option subnet-mask         255.255.255.0;      # 掩码
     range dynamic-bootp        10.1.1.2 10.1.1.254;      # 地址池
     next-server                10.1.1.2;      # 配置文件中的

[root@CobblerServer ~]# vim /etc/cobbler/settings      # 修改配置文件 
      manage_dhcp: 0 ----> manage_dhcp: 1      # 让cobbler启动DHCP服务


[root@CobblerServer ~]# systemctl restart cobblerd.service      # 重启服务
      
[root@CobblerServer ~]# cobbler sync      # 同步配置文件

挂载导入镜像

[root@CobblerServer ~]# mount /dev/sr0 /mnt/
[root@CobblerServer ~]# df -Th      # 查看挂载
[root@CobblerServer ~]# cat /etc/redhat-release      # 查看当前版本
      CentOS Linux release 7.8.2003 (Core)
root@CobblerServer ~]# cobbler import --path=/mnt/ --name=CenTOS7.8 --arch=x86_64      # 导入mnt路径下镜像 命名为Centos7.8 使用x86架构
[root@CobblerServer ~]# cobbler list      # 列出当前镜像

批量安装

  • 设置测试机器与服务端处于同一网段
  • 虚拟机默认以PXE服务进行安装
  • 默认最小化安装

自定义安装cobbler

[root@CobblerServer ~]# cobbler report      # 查看ks存储的路径
      
      Kickstart: /var/lib/cobbler/kickstarts/sample_end.ks
[root@CobblerServer kickstarts]# cobbler profile list      # 查看当前默认的ks应答文件
   CenTOS7.8-x86_64

 # 修改ks文件为我们自己定义的centos7.ks
[root@CobblerServer kickstarts]# cobbler profile edit --name CenTOS7.8-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos7.ks     

定制化安装

# 网卡MAC:00:0C:29:B6:D7:1C
# 实战 1:使用 cobbler 安装系统时,指定好系统的 IP 地址,镜像,网关,主机名等信息

[root@CobblerServer kickstarts] # cobbler system add --name=TsetHost  
--mac=00:0C:29:B6:D7:1C 
--profile=CenTOS7.8-x86_64 --ip-addr=10.1.1.100 
--subnet=255.255.255.0
--interface=eth34
--static=1
--kickstart=/var/lib/cobbler/kickstarts/centos7.ks
[root@CobblerServer kickstarts]# cobbler system list      # 查看定制列表
   TsetHost      # 上述名称

[root@CobblerServer kickstarts]# cobbler sync      # 同步文件

[root@CobblerServer kickstarts]# tail -13 /etc/dhcp/dhcpd.conf      # 查看IP与MAC的映射关系
原文地址:https://www.cnblogs.com/SR-Program/p/13264907.html