cobbler
Cobbler是通过将DHCP、TFTP、DNS、HTTP等服务进行集成,创建一个中央管理节点,其可以实现的功能有配置服务,创建存储库,解压缩操作系统媒介,代理或集成一个配置管理系统,控制电源管理等。 Cobbler的最终目的是实现无需进行人工干预即可安装机器。在进行进一步的操作之前,我们有必要先了解下pxe和kickstart 。
PXE概述
预启动执行环境(Preboot eXecution Environment,PXE,也被称为预执行环境)是让计算机通过网卡独立地使用数据设备(如硬盘)或者安装操作系统。Intel 搞出来的。
PXE Client发送广播包请求DHCP分配IP地址DHCP
Server回复请求,给出IP地址以及Boot
Server的地址PXE下载引导文件执行引导程序
总结来说,PXE主要是通过广播的方式发送一个包,并请注获取一个地址,而后交给TFTP程序下载一个引导文件
Kickstart 概述
Kickstart 是红帽开发的一种工具,我们可以简单理解为一个自动安装应答配置管理程序。通过读取这个配置文件,系统知道怎么去分区,要安装什么包,配什么IP,优化什么内核参数等等。其主要有以下部分组成:
Kickstart 安装选项,包含语言的选择,防火墙,密码,网络,分区的设置等;
%Pre 部分,安装前解析的脚本,通常用来生成特殊的ks配置,比如由一段程序决定磁盘分区等;
%Package 部分,安装包的选择,可以是 @core 这样的group的形式,也可以是这样 vim-* 包的形式;
%Post 部分,安装后执行的脚本,通常用来做系统的初始化设置。比如启动的服务,相关的设定等。
实验准备
本实验只有一台设备
IP地址192.168.70.120
系统版本:3.10.0-1160.el7.x86_64
关闭防火墙 并且设置开机不自启
[root@localhost ~]# system stop firewalld
[root@localhost ~]# systemctl disable firewalld
[root@localhost ~]# setenforce 0 #
0:设置SELinux 成为permissive模式 1:设置SELinux 成为enforcing模式
关闭状态改为自由状态
[root@localhost ~]# cat /etc/selinux/config
SELINUX=disabled
[root@localhost ~]# sed -i 's/SELINUX=disabled/SELINUX=permissive/' /etc/selinux/
创建一个文件夹 准备挂载
[root@localhost ~]# mkdir centos7/
[root@localhost ~]# mount /dev/cdrom centos7/
挂在前确保此处有系统 并且是已连接状态

