Cobbler自动化部署
      

cobbler简介

Cobbler 可以用来快速建立 Linux 网络安装环境

 
  1. Cobbler是一个Linux服务器安装的服务,可以通过网络启动(PXE)的方式来快速安装、重装物理服务器和虚拟机,同时还可以管理DHCP,DNS等
  2. Cobbler可以使用命令行方式管理,也提供了基于Web的界面管理工具(cobbler-web),还提供了API接口,可以方便二次开发使用
  3. Cobbler是较早前的kickstart的升级版,优点是比较容易配置,还自带web界面比较易于管理
  4. Cobbler内置了一个轻量级配置管理系统,但它也支持和其它配置管理系统集成,如Puppet

| cobbler对应关系

 

Cobbler的配置结构基于一组注册的对象。每个对象表示一个与另一个实体相关联的实体。当一个对象指向另一个对象时,它就继承了被指向对象的数据,并可覆盖或添加更多特定信息

 
  • 发行版(distros):表示一个操作系统。它承载了内核和initrd的信息,以及内核参数等其他数据
  • 配置文件(profiles):包含一个发行版、一个kickstart文件以及可能的存储库,还包括更多特定的内核参数等其他数据
  • 系统(systems):表示要配给的机器。它包括一个配置文件或一个镜像、IP和MAC地址、电源管理(地址、凭据、类型)以及更为专业的数据等信息
  • 镜像(images):可以替换一个保函不屑于此类别的文件的发行版对象(例如,无法分为内核和initrd的对象)

| cobbler集成的服务

 
  • PXE服务支持
  • DHCP服务管理
  • DNS服务管理
  • 电源管理
  • Kickstart服务支持
  • YUM仓库管理
  • TFTP
  • Apache

cobbler工作原理

| Server端

 
  • 启动Cobbler服务

  • 进行Cobbler错误检查,执行cobbler check命令

  • 进行配置同步,执行cobbler sync命令

  • 复制相关启动文件到TFTP目录中

  • 启动DHCP服务,提供地址分配

  • DHCP服务分配IP地址

  • TFTP传输启动文件

  • Server端接收安装信息

  • Server端发送ISO镜像与Kickstart文件

| Client端

 
  • 客户端以PXE模式启动

  • 客户端获取IP地址

  • 通过TFTP服务器获取启动文件

  • 进入Cobbler安装选择界面

  • 根据配置信息准备安装系统

  • 加载Kickstart文件

  • 传输系统安装的其它文件

  • 进行安装系统

cobbler安装

说明:虚拟机网卡采用NAT模式或者仅主机模式,不要使用桥接模式,因为后面会搭建DHCP服务器,在同一个局域网多个DHCP服务会有冲突

 

VMware的NAT模式的dhcp服务也关闭,避免干扰

 

 

| 关闭防火墙

# 永久关闭firewalld防火墙

systemctl stop firewalld

systemctl disable firewalld

 

# 永久关闭SELinux防火墙

setenforce 0

sed -i ‘s/^SELINUX=.*/SELINUX=disabled/’ /etc/sysconfig/selinux

 

| 安装cobbler

# 配置epel源

yum -y install epel-release

 

# 安装cobbler及dhcp httpd xinetd cobbler-web

yum -y install cobbler cobbler-web tftp-server dhcp httpd xinetd

 

# 启动cobbler及httpd并加入开机启动

systemctl start httpd cobblerd

systemctl enable httpd cobblerd

| cobbler相关文件介绍

 

| 配置cobbler

 

检查Cobbler的配置,如果看不到下面的结果,再次重启cobbler

cobbler check


看到上面出现的问题,然后一个一个的进行解决,先进行设置为可以动态配置,也可以直接更改配置文件

# 设置可以动态修改配置文件

sed -ri ‘/allow_dynamic_settings:/callow_dynamic_settings: 1’ /etc/cobbler/settings

systemctl restart cobblerd

逐个解决上面的问题

1. server

# cobbler setting edit –name=server –value=10.0.0.4

 

2. next_server

# cobbler setting edit –name=next_server –value=10.0.0.4

 

3. tftp_server 服务启动

# sed -ri ‘/disable/cdisable = no’ /etc/xinetd.d/tftp

# systemctl enable xinetd

# systemctl restart xinetd

 

4. syslinux 只要安装了最新版的syslinux就可以忽略

# yum install syslinux -y

 

5. rsyncd 启动

# systemctl start rsyncd

# systemctl enable rsyncd

 

6. debmirror

# 这个是可选项的,可以忽略。这里就忽略了,它是用于Debian系统的部署

 

7. pykickstart 安装

# yum -y install pykickstart

 

8. default_password_crypted 密码设置

# 注意:这里设置的密码,也就是后面安装完系统的初始化登录密码

# openssl passwd -1 -salt ‘random-phrase-here’ ‘1’

$1$random-p$XyO1vNsfHQl8vTCrvSxhI0

# cobbler setting edit –name=default_password_crypted –value=’$1$random-p$XyO1vNsfHQl8vTCrvSxhI0′

 

9. fencing 安装

# yum -y install fence-agents

 

解决完成再次查看

 

 

| 配置DHCP

# 打开DHCP功能

cobbler setting edit –name=manage_dhcp –value=1

 

# 修改配置文件

vi /etc/cobbler/dhcp.template

· · ·

