首页 > 系统相关 >批量安装Linux系统之Cobbler构建

批量安装Linux系统之Cobbler构建

时间:2023-08-27 10:36:34浏览次数:57  
标签:批量 配置文件 server etc cobbler yum Linux Cobbler tftp

一、cobbler简介

cobbler是一款自动化操作系统安装的实现,与PXE安装系统的区别是可以同时部署多个版本的系统,而PXE只能选择一种系统。

二、安装cobbler

安装yum源

yum install epel-release -y
yum install dhcp tftp-server xinetd httpd cobbler cobbler-web pykickstart debmirror -y

修改配置文件

vim /etc/cobbler/settings
设置server和next_serverIP为服务端IP

批量安装Linux系统之Cobbler构建_批量安装Linux系统

批量安装Linux系统之Cobbler构建_自动化工具Cobbler的构建_02


生成加密密码,根据配置文件中的提示直接复制命令生成即可

openssl passwd -1 123456

批量安装Linux系统之Cobbler构建_Linux_03

批量安装Linux系统之Cobbler构建_Linux_04


修改tftp配置文件,开启tftp服务

vim /etc/xinetd.d/tftp

批量安装Linux系统之Cobbler构建_Linux_05

配置dhcp服务

vim /etc/dhcp/dhcpd.conf
subnet 10.10.10.0 netmask 255.255.255.0 {
     option routers       10.10.10.11;
     range        10.10.10.100 10.10.10.200;     
}
next-server       10.10.10.11;
filename="pxelinux.0";

禁用非标准化操作系统

vim /etc/debmirror.conf

批量安装Linux系统之Cobbler构建_批量安装Linux系统_06

安装cman和fence-agents把安装好的操作系统隔离出去

yum isntall cman fence-agents -y

启动服务,并加入开机自启动

systemctl start dhcpd
systemctl start httpd
systemctl start cobblerd
systemctl start xinetd
systemctl start rsyncd
systemctl enable httpd cobblerd xinetd rsyncd dhcpd    #加入开机自启

加载并验证配置文件

cobbler sync #加载配置文件
cobbler  check   #验证配置文件
#由于cobbler取消了get-loaders命令,所以需要手动添加启动文件
cp /usr/share/syslinux/pxelinux.0 /var/lib/cobbler/loaders/
cp /usr/share/syslinux/menu.c32 /var/lib/cobbler/loaders/

若执行cobbler check后出现以下提示表示正常

批量安装Linux系统之Cobbler构建_Linux_07

三、导入镜像文件

将镜像文件挂载到本地.虚拟机中挂载一定要提前连接好CD设备,否则会挂载失败。

mount -t iso9660 /dev/cdrom /mnt/

批量安装Linux系统之Cobbler构建_自动化工具Cobbler的构建_08

挂载完毕后导入到cobbler

cobbler import --name="centos7.5.1804" --path=/mnt

默认的ks配置文件在/var/lib/cobbler/kickstarts,也可以自己生成一份配置文件上传至该目录下即可

#查看上传的镜像
cobbler distro list
#查看ks配置文件
cobbler profile list
#查看配置的镜像信息
cobbler  distro report
#上传自定义ks配置文件前,需要将自动生成的文件删除掉
cobbler profile remove --name=centos7.5.1804-x86_64
#添加配置文件
cobbler profile add --name=centos7.5 --distro=centos7.5.1804-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos7.cfg

四、新建虚拟机测试

通过system-config-kickstart 软件生成的cfg文件需要删掉首行的前两句,否则会报错。

批量安装Linux系统之Cobbler构建_批量安装Linux系统_09

客户机通过网卡启动时会弹出一个可选菜单,选择需要安装的系统即可全自动进行安装

批量安装Linux系统之Cobbler构建_自动化工具Cobbler的构建_10

五、cobbler环境部署脚本

此脚本能够自动部署cobbler所需运行环境,并生成两个ks文件分别是最小化安装和图形化安装。可根据自己需要进行导入

由于此脚本实在虚拟机中执行部署,如需用于生产环境请根据需要自行修改。

#!/bin/bash
#获取当前主机IP
IPADD=$(hostname -I|awk '{print $1}')
#提取IP地址前三段
ip_range=$(hostname -I|awk '{print $1}'|head -c 9)
#生成随机密码
passwd=$(openssl passwd -1 123456)

