Linux自动化运维之Cobbler(快速入门)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux自动化运维之Cobbler(快速入门)相关的知识,希望对你有一定的参考价值。

Cobbler介绍
Cobbler是一个Linux服务器快速网络安装的服务,而且在经过调整也可以支持网络安装windows,该工具使用python开发,小巧轻便(才15k行python代码),可以通过网络启动(PXE)的方式来快速安装、重装物理服务器和虚拟机,同时还可以管理DHCP,DNS,TFTP、RSYNC以及yum仓库、构造系统ISO镜像。

Cobbler可以使用命令行方式管理,也提供了基于Web的界面管理工具,还提供了API接口,可以方便二次开发使用。

Cobbler客户端Koan支持虚拟机安装和操作系统重新安装,使重装系统更便捷。

官网:http://cobbler.github.io/

Cobbler各主要组件关系图
技术分享图片
Cobbler设计模式

1.发?版(distro): 表示操作系统。它承载了内核和initrd引导程序
2.存储库(repository): 保存yum缓存?件的镜像仓库
3.配置?件(pro?le):定义操作系统的发?版的ks配置?件,也包含内核参数信息等
4.系统(system):主要配置?络接?, 固定IP以及MAC地址 distro->pro?le-system(可选)

Cobbler运?流程

1.DHCP服务分配IP地址
2.Client(获取IP地址、Next_server IP地址)
3.Next_server(PXE引导?件、启动Cobbler选择界?)
4.tftp(获取启动内核、initrd等?件)
5.kickstart (确定加载项,根据NFS,httpd,ftp等共享)

Cobbler原理
使用Cobbler,您无需进行人工干预即可安装机器。Cobbler设置一个PXE引导环境(它还可以使用yaboot支持PowerPC),并控制与安装相关的所有方面,比如网络引导服务(DHCP和TFTP)与存储库镜像。当希望安装一台新机器时,Cobbler可以:

1.使用一个以前定义的模板来配置DHCP服务(如果启用了管理DHCP)。
2.将一个存储库(yum或rsync)建立镜像或解压缩一个媒介,以注册一个新操作系统。
3.在DHCP配置文件中为需要安装的机器创建一个条目,并使用指定的参数(IP和MAC)。
4.在TFTP服务目录下创建适当的PXE文件。
5.重新启动DHCP服务来反应新的更改。
6.重新启动机器以开始安装(需手工选择系统安装菜单)。

Cobbler软件安装

1.基础环境准备

