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

栏目: 服务器 · 发布时间: 5年前

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

Cobbler介绍

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

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

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

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

Cobbler各主要组件关系图

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

Cobbler设计模式

1.发⾏版(distro): 表示操作系统。它承载了内核和initrd引导程序

2.存储库(repository): 保存yum缓存⽂件的镜像仓库

3.配置⽂件(profile):定义操作系统的发⾏版的ks配置⽂件,也包含内核参数信息等

4.系统(system):主要配置⽹络接⼝, 固定IP以及MAC地址 distro->profile-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.基础环境准备

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

#关闭selinux防⽕墙 
[root@cobbler ~]# setenforce 0 
[root@cobbler ~]# getenforce Disabled

#关闭firewalld防⽕墙 
[root@cobbler ~]# systemctl stop firewalld 
[root@cobbler ~]# systemctl disable firewalld

2.安装Cobbler

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

#安装cobbler及各个组件
[root@Cobbler /]# 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

[root@cobbler ~]# systemctl start httpd 
[root@cobbler ~]# systemctl start cobblerd

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

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

#启⽤cobbler动态配置,如不启动则可以通过⼿动或sed命令替换配置
[root@Cobbler ~]# sed -ri '/allow_dynamic_settings:/c \allow_dynamic_settings: 1' /etc/cobbler/settings
[root@Cobbler ~]# systemctl restart cobblerd.service

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

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

#3.配置tftp
[root@Cobbler ~]# sed -ri '/disable/c\disable = no' /etc/xinetd.d/tftp
[root@Cobbler ~]# systemctl enable xinetd
[root@Cobbler ~]# systemctl start xinetd

#4.启动rsync
[root@Cobbler ~]# systemctl start rsyncd
[root@Cobbler ~]# systemctl enable rsyncd

#5.下载⽹络安装需要执⾏的⽂件(让cobbler能够处理x86/x86_64网络引导)
[root@Cobbler ~]# cobbler get-loaders

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

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

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

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

6.执⾏ cobbler check 检查

[root@Cobbler ~]# systemctl restart cobblerd=
[root@Cobbler ~]# cobbler check
No configuration problems found.  All systems go.

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

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

[root@Cobbler ~]# 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 
[root@Cobbler ~]# systemctl restart xinetd
[root@Cobbler ~]# systemctl restart cobblerd
[root@Cobbler ~]# cobbler sync

提示:每次修改完Cobbler对应的配置,都要同步下cobbler数据

[root@Cobbler ~]# cobbler sync

Cobbler基础应用

1.cobbler 使⽤第⼀步需要定义 distro 如果已经有 OS 镜像安装⽂件, 使⽤ improt 导⼊⽅式。

#1.挂载CentOS7系统ISO光盘
[root@Cobbler ~]# mount /dev/cdrom /mnt/

#2.import导⼊系统镜像,以及镜像树 
[root@Cobbler ~]# cobbler import --path=/mnt/ --name=CentOS-7-x86_64 --arch=x86_64

#3.查看cobbler  distro
[root@Cobbler 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配置
[root@Cobbler ~]# cobbler profile remove --name=CentOS-7-x86_64

#2.添加新的profile配置,并指定kickstart应答⽂件位置 
[root@Cobbler \]# 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⽂件位置 
[root@Cobbler ~]# 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安装时的内核 
[root@Cobbler ~]# 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

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

The Shallows

The Shallows

Nicholas Carr / W. W. Norton & Company / 2011-6-6 / USD 15.95

"Is Google making us stupid?" When Nicholas Carr posed that question, in a celebrated Atlantic Monthly cover story, he tapped into a well of anxiety about how the Internet is changing us. He also crys......一起来看看 《The Shallows》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

在线进制转换器
在线进制转换器

各进制数互转换器

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具