设置开机自动挂载
[root@localhost ~]# vim /etc/fstab
/dev/cdrom /root/centos7/ iso9660 defaults 0 0
检测
[root@localhost ~]# mount -a
查看挂载内容
[root@localhost ~]# df -h
删除原有的yum源
[root@localhost ~]# rm -rf /etc/yum.repos.d/*
配置yum源
[root@localhost ~]# vim /etc/yum.repos.d/centos.repo
[centos_file]
name=centos7_file
baseurl=file:///root/centos7
enabled=1
gpgcheck=0
[epel]
name=aliyun
baseurl=http://mirrors.aliyun.com/epel/7/x86_64/
enabled=1
gpgcheck=0
[centos]
name=cobbler
baseurl=http://mirrors.aliyun.com/centos/7/os/x86_64
enabled=1
gpgcheck=0
列出详细信息
[root@localhost ~]# yum repolist
安装cobbler及TFTP 、dhcp、http、pykickstart
[root@localhost ~]# yum -y install cobbler cobbler-web tftp-server httpd dhcp pykickstart
cobbler #Cobbler程序包
cobbler-web #Cobbler的Web服务包
tftp-server #TFTP服务
dhcp #DHCP服务
httpd #HTTP服务
pykickstart #Cobbler检查kickstart语法软件包修改cobbler配置文件
[root@localhost ~]# vim /etc/cobbler/settings
next_server: 192.168.70.120 #修改ip为下一个服务器 本机设置为本机
server: 192.168.70.120 #设置本机为cobbler 服务器
manage_dhcp: 1 #设置cobbler管理dhcp服务
pxe_just_once: 1 #防止客户端重复安装操作系统
修改dhcp配置文件( 改成自己需要分配的网段)
[root@localhost ~]# vim /etc/cobbler/dhcp.template
- subnet 192.168.10.0 netmask 255.255.255.0 {
- option routers 192.168.10.5;
- option domain-name-servers 192.168.10.1;
- option subnet-mask 255.255.255.0;
- range dynamic-bootp 192.168.10.10 192.168.10.254;
- default-lease-time 21600;
- max-lease-time 43200;
- next-server $next_server;
替换网段为192.168.70 按esc键:
:%s/192.168.10/192.168.70/g #将全文10替换为70
重启所有服务并且设置开机自启
[root@localhost ~]# systemctl restart cobblerd
[root@localhost ~]# systemctl restart httpd
[root@localhost ~]# systemctl restart tftp
[root@localhost ~]# systemctl restart rsyncd
[root@localhost ~]# systemctl enable cobblerd
[root@localhost ~]# systemctl enable httpd
[root@localhost ~]# systemctl enable tftp
[root@localhost ~]# systemctl enable rsyncd
获取pxelinux.0引导文件
[root@localhost ~]# cobbler get-loaders
No such command: get-loaders #提示报错
解决方案
[root@localhost ~]# yum -y install syslinux
[root@localhost ~]# cd /usr/share/syslinux/
[root@localhost syslinux]# ls
pxelinux.0
将文件从复制到 /var/lib/cobbler/loaders/路径
[root@localhost syslinux]# cp /usr/share/syslinux/pxelinux.0 /var/lib/cobbler/loaders/
此时虽然cobbler get-loaders 命令依然无法执行,但是我们的/var/lib/cobbler/loaders/路径下已经有了pxelinux.0文件
刷新同步
[root@localhost loaders]# cobbler sync
对cobbler配置检查
[root@localhost etc]# cobbler check
浏览器访问 https://192.168.70.120/cobbler_web 用户名cobbler 密码cobbler

导入镜像
[root@localhost loaders]# cobbler import --path=/root/centos7/ --name=centos88
--path=/root/centos7/ 导入镜像=镜像挂载点 --name=centos88 导入以后=名字 名字随意起
导入以后存放在
[root@localhost loaders]# ls /var/www/cobbler/ks_mirror/
centos88 config
列出镜像
[root@localhost loaders]# cobbler list
distros:
centos88-x86_64
profiles:
centos88-x86_64
………
用 openssl 生成一串密码写入到 cobbler 的配置文件/etc/cobbler/settings,替换 default_password_crypted 字段
-1:表示采用的是MD5加密算法。
-salt:指定salt值,不使用随机产生的salt。在使用加密算法进行加密时,即使密码一样,salt不一样,所计算出来的hash值也不一样,除非密码一样,salt值也一样,计算出来的hash值才一样。salt为8字节的字符串。
xixi 生成一个新用户
1 是密码
[root@localhost loaders]# openssl passwd -1 -salt 'xixi' '1'
Password:
$1$xixi$9AeUCxL68bMhRDHYI2txD. #生成后的加密密码
新生成的加密密码 替换原有配置文件的密码
- [root@localhost loaders]# vim /etc/cobbler/settings
-
- default_password_crypted: "$1$mF86/UHC$WvcIcX2t6crBz2onWxyac."
-
- 或者
-
- sed -i 's/default_password_crypted: "$1$mF86/UHC$WvcIcX2t6crBz2onWxyac./default_password_crypted: $1$xixi$9AeUCxL68bMhRDHYI2txD.' /etc/cobbler/settings
重启
[root@localhost loaders]# systemctl restart cobblerd
做一个ntp时间同步
[root@localhost loaders]# yum -y install chronyd
[root@localhost loaders]# vim /etc/chrony.conf
- # Use public servers from the pool.ntp.org project.
- # Please consider joining the pool (http://www.pool.ntp.org/join.html).
- #server 0.centos.pool.ntp.org iburst
- #server 1.centos.pool.ntp.org iburst
- #server 2.centos.pool.ntp.org iburst
- #server 3.centos.pool.ntp.org iburst
- server ntp.aliyun.com iburst 新添加
- server ntp1.aliyun.com iburst 新添加
重启chronyd 并且设置开机自启
[root@localhost etc]# systemctl restart chronyd
[root@localhost etc]# systemctl enable chronyd
开始装系统
新建虚拟机



到此按正常流程装系统。