cobbler自动安装系统

目录

一、cobbler

1.介绍

2.cobbler配置文件详解

3.cobbler服务端部署

4.新建虚拟机,内存最低2G起步,不选镜像,开机安装


一、cobbler

1.介绍

Cobbler是一个快速网络安装linux的服务,而且在经过调整也可以支持网络安装windows。

使用简单的命令即可完成PXE网络安装环境的配置,同时还可以管理DHCP、DNS、TFTP、RSYNC以及yum仓库、构造系统ISO镜像。 Cobbler支持命令行管理,web界面管理,还提供了API接口,可以方便二次开发使用,Cobbler客户端Koan支持虚拟机安装和操作系统重新安装
cobbler可以干什么

服务器上架后,可以手动选择需要安装的系统(如:Centos6.1 或 Centos 7.9)
服务器上架后,能够根据需求,安装配置操作系统(如:修改IP地址、主机名、选择安装包)
系统安装后,可以自定义的执行脚本,完成系统基础软件初始化(如:Zabbix安装配置、SaltStack安装配置)
可以当内部YUM源,并在系统安装时进行初始化
可以重装系统
Cobbler支持API,可以无缝融合到自建运维平台中
Cobbler支持网卡的路由配置、DNS配置、bonding
cobbler基础原理
 

2.cobbler配置文件详解


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    模块的配置文件

cobbler数据目录

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

cobbler日志文件

日志文件路径                                          说明

/var/log/cobbler/installing                        客户端安装日志

/var/log/cobbler/cobbler.log                     cobbler日志

cobbler命令详解

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

3.cobbler服务端部署

#将 SELINUX=enforcing 替换为SELINUX=disabled
sed -i "s|SELINUX=enforcing|SELINUX=disabled|" /etc/selinux/config

# CentOS 7	开机不自动启动防火墙
systemctl disable firewalld.service
systemctl status firewalld.service

# 关闭防火墙
systemctl stop firewalld.service
setenforce 0

#安装eple源和cobbler相关的软件
yum -y install epel-release
yum -y install httpd dhcp-* tftp xinetd pykickstart
#开启cobbler源,然后再继续安装软件包
yum -y install module enable cobbler
yum  -y install cobbler cobbler-web
#启动HTTP的和cobblerd并设置开机自启
systemctl enable --now httpd

systemctl enable --now cobblerd

ss -antl

#更改配置文件中的IP地址,改成本机的IP地址
cd /etc/cobbler/
vim settings 
server: 192.168.200.10
next_server: 192.168.200.10


#生成一个加密的密码,写入到配置文件中/etc/cobbler/settings
openssl passwd -1


Password: 
Verifying - Password: 
$1$kfUJPjq7$QRlk1RDtp5AN4LZS/LUi9.


vim settings 
default_password_crypted: "$1$kfUJPjq7$QRlk1RDtp5AN4LZS/LUi9."

#启动rsync并设置开机自启
systemctl enable --now rsyncd


#重启cobbler然后配置tftp
[root@localhost cobbler]# vim /etc/xinetd.d/tftp 
service tftp
{       
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /var/lib/tftpboot
        disable                 = no
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}

//执行检查环境命令
[root@localhost loaders]# cobbler check
The following are potential configuration items that you may want to fix:

1 : Some network boot-loaders are missing from /var/lib/cobbler/loaders, you may run 'cobbler get-loaders' to download them, or, if you only want to handle x86/x86_64 netbooting, you may ensure that you have installed a *recent* version of the syslinux package installed and can ignore this message entirely.  Files in this directory, should you want to support all architectures, should include pxelinux.0, menu.c32, elilo.efi, and yaboot. The 'cobbler get-loaders' command is the easiest way to resolve these requirements.
2 : debmirror package is not installed, it will be required to manage debian deployments and repositories
3 : fencing tools were not found, and are required to use the (optional) power management features. install cman or fence-agents to use them

Restart cobblerd and then run 'cobbler sync' to apply changes.
//解决办法
[root@localhost loaders]# cd /var/lib/cobbler/loaders/
[root@localhost loaders]# yum -y install syslinux
[root@localhost loaders]# cp /usr/share/syslinux/pxelinux.0 .
[root@localhost loaders]# cp /usr/share/syslinux/menu.c32 .
[root@localhost loaders]# yum -y install fence-agents
//重启并同步一下
[root@localhost loaders]# systemctl restart cobblerd.service
[root@localhost loaders]# cobbler sync