#安装cobbler所依赖的源
yum install epel-release -y
yum install dhcp tftp-server xinetd httpd cobbler cobbler-web pykickstart debmirror -y
sleep 1
yum makecache
sleep 2


#修改settings文件
sed -i "s/^server: 127.0.0.1/server: $IPADD/" /etc/cobbler/settings
sed -i "s/^next_server: 127.0.0.1/next_server: $IPADD/" /etc/cobbler/settings

#修改tftp配置文件
sed -i "/disable/s/yes/no/ " /etc/xinetd.d/tftp

#配置dhcp服务器
cat >> /etc/dhcp/dhcpd.conf <<EOF
subnet ${ip_range}0 netmask 255.255.255.0 {
     option routers       ${IPADD};
     range       ${ip_range}100   ${ip_range}200;     
}
next-server       ${IPADD};
filename="pxelinux.0";
EOF

#禁用非标准化操作系统和32位操作系统
sed -i "s/@dists=\"sid\";/#@dists=\"sid\";/ " /etc/debmirror.conf
sed -i "s/@arches=\"i386\";/#@arches=\"i386\";/ " /etc/debmirror.conf

#安装cman和fence-agents
yum install cman fence-agents -y

#由于cobbler取消了get-loaders命令,所以需要手动添加启动文件
cp /usr/share/syslinux/pxelinux.0 /var/lib/cobbler/loaders/
cp /usr/share/syslinux/menu.c32 /var/lib/cobbler/loaders/
sleep 3

#启动服务并加入开机自启
systemctl start dhcpd
systemctl start httpd
systemctl start cobblerd
systemctl start xinetd
systemctl start rsyncd
systemctl enable httpd cobblerd xinetd rsyncd dhcpd    

sleep 2
#修改默认密码
sed -i "s|^default_password_crypted.*|default_password_crypted:  \""$passwd"\"|"  /etc/cobbler/settings
#重启服务
systemctl restart cobblerd

#导入配置文件
cobbler sync
sleep 1
echo ""

#验证配置文件
cobbler  check
sleep 1
echo ""


#挂载镜像文件
echo "镜像挂载在/mnt目录下"
mount -t iso9660 /dev/cdrom /mnt/

#上传镜像到cobbler目录下
cobbler import --name="centos7.5" --path=/mnt

#查看镜像文件
echo -e "\033[31m上传的镜像为↓↓↓↓↓↓↓↓↓↓↓↓\033[0m"
cobbler distro list
echo -e "\033[31m↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑\033[0m"

#ks配置文件:图形化配置文件
cat > /root/gonme_desk.cfg <<EOF
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --iscrypted \$default_password_crypted
# System language
lang en_US
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use graphical install
graphical
firstboot --disable
# SELinux configuration
selinux --disabled
# Firewall configuration
firewall --disabled
# Reboot after installation
reboot
# System timezone
timezone Africa/Abidjan
# Use network installation
url --url="\$tree"
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --fstype="xfs" --size=600
part swap --fstype="swap" --size=4000
part / --fstype="xfs" --grow --size=1
%packages
@^gnome-desktop-environment
@base
@core
@desktop-debugging
@dial-up
@directory-client
@fonts
@gnome-desktop
@guest-agents
@guest-desktop-agents
@input-methods
@internet-browser
@java-platform
@multimedia
@network-file-system-client
@networkmanager-submodules
@print-client
@x11
chrony
kexec-tools
%end
EOF


#最小化安装配置文件
cat > /root/os_base.cfg <<EOF
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --iscrypted \$default_password_crypted
# System language
lang en_US
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use graphical install
graphical
firstboot --disable
# SELinux configuration
selinux --disabled


# Firewall configuration
firewall --disabled
# Reboot after installation
reboot
# System timezone
timezone Africa/Abidjan
# Use network installation
url --url="\$tree"
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --fstype="xfs" --size=600
part swap --fstype="swap" --size=4000
part / --fstype="xfs" --grow --size=1

%packages
@base
@core
%end
EOF

#拷贝配置文件到ks目录下
echo "带桌面安装系统ks文件:/var/lib/cobbler/kickstarts/gonme_desk.cfg"
cp /root/gonme_desk.cfg /var/lib/cobbler/kickstarts/
echo "最小化安装系统ks文件:/var/lib/cobbler/kickstarts/os_base.cfg"
cp /root/os_base.cfg /var/lib/cobbler/kickstarts/