subnet 10.0.0.0 netmask 255.255.255.0 {    # 这里改为分配的网段和掩码#

option routers             10.0.0.2;  # 如果有网关,这里改为网关地址

option domain-name-servers 223.5.5.5; # 如果有DNS,这里改为DNS地址

option subnet-mask         255.255.255.0; # 改为分配的IP的掩码

range dynamic-bootp        192.168.1.100 192.168.1.254; # 改为分配的IP的范围

· · ·

| 同步cobbler配置

 

同步cobbler配置,它会根据配置自动修改dhcp等服务

cobbler sync

这时候创建一个新虚拟机可以获取到如下信息,没有镜像选择,只能从本地启动

 

| cobbler命令帮助

 

cobbler配置安装centos7.x

通过 Xftp 上传 CentOS 镜像

 

| 创建挂载点,并进行挂载

mkdir -p /oldboyedu/iso/centos7.9

mount -o loop CentOS-7-x86_64-DVD-2009.iso /oldboyedu/iso/centos7.9

# 查看挂载后的目录

ls /oldboyedu/iso/centos7.9

 

| 导入镜像

cobbler import –path=/oldboyedu/iso/centos7.9 –name=centos7.9 –arch=x86_64

| 查看导入后镜像信息

cobbler distro report –name=centos7.9-x86_64

 

| 查看profile信息

cobbler profile report –name=centos7.9-x86_64

 

| 配置kickstart文件

cat >/var/lib/cobbler/kickstarts/centos7.ks<<‘EOF’

# This kickstart file should only be used with EL > 5 and/or Fedora > 7.

# For older versions please use the sample.ks kickstart file.

# Install OS instead of upgrade

install

# Use text mode install

text

# System keyboard

keyboard us

# System language

lang en_US

# System timezone

timezone  Asia/ShangHai

#Root password

rootpw –iscrypted $default_password_crypted

# System authorization information

auth  –useshadow  –enablemd5

# Firewall configuration

firewall –disabled

# SELinux configuration

selinux –disabled

# Use network installation

url –url=$tree

 

# Clear the Master Boot Record

zerombr

# System bootloader configuration

bootloader –location=mbr

# Partition clearing information

clearpart –all –initlabel

part /boot –fstype=xfs –size=500

part swap –fstype=swap –size=2048

part / –fstype=xfs –grow –size=200

 

# If any cobbler repo definitions were referenced in the kickstart profile, include them here.

$yum_repo_stanza

# Network information

$SNIPPET(‘network_config’)

# Do not configure the X Window System

skipx

# Run the Setup Agent on first boot

firstboot –disable

# Reboot after installation

reboot

 

 

%pre

$SNIPPET(‘log_ks_pre’)

$SNIPPET(‘kickstart_start’)

$SNIPPET(‘pre_install_network_config’)

# Enable installation monitoring

$SNIPPET(‘pre_anamon’)

%end

 

%packages

$SNIPPET(‘func_install_if_enabled’)

@core

@base

tree

nmap

wget

lftp

lrzsz

telnet

%end

 

%post –nochroot

$SNIPPET(‘log_ks_post_nochroot’)

%end

 

%post

$SNIPPET(‘log_ks_post’)

# Start yum configuration

$yum_config_stanza

# End yum configuration

$SNIPPET(‘post_install_kernel_options’)

$SNIPPET(‘post_install_network_config’)

$SNIPPET(‘func_register_if_enabled’)

$SNIPPET(‘download_config_files’)

$SNIPPET(‘koan_environment’)

$SNIPPET(‘redhat_register’)

$SNIPPET(‘cobbler_register’)

# Enable post-install boot notification

$SNIPPET(‘post_anamon’)

# Start final steps

$SNIPPET(‘kickstart_done’)

# End final steps

 

sed -ri “/^#UseDNS/cUseDNS no” /etc/ssh/sshd_config

sed -ri “/^GSSAPIAuthentication/cGSSAPIAuthentication no” /etc/ssh/sshd_config

%end

EOF

 

| 编辑centos7镜像所使用的kickstart文件

# 动态编辑指定使用新的kickstart文件

cobbler profile edit –name=centos7.9-x86_64 –kickstart=/var/lib/cobbler/kickstarts/centos7.ks

 

# 验证是否更改成功

cobbler profile report –name=centos7.9-x86_64 |grep Kickstart

 

| 再次同步cobbler配置

cobbler sync

 

| 新建虚拟机进行测试

 

选择centos7.9进行安装即可

 

说明:在client端系统装时,可以在cobbler服务端上查看日志/var/log/messages,观察安装的每一个流程

 

安装成功

 

cobbler Web管理界面配置

web界面有很多功能,包括上传镜像、编辑kickstart、等等很多在命令行操作的都可以在web界面直接操作

 

在上面已经安装了cobbler-web软件,访问地址:https://IP/cobbler_web 即可

 

默认账号为cobbler,密码也为cobbler

修改密码

/etc/cobbler/users.conf     #Web服务授权配置文件

/etc/cobbler/users.digest   #用于web访问的用户名密码

 

# 设置密码,在Cobbler组添加cobbler用户,输入2遍密码确

htdigest /etc/cobbler/users.digest “Cobbler” cobbler

 

# 同步配置并重启httpd、cobbler

cobbler sync

systemctl restart httpd

systemctl restart cobblerd

再次登录即使用新设置的密码登录即可

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