Linux基础服务8——cobbler批量装机

文章目录

  • 一、基本了解
    • 1.1 配置文件
    • 1.2 数据目录
    • 1.3 日志文件
    • 1.4 常用命令
  • 二、普通安装
    • 2.1 服务端操作
    • 2.2 客户端操作
  • 三、定制安装
    • 3.1 手动安装
    • 3.2 脚本安装(推荐)

一、基本了解

cobbler简介:

  1. Cobbler是一个Linux服务器安装的服务,可以通过网络启动(PXE)的方式来快速安装、重装物理服务器和虚拟机,同时还可以管理DHCP,DNS等。
  2. Cobbler可以使用命令行方式管理,也提供了基于Web的界面管理工具(cobbler-web),还提供了API接口,可以方便二次开发使用。
  3. Cobbler是较早前的kickstart的升级版,优点是比较容易配置,还自带web界面比较易于管理。
  4. Cobbler内置了一个轻量级配置管理系统,但它也支持和其它配置管理系统集成,如Puppet,暂时不支持SaltStack。

cobbler集成的服务:

  • PXE服务支持。
  • DHCP服务管理。
  • DNS服务管理(可选bind,dnsmasq)
  • 电源管理
  • Kickstart服务支持
  • YUM仓库管理
  • TFTP(PXE启动时需要)
  • Apache(提供kickstart的安装源,并提供定制化的kickstart配置)

1.1 配置文件

  • cobbler配置文件目录在/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 模块的配置文件

1.2 数据目录

目录 作用
/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仓库存储目录

1.3 日志文件

日志文件路径 说明
/var/log/cobbler/installing 客户端安装日志
/var/log/cobbler/cobbler.log cobbler日志

1.4 常用命令

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

二、普通安装

2.1 服务端操作

1.配置yum源。

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo

//配置epel源。
wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
sed -i 's|^#baseurl=https://download.example/pub|baseurl=https://mirrors.aliyun.com|' /etc/yum.repos.d/epel*
sed -i 's|^metalink|#metalink|' /etc/yum.repos.d/epel*

2.安装cabbor和依赖包,并设置服务开机自启。

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

//设置开机自启。
systemctl enable --now httpd cobblerd

3.修改配置文件,指定服务端IP。

//将以下两个地址ip改成服务端ip。
vim /etc/cobbler/settings 
server: 192.168.130.160            
next_server: 192.168.130.160

4.开启tftp。

vim /etc/xinetd.d/tftp 
......
 disable                 = no      //将该参数修改成no。

5.关闭防火墙和selinux,重启服务器。

//关闭防火墙。
systemctl  stop firewalld
systemctl  disable firewalld

//关闭selinux,并重启服务器。
vim /etc/selinux/config 
setenforce 0
reboot

6.启动rsyncd服务。

systemctl enable --now rsyncd

7.配置cobbler dhcp。

//修改cobbler配置文件,让cobbler控制dhcp。
vim /etc/cobbler/settings 
manage_dhcp: 1       //将0改为1