#查看当前系统版本以及内核信息
[[email protected] ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
[[email protected] ~]# uname -r
3.10.0-693.el7.x86_64
[[email protected] ~]#  uname -n
Cobbler

#关闭selinux防?墙 
[[email protected] ~]# setenforce 0 
[[email protected] ~]# getenforce Disabled

#关闭firewalld防?墙 
[[email protected] ~]# systemctl stop firewalld 
[[email protected] ~]# systemctl disable firewalld

2.安装Cobbler

#安装epel源
[[email protected] ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

#安装cobbler及各个组件
[[email protected] /]# yum install cobbler cobbler-web pykickstart httpd dhcp tftp xinetd -y

注意:用CentOS6部署Cobbler会出现Django一直安装不上,需要自行下载并安装该软件

防止误重装系统,如果系统设置为PXE启动,可能会出现PXE引导循环

sed -i ‘s/pxe_just_once: 0/pxe_just_once: 1/‘ /etc/cobbler/settings

3.Cobbler配置文件概述

#配置文件目录:/etc/cobbler

/etc/cobbler/settings   #cobbler主配置文件
/etc/cobbler/iso/         #iso模板配置文件
/etc/cobbler/pxe          #pxe模板文件
/etc/cobbler/power     #电源配置文件
/etc/cobbler/users.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
/var/lib/cobbler/config #用于存放distros systems profiles等信息配置文件
/var/lib/cobbler/triggers      #用于存放用户自定义的cobbler命令
/var/lib/cobbler/kickstarts #默认存放kickstart文件
/var/lib/cobbler/loaders      #存放各种引导程序

#镜像数据目录: /var/www/cobbler
/var/www/cobbler/ks_mirror  #存放所有镜像文件
/var/www/cobbler/images    #导入发行版的kernel和initrd镜像用于远程网络启动
/var/lib/cobbler/kickstarts #默认存放kickstart文件
/var/lib/cobbler/loaders       #存放各种引导程序
/var/www/cobbler/repo_mirror/ #yum仓库存储目录

#日志目录:/var/log/cobbler
/var/log/cobbler/install.log    #客户端系统安装日志
/var/log/cobbler/cobbler.log    #cobbler日志

4.启动 httpd 以及 CobblerServer

[[email protected] ~]# systemctl start httpd 
[[email protected] ~]# systemctl start cobblerd

5.执? cobbler check 检测,将错误逐?进?解决

技术分享图片

#启?cobbler动态配置,如不启动则可以通过?动或sed命令替换配置
[[email protected] ~]# sed -ri ‘/allow_dynamic_settings:/c allow_dynamic_settings: 1‘ /etc/cobbler/settings
[[email protected] ~]# systemctl restart cobblerd.service

#1.配置CobblerServer地址
[[email protected] ~]# cobbler setting edit --name=server --value=10.0.0.202

#2.修改next_server主机IP
[[email protected] ~]# cobbler setting edit --name=next_server --value=10.0.0.202

#3.配置tftp
[[email protected] ~]# sed -ri ‘/disable/cdisable = no‘ /etc/xinetd.d/tftp
[[email protected] ~]# systemctl enable xinetd
[[email protected] ~]# systemctl start xinetd

#4.启动rsync
[[email protected] ~]# systemctl start rsyncd
[[email protected] ~]# systemctl enable rsyncd

#5.下载?络安装需要执?的?件(让cobbler能够处理x86/x86_64网络引导)
[[email protected] ~]# cobbler get-loaders

#6.安装debmirror, 修改/etc/debmirror.conf
[[email protected] ~]# yum -y install debmirror 
[[email protected] ~]# sed -ri ‘/@dists=/c#@dists="sid";‘ /etc/debmirror.conf
[[email protected] ~]# sed -ri ‘/@arches=/c#@arches="i386";‘ /etc/debmirror.conf

#7.配置系统登录密码(该密码默认为cobbler)
#使用openssl passwd -1 -salt ‘密码‘ ‘随机干扰码‘  命令生成密码
[[email protected] ~]# openssl passwd -1 -salt ‘cobbler‘ ‘123456‘
$1$cobbler$sqDDOBeLKJVmxTCZr52/11
[[email protected] ~]# cobbler setting edit --name=default_password_crypted --value=‘$1$cobbler$sqDDOBeLKJVmxTCZr52/11‘

#8.电源控制模块安装[可选] 
[[email protected] ~]# yum -y install cman fence-agents

#9.开启dhcp地址分配 
#不需要单独运行DHCP,由Cobbler管理
[[email protected] ~]# cobbler setting edit --name=manage_dhcp --value=1

6.执? cobbler check 检查

[[email protected] ~]# systemctl restart cobblerd=
[[email protected] ~]# cobbler check
No configuration problems found.  All systems go.

7.配置cobbler的dhcp模板[不代表给主机分配?定是如下地址]

#配置DHCP,修改cobbler的dhcp模版,这个模板会覆盖dhcp本身的配置文件/etc/dhcp/dhcpd.conf 

[[email protected] ~]# vim /etc/cobbler/dhcp.template
subnet 10.0.0.0 netmask 255.255.255.0 {   #子网范围
     option routers             10.0.0.2; #网关地址 
     option domain-name-servers 10.0.0.2;  #DNS地址
     option subnet-mask         255.255.255.0;  #掩码
     range dynamic-bootp        10.0.0.100 10.0.0.120; #分配地址的范围
     default-lease-time         21600;
     max-lease-time             43200;
     next-server                $next_server; #调用settings配置文件中的next_server 参数

8.同步 CobblerServer 所有配置信息

#重启并同步cobblerServer 
[[email protected] ~]# systemctl restart xinetd
[[email protected] ~]# systemctl restart cobblerd
[[email protected] ~]# cobbler sync

提示:每次修改完Cobbler对应的配置,都要同步下cobbler数据
[[email protected] ~]# cobbler sync

Cobbler基础应用
1.cobbler 使?第?步需要定义 distro 如果已经有 OS 镜像安装?件, 使? improt 导??式。

#1.挂载CentOS7系统ISO光盘
[[email protected] ~]# mount /dev/cdrom /mnt/

#2.import导?系统镜像,以及镜像树 
[[email protected] ~]# cobbler import --path=/mnt/ --name=CentOS-7-x86_64 --arch=x86_64

#3.查看cobbler  distro
[[email protected] cobbler]# cobbler distro list
   CentOS-7-x86_64

# --path 镜像路径,即从哪里导入
# --name 为导入的镜像定义名称
# --arch 指定导入的镜像是32位、64位、ia64, 目前支持的选项有: x86│x86_64│ia64

2.cobbler 默认 profile ?法满?运维需求, 需profile基础上指定 kickstart?定义配置?件(KS文件在该文章的结尾)。

#1.移除默认的profile配置
[[email protected] ~]# cobbler profile remove --name=CentOS-7-x86_64

#2.添加新的profile配置,并指定kickstart应答?件位置 
[[email protected] ]# cobbler profile add --name=CentOS-7-x86_64-web --distro=CentOS-7-x86_64 --kickstart=/var/lib/cobbler/kickstarts/Centos7-x86_64.cfg

#3.验证Kickstart配置文件有效性
cobbler validateks

#附: 如果想修改kickstart?件位置 
[[email protected] ~]# cobbler profile edit --name=CentOS-7-x86_64-web --kickstart=/var/lib/cobbler/kickstarts/CentOS-7-x86_64_Web.cfg

注意:distro可以认为是一个系统盘,profile则为安装的规则,多个profile可以指定一个distro

3.由于 CentOS7 系统?卡名是 eno... ,为了统?标准, 修改为常? eth0 管理(这里还是以默认的profile来演示)
注意是CentOS7才需要下?的步骤CentOS6不需要。

#1.修改centos7系统profile安装时的内核 
[[email protected] ~]# cobbler profile edit --name=CentOS-7-x86_64-web --kopts=‘net.ifnames=0 biosdevname=0‘

#2.也可以在kickstart配置?件中添加内核参数[推荐] 
bootloader --location=mbr --append="net.ifnames=0 biosdevname=0"

4.启动同?段服务器, 系统分配dhcp后会进?Cobbler安装界?, 进?系统选择后, 安装即可。

注意:CentOS7安装至少2G以上内存

ks文件:Centos7-x86_64.cfg

# Cobbler for Kickstart Configurator for CentOS 7 by jason
install
url --url=$tree
text
lang en_US.UTF-8
keyboard us
zerombr
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
#Network information
$SNIPPET(‘network_config‘)
#network --bootproto=dhcp --device=eth0 --onboot=yes --noipv6 --hostname=CentOS7
timezone --utc Asia/Shanghai
authconfig --enableshadow --passalgo=sha512
rootpw  --iscrypted $default_password_crypted
clearpart --all --initlabel
part /boot --fstype xfs --size 1024
part swap --size 1024
part / --fstype xfs --size 1 --grow
firstboot --disable
selinux --disabled
firewall --disabled
logging --level=info
reboot

%pre
$SNIPPET(‘log_ks_pre‘)
$SNIPPET(‘kickstart_start‘)
$SNIPPET(‘pre_install_network_config‘)
# Enable installation monitoring
$SNIPPET(‘pre_anamon‘)
%end

%packages
@^minimal
@compat-libraries
@core
@debugging
@development
bash-completion
chrony
dos2unix
kexec-tools
lrzsz
nmap
sysstat
telnet
tree
vim
wget
%end

%post
systemctl disable postfix.service
%end

以上是关于Linux自动化运维之Cobbler(快速入门)的主要内容,如果未能解决你的问题,请参考以下文章

Linux自动化运维之Cobbler(自定义仓库)

Linux自动化运维之Cobbler(自定义系统安装)

Linux自动化运维之Cobbler(自定义重装)

自动化运维之cobbler安装多版本系统

自动化运维之cobbler安装centos7.3

自动化运维之Cobbler自动化系统部署