Cobbler是一个Linux系统安装服务器,可以自动化安装和配置新的操作系统实例。它可以自动配置kickstart安装环境、DHCP、DNS和TFTP服务,并支持许多Linux发行版,如CentOS、Debian、Fedora等。
安装Cobbler- 下载并安装EPEL软件源
$ yum install epel-release
- 安装Cobbler及相关依赖
$ yum install cobbler cobbler-web httpd dhcp tftp-server pykickstart syslinux xinetd fence-agents
- 启动Cobbler相关服务
$ systemctl start cobblerd
$ systemctl start httpd
$ systemctl start xinetd
- 禁用SELinux
$ setenforce 0
为了确保安全,可以在Cobbler安装完毕后再重新启用SELinux。
- 配置Cobbler
首先,备份原始配置文件:
$ cp /etc/cobbler/settings{,.bak}
$ cp /etc/cobbler/dhcp.template{,.bak}
然后修改/etc/cobbler/settings
配置文件,例如:
manage_dhcp: 1
next_server: 192.168.1.2
server: 192.168.1.2
最后修改/etc/cobbler/dhcp.template
,例如:
“`
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.1;
option domain-name-servers 192.168.1.2;
option subnet-mask 255.255.255.0;
range dynamic-bootp 192.168.1.100 192.168.1.200;
default-lease-time 21600;
max-lease-time 43200;
class "pxeclients" {
match if substring(option vendor-class-identifier, 0, 9) = "PXEClient";
next-server cobbler-server-ip-address;
filename "/pxelinux.0";
}
}
“`
注意将cobbler-server-ip-address
替换成自己服务器的IP地址。
- 同步Cobbler设置
$ cobbler sync
$ systemctl restart cobblerd
- 防火墙设置
$ firewall-cmd --add-service=dhcp --permanent
$ firewall-cmd --add-service=http --permanent
$ firewall-cmd --add-service=tftp --permanent
$ firewall-cmd --add-service=dns --permanent
$ firewall-cmd --add-port=9090/tcp --permanent
$ firewall-cmd --reload
在/var/lib/cobbler/kickstarts
目录下创建一个kickstart文件,例如centos7.ks
:
# 清除所有分区并创建一个根(/)分区
# 预定义一些常用账户和密码
# 安装一些必要的软件包
# 关闭防火墙和selinux
# 启用网络服务
# 安装Grub到/dev/sda
install
auth --enableshadow --passalgo=sha512
keyboard 'us'
lang zh_CN.UTF-8
# 将默认的安装源改为阿里源
url --url=http://mirrors.aliyun.com/centos/7.9.2009/os/x86_64/
text
firstboot --disable
firewall --disabled
selinux --disabled
timezone Asia/Shanghai
bootloader --location=mbr --driveorder=sda --append="panic=5"
# 清除所有分区并创建一个根(/)分区
clearpart --all --initlabel
part /boot --fstype=ext4 --size=1024
part pv.01 --size=1 --grow --ondisk=sda
volgroup vg0 pv.01
logvol / --fstype=ext4 --name=lv_root --vgname=vg0 --size=4096 --grow
%packages
@core
%end
%addon com_redhat_kdump --enable --reserve-mb='auto'
%end
其中url
指定了安装源的URL,可以替换成自己喜欢的镜像源,part
部分修改了分区大小。
将CentOS ISO文件放在/var/www/html
目录下,并执行以下命令进行导入:
$ mount /dev/cdrom /mnt
$ cobbler import --name=centos7 --arch=x86_64 --path=/mnt
添加主机
创建一个新的主机,例如:
$ cobbler system add --name=centos7-host01 --profile=centos7-x86_64 --mac=52:54:00:12:34:56 --ip-address=192.168.1.100 --subnet=255.255.255.0 --gateway=192.168.1.1
其中--profile
指定安装系统的kickstart文件。
现在启动目标主机并从网络启动即可开始安装。
示例 示例1:添加多个主机可以通过循环的方式动态添加多个主机:
$ for ((i=1;i<=5;i++))
do
cobbler system add --name=centos7-host0$i --profile=centos7-x86_64 --mac=52:54:00:12:34:5$i --ip-address=192.168.1.10$i --subnet=255.255.255.0 --gateway=192.168.1.1
done
示例2:通过Cobbler开启PXE服务器
可以通过修改/etc/xinetd.d/tftp
文件开启PXE服务器:
service tftp
{
protocol = udp
port = 69
socket_type = dgram
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/cobbler/tftpboot # 这里修改为Cobbler的TFTP根目录
disable = no
}
修改后,重新启动xinetd服务:
$ systemctl restart xinetd
现在,即可通过PXE启动安装新的系统。