• Cobbler安装、配置、部署


    toc

    Cobbler 是一个 PEX 的管理工具,用于自动化网络安装操作系统。
    Cobbler 集成了 DNS DHCP 软件包更新,以及配置管理,方便操作系统安装自动化。
    Cobbler 支持命令行管理, web界面管理, 同时提供 API 接口便于二次开发。
    Cobbler 客户端 Koan 支持虚拟机安装和操作系统重新安装,使重装系统更便捷。

    Cobbler服务安装

    基础环境准备

    ## 查看当前系统版本以及内核信息
    [root@cobbler-server ~]# hostnamectl
    Static hostname: cobbler-cerver
    Icon name: computer-vm
    Chassis: vm
    Machine ID: 6878674c84644fd381a5e3a82d80cf18
    Boot ID: 0ec917dac5804f3fa45587a4390fd4fe
    Virtualization: vmware
    Operating System: CentOS Linux 7 (Core)
    CPE OS Name: cpe:/o:centos:centos:7
    Kernel: Linux 3.10.0-693.el7.x86_64
    Architecture: x86-64
    ## 关闭 selinux 防火墙
    [root@cobbler-server ~]# setenforce 0
    [root@cobbler-server ~]# getenforce
    Disabled
    ## 关闭 firewalld 防火墙
    [root@cobbler-server ~]# systemctl stop firewalld
    [root@cobbler-server ~]# systemctl disable firewalld
    ## 安装阿里云YUM源(base源和epel源)
    [root@cobbler-server ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    [root@cobbler-server ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

    阿里云YUM仓库

    安装Cobbler和各个组件

    yum install cobbler cobbler-web pykickstart httpd dhcp tftp xinetd -y

    Cobbler 配置文件概述

    ## 配置文件目录 /etc/cobbler
    /etc/cobbler/settings ## cobbler 主配置文件
    /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 模块配置文件
    ## Cobbler 数据目录 /var/lib/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 日志

    启动服务

    [root@cobbler-server ~]# systemctl start httpd
    [root@cobbler-server ~]# systemctl enable httpd
    [root@cobbler-server ~]# systemctl start cobblerd
    [root@cobbler-server ~]# systemctl enable cobblerd

    执行 Cobbler check 检测,将错误逐一进行解决

    [root@cobbler-server ~]# 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.
    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.
    3 : change 'disable' to 'no' in /etc/xinetd.d/tftp
    4 : 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.
    5 : enable and start rsyncd.service with systemctl
    6 : debmirror package is not installed, it will be required to manage debian deployments and repositories
    7 : 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-phrase-here' 'your-password-here'" to generate new one
    8 : fencing tools were not found, and are required to use the (optional) power management features. install cman or fence-agents to use them
    
    Restart cobblerd and then run 'cobbler sync' to apply changes.

    Cobbler有通过命令配置的动态配置,也可以直接进Cobbler配置文件里面或者通过sed来更改,这里就只写动态配置了。

    ## 启用cobbler动态配置
    [root@cobbler-server ~]# sed -ri '/allow_dynamic_settings:/c allow_dynamic_settings: 1' /etc/cobbler/settings
    [root@cobbler-server ~]# systemctl restart cobblerd
    ## 配置CobblerServer地址
    [root@cobbler-server ~]# cobbler setting edit --name=server --value=192.168.1.1
    ## 修改next_server主机IP
    [root@cobbler-server ~]# cobbler setting edit --name=next_server --value=192.168.1.1
    ## 配置tftp
    [root@cobbler-server ~]# sed -ri '/disable/cdisable = no' /etc/xinetd.d/tftp
    [root@cobbler-server ~]# systemctl enable xinetd
    [root@cobbler-server ~]# systemctl restart xinetd
    ## 启动rsync
    [root@cobbler-server ~]# systemctl start rsyncd
    [root@cobbler-server ~]# systemctl enable rsyncd
    ## 下载网络安装需要执行的文件
    [root@cobbler-server ~]# cobbler get-loaders
    ## 安装debmirror, 修改/etc/debmirror.conf
    [root@cobbler-server ~]# yum install -y debmirror
    [root@cobbler-server ~]# sed -ri '/@dists=/c#@dists="sid";' /etc/debmirror.conf
    [root@cobbler-server ~]# sed -ri '/@arches=/c#@arches="i386";' /etc/debmirror.conf
    ## 配置系统登录密码
    [root@cobbler-server ~]# openssl passwd -1 -salt 'cobbler' 'cobbler'
    [root@cobbler-server ~]# cobbler setting edit --name=default_password_crypted --value='上一个命令的返回值'
    ## 电源控制模块安装
    [root@cobbler-server ~]# yum install -y cman fence-agents
    ## 开启dhcp地址分配
    [root@cobbler-server ~]# cobbler setting edit --name=manage_dhcp --value=1

    重启 Cobbler 再用 cobbler check 检测一下

    [root@cobbler-server ~]# systemctl restart cobblerd
    [root@cobbler-server ~]# systemctl start dhcpd
    [root@cobbler-server ~]# systemctl enable dhcpd
    [root@cobbler-server ~]# cobbler check
    No configuration problems found. All systems go

    配置 Cobbler 的 DHCP 模板

    ## 根据自己的实际情况配置
    [root@cobbler-server ~]# vim /etc/cobbler/dhcp.template
    subnet 192.168.1.0 netmask 255.255.255.0 {
    option routers 192.168.1.254;
    option domain-name-servers 223.5.5.5;
    option subnet-mask 255.255.255.0;
    range dynamic-bootp 192.168.1.2 192.168.1.100;
    default-lease-time 21600;
    max-lease-time 43200;
    next-server $next_server;

    重启并同步Cobbler

    [root@cobbler-server ~]# systemctl restart xinetd
    [root@cobbler-server ~]# systemctl restart cobblerd
    [root@cobbler-server ~]# cobbler sync

    Cobbler基础安装

    Cobbler 导入系统镜像。

    ## 挂载系统光盘
    [root@cobbler-server ~]# mount /dev/cdrom /media/
    ## 用 import 导入系统镜像
    [root@cobbler-server ~]# [root@cobbler-server ~]# cobbler import --path=/media/ --name=centos7.4 --arch=x86_64
    ## 查看导入的系统
    [root@cobbler-server ~]# cobbler distro list
       centos7.4-x86_64

    Cobbler 为每个导入的系统提供默认的 Kickstart 配置文件,但许多情况都无法满足运维需求,需要自定义 Kickstart 配置文件

    ## 移除默认的 profile 配置
    [root@cobbler-server ~]# cobbler profile remove --name="centos7.4-x86_64"
    ## 添加新的 profile 配置 , 并指定 kickstart 应答文件位置
    [root@cobbler-server ~]# cobbler profile add --name=centos7.4-web --distro=centos7.4-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos7.cfg
    ## 验证 kickstart 配置文件有效性
    [root@cobbler-server ~]# cobbler validateks
    ## 如果想修改 kickstart 文件位置
    [root@cobbler-server ~]# cobbler profile edit --name=centos7.4-web --kickstart=/var/lib/cobbler/kickstarts/centos7_Web.cfg

    常用 Kickstart 配置文件
    %Pre部分: 安装前解析的脚本,通常用来生成特殊的 ks 配置,比如由一段程序决定磁盘分区等;
    %Package部分: 安装包的选择,可以是 @base 这样的组的形式,也可以是这样 http-* 包的形式;
    %Post部分: 安装后执行的脚本,通常用来做系统的初始化设置。比如启动的服务,相关的设定等。

    Kickstart模板文件

    由于 CentOS7 系统网卡名是 eno... ,为了统一标准, 修改为常用 eth0 管理, CentOS6 不需要。

    ## 使用默认 Kickstart 配置文件修改
    [root@cobbler ~]# cobbler profile edit --name=centos7.4-x86_64 --kopts='net.ifnames
    =0 biosdevname=0'
    ## 在 kickstart 配置文件中添加内核参数
    bootloader --location=mbr --append="net.ifnames=0 biosdevname=0"

    启动被安装服务器, 系统分配 DHCP 后会进入 Cobbler 安装界面, 进行系统选择后, 安装即可。

    Cobbler自定义重装

    当现有虚拟机运行出现故障或者虚拟机更换其他版本的系统, 需要进行重装操作, 可通过 koan 进行重装系统

    ## 安装 koan(需要epel的YUM源)
    [root@localhost ~]# yum install -y koan
    ## 客户端列出Cobbler Server端存在的profile
    [root@localhost ~]# koan --server=192.168.1.1 --list=profiles
    ## 选择对应配置即可
    [root@localhost ~]# koan --replace-self --server=192.168.1.1 --profile=centos7.4-x86_64
    ## 重启客户端, 客户端自动进入重装
    [root@localhost ~]# reboot

    Cobbler自定义安装

    实际生产当中要求 Kickstart 指定某台服务器要使用某个具体的 ks 文件,这对于以前来说比较复杂, 但对于 Cobbler 可以通过物理MAC地址来区分。
    Cobbler 主要目的配置网络接口, 通过 system 指定服务器 MAC 地址来固定机器的IP、掩码、网关、DNS、主机名等实现基础环境的标准化

    虚拟机 VMware Workstation 查看MAC地址的地方

    物理服务器就不多介绍了,有相应的资产录入

    比如要 MAC:00:0C:29:2B:01:07 配置:
    IP地址:192.168.1.50
    掩码:255.255.255.0
    网关:192.168.1.254
    DNS: 192.168.1.254
    主机名:zabbix-master

    [root@cobbler ~]# cobbler system add --name=zabbix-master --mac=00:0C:29:2B:01:07 
    --profile=Centos-7-web --ip-address=192.168.1.50 --subnet=255.255.255.0 
    --gateway=192.168.1.254 --interface=eth0 --static=1 --hostname=zabbix-master 
    --name-servers=192.168.1.254

    同步配置信息

    [root@cobbler-server ~]# cobbler sync
    ## 查看配置信息
    [root@cobbler-server ~]# cobbler system list
       zabbix-master

    启动相应MAC地址的服务器,就会自动安装系统了

    为了方便可以写个简单的脚本

    #!/bin/bash
    read -p "请输入system名称:" Name
    read -p "请输入Mac地址:" Mac
    clear
    echo "请输入下面其中一个"
    echo $(/usr/bin/cobbler distro list)
    read -p "请输入Profile:" Profile
    clear
    read -p "请输入网卡接口:" Inter
    read -p "请输入IP地址:" Ip
    read -p "请输入掩码:" Net
    read -p "请输入网关:" Gate
    read -p "请输入DNS:" Dns
    read -p "请输入主机名:" HostName
    echo /usr/bin/cobbler system add --name=$Name --mac=$Mac --profile=$Profile
    --ip-address=$IP --subnet=$Net --gateway=$Gate --interface=$Inter 
    --static=1 --hostname=$HostName --name-servers=$Dns
    fi

    Cobbler自定YUM义仓库

    添加YUM仓库

    ## 添加阿里云YUM仓库
    [root@cobbler-server ~]# cobbler repo add --name=openstack-n-centos7 
    --mirror=https://mirrors.aliyun.com/centos/7.4.1708/cloud/x86_64/openstack-newton/
    ## 添加本地YUM仓库
    [root@cobbler-server ~]# cobbler repo add --name=local-ftp-base --mirror=ftp://192.168.1.1/centos7/base/

    同步YUM仓库

    [root@cobbler-server ~]# cobbler reposync

    添加YUM仓库到对应的 profile

    ## http 协议
    [root@cobbler-server ~]# cobbler profile edit --name=centos7.4-x86_64 --repos=openstack-n-centos7
    ## 本地 ftp
    [root@cobbler-server ~]# cobbler profile edit --name=centos7.4-x86_64 --repos=local-ftp-base

    /etc/cobbler/settings里面看看 yum_post_install_mirror 的值是不是为1(默认为1,不是就修改成1)
    修改 kickstart 文件 ( $yum_config_stanza 添加到 %post %end 中间)

    添加定时任务, 定期同步YUM仓库

    echo "00 3 * * * /usr/bin/cobbler reposync --tries=3 --no-fail" >> /var/spool/cron/root

    Cobbler自定义界面

    有时候需要标识企业信息或个人信息,可以通过如下方式进行修改

    ## 自定义装机页面
    [root@cobbler-server ~]# vim /etc/cobbler/pxe/pxedefault.template +3
    MENU TITLE Songguoyou | http://www.songguoyou.com
    ## 同步配置
    [root@cobbler-server ~]# cobbler sync
  • 相关阅读:
    CSS经典实用技巧10招
    分析与设计数据库模型的简单过程
    MS SQL数据类型及长度限制
    firefox与IE的nextSibling
    DIV+CSS布局总结
    Sql Server查找临时表,并删除
    powerDesigner15.1破解
    分别使用函数及游标实现SQL多行转一列
    生命的帐单
    北京有380万“北漂族” 没有归属感但不离不弃!
  • 原文地址:https://www.cnblogs.com/songguoyou/p/11883136.html
Copyright © 2020-2023  润新知