cobbler自动化安装系统

回顾历史–以前是怎么安装系统的:
光盘(ISO文件,光盘的镜像文件)每一台物理机都得给一个光驱,如果用外置光驱的话,每台机器都需要插一下
U盘:ISO镜像刻录到U盘需要每台机器都需要插一下
并行安装网络安装

Linux系统批量自动安装:
1)实现原理:将手动安装的所有的详细步骤记录到一个文件中,然后有一种软件通过读取这个文件就可以实现自动化安装系统。

这个工具叫做KickStart,kickstart是RedHat公司开源的工具,所以对CentOS兼容性最好。注意kickstart是一个项目的名称,没有这个软件。

cobbler是对kickstart的所有组件的封装。本质上就是网页版本的kickstart。

2)kickstart的原理及组件:
什么是PXE
PXE,全名Pre-boot Execution Environment,预启动执行环境;
通过网络接口启动计算机,不依赖本地存储设备(如硬盘)或本地已安装的操作系统;
PXE客户端会调用网际协议(IP)、用户数据报协议(UDP)、动态主机设定协议(DHCP)、小型文件传输协议(TFTP)等网络协议;

在这里插入图片描述

1.环境准备:

[root@kickstart ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
[root@kickstart ~]# uname -r
3.10.0-693.el7.x86_64
[root@kickstart ~]# getenforce
Disabled
[root@kickstart ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
[root@kickstart ~]# hostname -I
10.0.0.201 172.16.1.201

2.安装DHCP服务
1.安装DHCP

2.配置DHCP
cat >>/etc/dhcp/dhcpd.conf<<EOF
subnet 172.16.1.0 netmask 255.255.255.0 {
range 172.16.1.100 172.16.1.199; # 可分配的起始IP-结束IP
option subnet-mask 255.255.255.0; # 设定netmask
default-lease-time 21600; # 设置默认的IP租用期限
max-lease-time 43200; # 设置最大的IP租用期限
next-server 172.16.1.201; # 告知客户端TFTP服务器的ip
filename “/pxelinux.0”; # 告知客户端从TFTP根目录下载pxelinux.0文件
}
EOF

cat >>/etc/dhcp/dhcpd.conf<<EOF
subnet 172.16.1.0 netmask 255.255.255.0 {
range 172.16.1.100 172.16.1.199;
option subnet-mask 255.255.255.0;
default-lease-time 21600;
max-lease-time 43200;
next-server 172.16.1.201;
filename “/pxelinux.0”;
}
EOF

3.运行DHCP服务与检查日志
3.启动dhcp查看日志
[root@kickstart ~]# systemctl start dhcpd
[root@kickstart ~]# systemctl status dhcpd
tailf /var/log/messages
4.通过抓包查看DHCP过程
yum install wireshark -y
tshark -ni eth1

那些年我们踩过的坑(1)
新建空白虚拟机,建完后做快照。
在这里插入图片描述
在这里插入图片描述

安装TFTP服务
安装
yum -y install tftp-server
启动

那些年我们踩过的坑(2)
在这里插入图片描述
上面报错是在TFTP服务的根目录找不到启动文件pxelinux.0
[root@kickstart ~]# cd /var/lib/tftpboot/ # TFTP服务的根目录
[root@kickstart tftpboot]# ls
[root@kickstart tftpboot]#
yum -y install syslinux
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

那些年我们踩过的坑(3上)
在这里插入图片描述
首先排除最简单故障原因:selinux是否关闭,防火墙是否关闭
上面的错误是因为pxelinux.0这个小系统的配置文件(default)不存在,或者文件名不对

那些年我们踩过的坑(3下)
如何找到这个配置文件
第一步:挂载镜像
第二步
mkdir -p /var/www/html/CentOS7
mount /dev/cdrom /var/www/html/CentOS7

第三步:从镜像中找到相关的配置文件
cp -a /var/www/html/CentOS7/isolinux/* /var/lib/tftpboot/
mkdir -p /var/lib/tftpboot/pxelinux.cfg
cp /var/www/html/CentOS7/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
在这里插入图片描述

**

配置完成TFTP服务

**
#systemctl is-active tftp.service
active
tree -F /var/lib/tftpboot/
/var/lib/tftpboot/
├── boot.cat
├── boot.msg
├── grub.conf
├── initrd.img
├── isolinux.bin
├── isolinux.cfg
├── memtest
├── pxelinux.0
├── pxelinux.cfg/
│ └── default
├── splash.png
├── TRANS.TBL
├── vesamenu.c32
└── vmlinuz*

在这里插入图片描述
安装HTTP服务
作用1:提供自动应答文件下载
作用2:提供安装系统所需的所有rpm包下载

yum -y install httpd
systemctl start httpd.service

检查步骤
http://10.0.0.201/CentOS7/
curl http://172.16.1.201/CentOS7/

手动网络安装
编辑default文件
append initrd=initrd.img method=http://172.16.1.201/CentOS7/ #centos6 c7中不推荐
append initrd=initrd.img inst.repo=http://172.16.1.201/CentOS7/
在这里插入图片描述
自动安装操作系统
编写KS文件(包含安装的所有步骤)
方法1:新装CentOS系统/root/anaconda-ks.cfg
方法2:图形CentOS系统提供的图形工具
方法3:了解ks文件语法,编写ks文件。(推荐)

KS文件语法
1.1 ks文件组成
命令段
包组段 以%packages开头,以%end结束
脚本段 以%post开头,以%end结束,在安装完系统之后执行的相关Linux命令、脚本
以%pre开头,以%end结束,在安装完系统之前执行的相关Linux命令、脚本

1.2 kickstart文件语法检查
yum install pykickstart
ksvalidator /var/www/html/ks_config/CentOS-7-ks.cfg

请记住这个验证工具有其局限性。Kickstart 文件可能会很复杂;ksvalidator 可保证其语法正确,且该文件不包含淘汰的选项,但它无法保证安装会成功。它也不会尝试验证 Kickstart 文件的 %pre、%post 和 %packages 部分。

1.3 root加密密码生成
python -c ‘import crypt; print(crypt.crypt(“密码”))’

开始自动安装系统,enjoy!

二:Cobbler介绍:

Cobbler是一个Linux系统安装的服务,可以通过网络启动(PXE)的方式来快速安装、重装物理服务器和虚拟机,同时还可以管理DHCP,DNS等。
Cobbler可以使用命令行方式管理,也提供了基于Web的界面管理工具(cobbler-web),还提供了API接口,可以方便二次开发使用。
Cobbler是较早前的kickstart的升级版,优点是比较容易配置,还自带web界面比较易于管理。
官网:http://cobbler.github.io/

1,环境准备
使用Kickstart安装的系统来继续实验。
主机名:oldboyedu-cobbler
IP地址:10.0.0.202 172.16.1.202

2,安装配置Cobbler
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

安装:yum -y install cobbler cobbler-web dhcp tftp-server pykickstart httpd python-django

启动:systemctl start cobblerd.service
启动 :systemctl start httpd.service
改文件:
1,vim /etc/cobbler/settings manage_dhcp : 0 0改成1
2, vim /etc/cobbler/dhcp.template :%s#192.168#172.16#g 替换网段
3, vim /etc/cobbler/dhcp.template 删掉22,23行
在这里插入图片描述

cobbler check # 再按照提示一个一个修正。
1,2: 改server 和改next_server
在这里插入图片描述
在这里插入图片描述

3:在/etc/xinetd.d/tftp中将’disable’更改为’no’。
4:运行cobbler get-loaders下载引导
5:使用systemctl启用并启动rsyncd.service
systemctl start rsyncd
systemctl enable rsyncd
6:未安装debmirror包,需要管理debian部署和存储库(视频说可以掠过)
7:运行openssl passwd -1生成密码然后写在vim /etc/cobbler/settings的 default_password_crypted后面
在这里插入图片描述
8:未讲

让刚才的配置生效:cobbler sync
再检查:cobbler check 如下图就没有问题了
在这里插入图片描述
启动所有服务: systemctl restart cobblerd.service httpd.service tftp.socket rsyncd.service
[root@lwgcentos7 /]# systemctl is-active cobblerd.service httpd.service tftp.socket rsyncd.service
active
active
active
active

4,Web操作Cobbler
https://10.0.0.202/cobbler_web
会发现访问不到,这里有个坑需要通过一下步奏解决:
在这里插入图片描述

账号密码默认均为cobbler
接下来就在网页上操作,enjoy!

1:导入镜像,先要确认系统有光盘
[root@lwgcentos7 /]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 48G 2.1G 46G 5% /
devtmpfs 900M 0 900M 0% /dev
tmpfs 910M 0 910M 0% /dev/shm
tmpfs 910M 9.6M 901M 2% /run
tmpfs 910M 0 910M 0% /sys/fs/cgroup
/dev/sda1 1014M 138M 877M 14% /boot
tmpfs 182M 0 182M 0% /run/user/0
/dev/sr0 4.3G 4.3G 0 100% /mnt
在这里插入图片描述
2:检查镜像
[root@lwgcentos7 /]# ll /var/www/cobbler/ks_mirror/
total 0
drwxrwxr-x 8 root root 254 Nov 26 07:53 CentOS7-x86_64
drwxr-xr-x 2 root root 33 Apr 17 23:44 config
在这里插入图片描述

3:让网卡名字变成eth0
在这里插入图片描述

防止误重装
sed -i ‘s/pxe_just_once: 0/pxe_just_once: 1/’ /etc/cobbler/settings
配置Cobbler统一管理DHCP
sed -i ‘s/manage_dhcp: 0/manage_dhcp: 1/’ /etc/cobbler/settings
配置DHCP Cobbler模版
sed -i.ori ‘s#192.168.1#172.16.1#g;22d;23d’ /etc/cobbler/dhcp.template

几个重要目录:
1:存放启动页面的目录 cat /var/lib/tftpboot/pxelinux.cfg/default
LABEL local
MENU LABEL (local)
MENU DEFAULT
LOCALBOOT -1

LABEL CentOS7-x86_64
kernel /images/CentOS7-x86_64/vmlinuz
MENU LABEL CentOS7-x86_64
append initrd=/images/CentOS7-x86_64/initrd.img ksdevice=bootif lang= text net.ifnames=0 biosdevname=0 kssendmac ks=http://127.16.1.202/cblr/svc/op/ks/profile/CentOS7-x86_64
ipappend 2

2:存放镜像文件的目录/var/www/cobbler/ks_mirror/
3:cobbler的主配置文件目录 /etc/cobbler/settings
4:存放K文件目录: /var/lib/cobbler/kickstarts/

cobbler profile edit --name=CentOS7-x86_64 --kickstart=/var/lib/cobbler/kickstarts/CentOS7-x86_64.cfg

cobbler profile edit --name=CentOS7-x86_64 --kopts=‘net.ifnames=0 biosdevname=0’

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
对于Cobbler的无人值守安装部署,可以按照以下步骤进行操作: 1. 首先,确保你的系统满足Cobbler安装要求,包括适当的硬件配置和操作系统版本。 2. 安装Cobbler软件包。你可以通过包管理器(如yum或apt)来安装Cobbler。 3. 配置Cobbler。编辑Cobbler的配置文件(通常是/etc/cobbler/settings)来设置网络参数、存储路径、DHCP设置等。 4. 导入操作系统镜像。使用cobbler import命令将操作系统镜像导入Cobbler。你需要提供操作系统的ISO文件或网络安装源。 5. 定义系统配置文件。使用cobbler system命令创建系统配置文件,包括主机名、IP地址、MAC地址等信息。 6. 定义配置文件模板。根据你的需求,可以使用cobbler profile命令创建配置文件模板,并将其关联到系统配置文件上。 7. 配置DHCP服务。Cobbler可以自动配置DHCP服务器,以便客户端能够通过网络安装操作系统。 8. 启动Cobbler服务。使用systemctl或service命令启动Cobbler服务,并确保它在系统启动时自动启动。 9. 进行无人值守安装。现在,你可以使用cobbler system命令进行无人值守安装了。根据定义的系统配置文件,Cobbler将自动进行操作系统安装。 请注意,以上只是一个概述,具体的步骤和命令可能会因为你的系统环境和需求而有所不同。建议你参考Cobbler的官方文档或相关资源,以获取详细的操作指南。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值