//打开DHCP功能,并配置DHCP模板文件
[root@localhost loaders]# cd /etc/cobbler/
[root@localhost cobbler]# vim settings 
manage_dhcp: 1
[root@localhost cobbler]# vim dhcp.template 
subnet 192.168.200.0 netmask 255.255.255.0 {
     option routers             192.168.200.10;
     option domain-name-servers 114.114.114.114;
     option subnet-mask         255.255.255.0;
     range dynamic-bootp        192.168.200.100 192.168.200.254;
     default-lease-time         21600;
     max-lease-time             43200;
     next-server                $next_server;
//重启并同步一下
[root@localhost cobbler]# systemctl restart cobblerd.service
[root@localhost cobbler]# cobbler sync


//查看DHCP是以打开
[root@localhost cobbler]# ss -anulp|grep dhcp
UNCONN     0      0            *:67                       *:*                   users:(("dhcpd",pid=13753,fd=7))

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



#导入镜像,会把镜像导入到/var/www/cobbler中。
cobbler import --path=/mnt --name=centos-7 --arch=x86_64

cobbler list

#配置文件位置,里面是镜像文件内容
ll /var/www/cobbler/ks_mirror/centos-7-x86_64/

#创建kickstarts自动安装脚本
这个脚本是系统安装时的操作,也就是装系统的时候让你设置的时区、密码、最小化等等。这里写成了一个脚本

vim /var/lib/cobbler/kickstarts/centos-7-x86_64.ks


lang en_US
keyboard us
timezone Asia/Shanghai
rootpw --iscrypted $default_password_crypted
text
install
url --url=$tree
bootloader --location=mbr
zerombr
clearpart --all --initlabel
part /boot --fstype xfs --size 1024 --ondisk sda
part swap --size 16384 --ondisk sda
part / --fstype xfs --size 1 --grow --ondisk sda
auth --useshadow --enablemd5
$SNIPPET('netowork config')
network --bootproto=dhcp --device=ens33 --onboot=on
reboot
firewall --disabled
selinux --disabled
skipx
%pre
$SNIPPET('log_ks_pre')
$SNIPPET('kickstart_start')
$SNIPPET('pre_install_network_config')
$SNIPPET('pre_anamon')
%end
%packages
@base
@core
sysstat
iptraf
ntp
lrzsz
ncurses-devel
openssl-devel
zlib-devel
OpenIPMI-tools
mysql
nmap
screen
%end
%post #安装后执行操作,可以执行脚本也可以直接执行命令。
systemctl disable postfix.service
$yum_config_stanza
%end

#脚本说明

# Cobbler for Kickstart Configurator for CentOS 7 by clsn
Install                 #安装系统
url --url=$tree      #url 地址为 Cobbler 内置变量
text                    #文本方式安装,修改为图形界面则为 Graphical
lang en_US.UTF-8 #语言
keyboard us         #键盘
zerombr              #该参数用于清除引导信息,需要让其生效可以在参数后添加 yes 即可。可选项,一般不用。
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
#指定引导装载程序怎样被安装.对于安装和升级,这个选项都是必需的.
#Network information
$SNIPPET('network_config') #该参数表示使用下方%pre 中的脚本来配置网络,相关脚本存放于/var/lib/cobbler/snippets
#如果不需要脚本配置可启用以下配置
#network --bootproto=dhcp --device=eth0 --onboot=yes --noipv6
--hostname=CentOS7
timezone --utc Asia/Shanghai #时区
authconfig --enableshadow --passalgo=sha512 #加密 shadow
rootpw --iscrypted $default_password_crypted #设置 root 密码
clearpart --all --initlabel #--all 初除所有分区,后者将磁盘标签初始化为缺省值设置。
part /boot --fstype xfs --size 1024 #boot分区大小
part swap --size 1024 #swap分区大小
part / --fstype xfs --size 1 --grow #根分区大小
firstboot --disable #决定是否在系统第一次引导时启动"设置代理”,禁用。
selinux --disabled #在系统里设置 SELinux 状态
firewall --disabled #在系统狸设置而防火墙状态
logging --level=info #这个命令控制安装过程中anaconda的错误日志,它对安装好的系统没有影响。
reboot #安装后重启
%pre #pre 中定了前面使用的具体脚本名称。
$SNIPPET('log_ks_pre')
$SNIPPET('kickstart_start')
$SNIPPET('pre_install_network_config')
# Enable installation monitoring
$SNIPPET('pre_anamon')
%end
%packages #自定义安装内容,这里可以可以自行生成 ks 文件然后把对应的配置复制到这里。当前配置为最小化安装,以及安装系统常用工具。
@additional-devel
@development
@platform-devel
bash-completion
chrony
dos2unix
kexec-tools
lrzsz
sysstat
tree
vim
wget
git
net-tools
%end
%post #安装后执行操作,可以执行脚本也可以直接执行命令。
systemctl disable postfix.service
%end
-----------------------------------

#查看当前cobbler有哪些配置文件
cobbler profile list

#同步cobbler
cobbler sync


#重启所有服务
systemctl restart xinetd cobblerd httpd

ss -antl

//同步cobbler
[root@localhost kickstarts]# cobbler sync

4.新建虚拟机,内存最低2G起步,不选镜像,开机安装

网络模式要和 Cobbler 服务端的网络模式一致

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值