//vim /etc/cobbler/dhcp.template
subnet 192.168.130.0 netmask 255.255.255.0 {     /修改成服务端同网段。
     option routers             192.168.130.160;     //服务端ip。
     option domain-name-servers 192.168.130.2;      ##服务端网关。
     option subnet-mask         255.255.255.0;
     range dynamic-bootp        192.168.130.170 192.168.130.180;      ## 这里指要分配的ip,这里指从10~20之间有10个。
     default-lease-time         21600;
     max-lease-time             43200;
     next-server                $next_server;

//重启服务并同步配置,改完dhcp必须要sync同步配置。
systemctl restart cobblerd
cobbler sync

//检查dhcp是否正常,查看67端口。
ss -anulp|grep 67

8.导入安装光盘的镜像。

//挂载光盘。
mount /dev/cdrom /mnt

//--path指定镜像路径,--name表示安装源名称,自定义。--arch指定安装源平台
cobbler import --path=/mnt --name=centos-7 --arch=x86_64

9.查看cobbler镜像列表。

cobbler list

Linux基础服务8——cobbler批量装机_第1张图片
10.创建kickstarts自动安装脚本。

cat > /var/lib/cobbler/kickstarts/centos-7-x86_64.ks <<'EOF'
auth --enableshadow --passalgo=sha512
bootloader --location=mbr
clearpart --all --initlabel
part /boot --asprimary --fstype="ext4" --size=500
part swap --fstype="swap" --size=4096
part / --fstype="ext4" --grow --size=15000
text
firewall --disabled
firstboot --disable
keyboard us
lang en_US
url --url=http://192.168.130.160/cobbler/ks_mirror/rhel-7-x86_64   
$yum_repo_stanza
reboot

rootpw --iscrypted $6$2WTFvfNvAMgCUPuC$MJgWGzhakgxrRObcEbAwSe8vkz0s//xyiTllGwxRsHHruQhcskO69u2LVTU9u0eemHXH2pzcGawyAJ54R2E/x0

selinux --disabled
skipx
timezone Asia/Shanghai --isUtc --nontp
install
zerombr

%packages
@^minimal
@core
kexec-tools
%end
%addon com_redhat_kdump --enable --reserve-mb='auto'
%end
%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end
EOF

//生成一个centos-7-x86_64.ks文件,修改配置文件。
vim /var/lib/cobbler/kickstarts/centos-7-x86_64.ks
......
url --url=http://192.168.130.160/cobbler/ks_mirror/centos-7-x86_64     //改成本机IP,安装的什么系统就改成什么系统,这里安装的centos系统。
rootpw --iscrypted $6$h09o.6iB/6AOlbI4...   //将anaconda-ks.cfg里的加密密码复制过来。

11.检查ks文件语法是否有误。

cobbler validateks

Linux基础服务8——cobbler批量装机_第2张图片
12.查看当前cobbler有哪些配置文件。

cobbler profile list

13.修改profile,将我们新建的ks文件设为默认的kickstarts安装文件。

cobbler profile edit --name centos-7-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos-7-x86_64.ks

14.配置网卡名称为传统网卡名称eth0。

cobbler profile edit --name centos-7-x86_64 --kopts='net.ifnames=0 biosdevname=0'

15.检查当前系统cobbler配置文件信息。

cobbler report centos-7-x86_64

16.同步cobbler。

cobbler sync

17.为避免发生未知问题,先把服务端所有服务重启。

systemctl restart cobblerd httpd xinetd

2.2 客户端操作

1.新建一台虚拟机,内存至少2G,不需要选择镜像,且网卡需要与主机网卡一致。
Linux基础服务8——cobbler批量装机_第3张图片

Linux基础服务8——cobbler批量装机_第4张图片

2.开启新建虚拟机从pxe启动,若出现以下界面则表示成功,选择centos-7-x86_64回车自动安装。

Linux基础服务8——cobbler批量装机_第5张图片

Linux基础服务8——cobbler批量装机_第6张图片
3.使用服务端虚拟机的用户/密码,登录进去查看自动分配的ip。
Linux基础服务8——cobbler批量装机_第7张图片

三、定制安装

3.1 手动安装

1.访问https://ip/cobler_web,账号/密码:cobbler/cobbler。
Linux基础服务8——cobbler批量装机_第8张图片
Linux基础服务8——cobbler批量装机_第9张图片

2.系统配置工作。

net.ifnames=0 biosdevname=0

Linux基础服务8——cobbler批量装机_第10张图片
Linux基础服务8——cobbler批量装机_第11张图片

3.准备MAC地址。
Linux基础服务8——cobbler批量装机_第12张图片

Linux基础服务8——cobbler批量装机_第13张图片
Linux基础服务8——cobbler批量装机_第14张图片
4.服务端同步配置,并重启相关服务。

//同步配置。
cobbler sync

//重启服务。
 systemctl restart cobblerd httpd xinetd

6.开启新虚拟机,自动开始安装系统。
Linux基础服务8——cobbler批量装机_第15张图片
Linux基础服务8——cobbler批量装机_第16张图片

3.2 脚本安装(推荐)

  • 在网页配置的参数会在服务端机器上生成一个文件,里面记录了所有的配置项。此时可以通过脚本生成这种配置文件就可以达到一次性装多台主机。
  • 配置文件存放目录/var/lib/cobbler/config/systems.d。

1.编写脚本。

//准备要安装机器的mac地址。
cat /opt/scripts/client_info 
mysql1 00:50:56:31:A2:F5 192.168.130.175
mysql2 00:50:56:23:F4:89 192.168.130.176


//运行脚本。
cat /opt/scripts/cobbler_centos_install.sh 
#!/bin/bash
ip_server=`ip a |grep global|awk -F " +|/" '{print $3}'`

# 逐行读取客户机清单,获得相应参数,清单路径:/script/client_info
while read line
do
client_hostname=`echo $line | awk '{print $1}'`
client_MAC=`echo $line | awk '{print $2}'`
client_IPADDR=`echo $line | awk '{print $3}'`
	cat > /var/lib/cobbler/config/systems.d/${client_hostname}.json << EOF
{
    "comment": "", 
    "status": "production", 
    "kickstart": "/var/lib/cobbler/kickstarts/centos-7-x86_64.ks", 
    "name_servers_search": [ ], 
    "ks_meta": { }, 
    "kernel_options_post": { }, 
    "image": "", 
    "redhat_management_key": "<>", 
    "virt_path": "<>", 
    "power_user": "", 
    "kernel_options": {
        "biosdevname": "0", 
        "net.ifnames": "0"
    }, 
    "ctime": 1606183288.613767, 
    "name_servers": [
        "$ip_server"
    ], 
    "mtime": 1606183288.613767, 
    "enable_gpxe": false, 
    "template_files": { }, 
    "gateway": "$ip_server", 
    "uid": "MTYwNjE4MzI4OC42MTI4MjI4NzAuMTcyNzY", 
    "virt_auto_boot": 0, 
    "power_type": "ipmitool", 
    "virt_cpus": "<>", 
    "mgmt_parameters": "<>", 
    "boot_files": { }, 
    "hostname": "$client_hostname", 
    "repos_enabled": false, 
    "mgmt_classes": [ ], 
    "power_pass": "", 
    "netboot_enabled": true, 
    "ipv6_autoconfiguration": false, 
    "profile": "centos-7-x86_64", 
    "virt_type": "xenpv", 
    "interfaces": {
        "eth0": {
            "ipv6_address": "", 
            "interface_type": "", 
            "static": true, 
            "cnames": [ ], 
            "mtu": "", 
            "management": false, 
            "interface_master": "", 
            "mac_address": "$client_MAC", 
            "ipv6_prefix": "", 
            "virt_bridge": "xenbr0", 
            "netmask": "255.255.255.0", 
            "bonding_opts": "", 
            "ip_address": "$client_IPADDR", 
            "dhcp_tag": "", 
            "static_routes": [ ], 
            "ipv6_mtu": "", 
            "ipv6_static_routes": [ ], 
            "if_gateway": "", 
            "dns_name": "", 
            "bridge_opts": "", 
            "connected_mode": false, 
            "ipv6_secondaries": [ ], 
            "ipv6_default_gateway": ""
        }
    }, 
    "power_address": "", 
    "proxy": "<>", 
    "fetchable_files": { }, 
    "virt_file_size": "<>", 
    "ldap_enabled": false, 
    "monit_enabled": false, 
    "ipv6_default_device": "", 
    "virt_pxe_boot": 0, 
    "virt_disk_driver": "<>", 
    "owners": "<>", 
    "name": "$client_hostname", 
    "virt_ram": "<>", 
    "power_id": "", 
    "server": "<>", 
    "redhat_management_server": "<>", 
    "depth": 2, 
    "ldap_type": "authconfig", 
    "template_remote_kickstarts": 0
}
EOF
	echo "-------------成功生成${client_hostname}.json------------"
	echo "-------------客户机MAC地址:$client_MAC-------------"
	echo "-------------客户机IP地址为:$client_IPADDR------------"
done < client_info

2.执行脚本,查看生成的装机文件。
Linux基础服务8——cobbler批量装机_第17张图片
3.重启服务,同步配置,网页查看配置项。

systemctl restart cobblerd httpd
cobbler sync 

Linux基础服务8——cobbler批量装机_第18张图片
4.以此打开虚拟机,此时开始自动装机,查看装机后的IP验证结果。
Linux基础服务8——cobbler批量装机_第19张图片
Linux基础服务8——cobbler批量装机_第20张图片

你可能感兴趣的:(Linux基础服务篇,linux,运维,服务器,自动化)