echo ""
echo ""
#选择需要的ks文件与上传的镜像做绑定,替换自定义ks文件之前需要先删除自动生成的文件
cat <<EOF 
1.查看自动生成的ks文件:cobbler profile list 
2.删除自动生成的ks文件:cobbler profile remove --name=此处填写ks文件名称
3.添加自定义ks文件:cobbler profile add --name=名称自定义 --distro=这里需要与上传的镜像名一致 --kickstart=ks文件所在位置
EOF

标签:批量,配置文件,server,etc,cobbler,yum,Linux,Cobbler,tftp
From: https://blog.51cto.com/qclr/7250961

相关文章

  • 常用linux命令
    1.磁盘备份,将本地的/dev/hdx整盘备份到/dev/hdyddif=/dev/hdxof=/dev/hdy2.磁盘恢复,将备份文件恢复到指定盘ddif=/path/to/imageof=/dev/hdx3.备份MBR,备份磁盘开始的512Byte大小的MBR信息到指定文件ddif=/dev/hdxof=/path/to/imagecount=1bs=5124.回复MBRddif=/path/t......
  • 你的旧电脑是 “过时” 了,还是使用 Linux 的机会?
    导读很多时候,老旧的电脑往往被打上“过时”的标签。Linux 改变了这一现状。翻新旧电脑,让它重新为需要它的人所用。你可能经常听到有人说某个电脑、平板电脑或智能手机“过时了”。当你听到这样的说法时,花一分钟问问自己:“这个人说的是个人观点还是事实?”很多时候他......
  • 常用的linux命令
    《linux常用基础命令1.文件操作命令创建文件:touchfilename创建目录:mkdirdirName删除文件:rmfilename删除文件夹:rm-rfdirName文件复制:cp原始文件目标文件文件夹复制:cp-r原始目录目标目录文件移动:mvpath/sourceFileNamepath/targetFileName文件重命名:mvfil......
  • 面对算法竞赛OI的Linux下vim简易配置
    这段配置基本通用但是需要vim支持clipboard才能复制到系统剪切板下面是配置正文.vimrcletmapleader="\<space>"vnoremap<leader>y"+yinoremapjk<ESC>nnoremap<leader>e<esc>:w<cr>:!g++%-o%<-fsanitize=undefined-Wall-g<c......
  • linux卡片机:u-boot编译烧录
    前言在正式开始今天的内容之前,我想先简单介绍下我用到的这款主控芯片——F1C200S,这是国产厂商全志科技推出的一款移动应用处理器,88个引脚,QFN封装,40nm制程,集成了usbotg、uart、spi、tWI、tp、sd/mmc、csi等接口,支持1080高清视频解码、音频解码、相机等外设,内置了64M的DDR1内存,可......
  • Postgresql 批量插入命令COPY使用
    在很多场景下,我们经常会遇到将某个Excel或Csv文件中的数据,插入到Postgresql。对于这个需求,我们常规的处理办法就是将文件中的数据,按照文件表头名称转换成集合对象然后插入到数据库,当然这对于数据体量不大的文件而言,很显眼没有任何问题,但是如果数据体量一旦上来,将面临如下问题:将......
  • linux部署iasp资料
    在linux上运行ASP一个使用ASP连接MySQL的留言版基于Linux使用ASP连接MySQL基于Linux使用ASP连接MSSQL......
  • Linux网卡配置信息释义
    [root@www~]#cat/etc/sysconfig/network-scripts/ifcfg-eth0TYPE=Ethernet#<==上网类型,目前基本都是以太网。PROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=none#<==启动协议,获取配置方式,有none|bootp|dhcp三个选项。DEFROUTE=yes#<==使用默......
  • Linux 内核 ASoC DMA 引擎驱动程序
    Linux内核ASoC框架,在概念上将嵌入式音频系统拆分为多个可复用的组件驱动程序,包括Codec类驱动程序、平台类驱动程序和机器类驱动程序。在实现上,机器类驱动程序用structsnd_soc_card和structsnd_soc_dai_link结构描述,属于平台类驱动程序的DMA引擎驱动程序由structsnd......
  • Linux磁盘划分,命令汇总
    当有一块新的硬盘添加至Linux后需要在Linux下进行一定的操作后才能正常使用,其大概流程为:先对磁盘进行分区(或者不进行),再将分区设置为物理卷,将设置好的物理卷添加到现有某一卷组下或创建一个新卷组,再将卷组内的多余空间分配至原有的逻辑卷内或者建立新的逻辑卷如果是分配到新的逻......