Cobbler自动化部署

摘要:
1、 Cobbler服务简介Cobbler是一款用于自动网络安装的免费开源系统安装和部署软件,Cobbler客户端令牌支持虚拟机安装和操作系统重新安装,使重新安装系统更容易1.1 Cobbler设计模式1)版本:表示操作系统。

一、Cobbler服务的介绍

Cobbler是一个免费开源系统安装部署软件,用于自动化网络安装操作系统

Cobbler集成了DNS DHCP软件包更新,以及配置管理,方便操作系统安装自动化

Cobbler支持命令行管理,WEB界面管理,同时提供API接口便于二次开发

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

1.1    cobbler设计模式

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

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

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

4)    系统(system):主要配置网络接口, 固定IP以及MAC地址

1.2 cobbler运行流程

1)    DHCP服务分配IP地址

2)    Client(获取IP地址、Next_server IP地址)

3)    Next_server(获取启动内核、initrd等文件)

4)    tftp (PXE引导文件、启动Cobbler选择界面)

5)    kickstart (确定加载项,根据NFS,httpd,ftp等共享)

二、cobbler服务的安装

2.1基础环境准备

# 将主机名称修改为cobbler
hostnamectl set-hostname cobbler
# uname -r
3.10.0-327.el7.x86_64

# cobbler的本机IP # ifconfig eth0 | awk -F '[: ]+' 'NR==2 {print $3}'
192.168.7.7
# 关闭selinux
sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config setenforce 0 # 关闭NetworkManager systemctl stop NetworkManager systemctl disable NetworkManager # 关闭防火墙 systemctl stop firewalld systemctl disable firewalld

2.2 安装cobbler相关软件并启动服务

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum install cobbler cobbler-web dhcp tftp rsync pykickstart httpd xinetd -y

systemctl start httpd
systemctl start cobblerd
systemctl enable httpd
systemctl enable cobblerd

服务相关目录介绍:

# 配置文件概述  /etc/cobbler                     
/etc/cobbler/settings             # cobbler主配置文件
/etc/cobbler/dhcp.template        # DHCP服务的配置模板
/etc/cobbler/tftpd.template       # tftp服务的配置模板
/etc/cobbler/rsync.template       # rsync服务的配置模板
/etc/cobbler/iso                  # iso模板配置文件目录
/etc/cobbler/pxe                  # pxe模板文件目录
/etc/cobbler/power                # 电源的配置文件目录
/etc/cobbler/users.conf           # web访问的用户名密码配置文件
/etc/cobbler/users.digest         # 用于web访问的用户名密码配置文件
/etc/cobbler/dnsmasq.template     # DNS服务的配置模板
/etc/cobbler/modules.conf         # cobbler模板配置文件

# cobbler数据目录 /var/lib/cobbler
/var/lib/cobbler/config           # 配置文件
/var/lib/cobbler/kickstarts       # 默认存放kickstart文件
/var/lib/cobbler/loaders          # 存放的各种引导程序
/var/www/cobbler                  # 系统安装镜像目录
/var/www/cobbler/ks_mirror        # 导入的系统镜像列表
/var/www/cobbler/images           # 导入的系统镜像启动文件
/var/www/cobbler/repo_mirror      # yum源存储目录
/var/log/cobbler/install.log      # 客户端系统安装日志
/var/log/cobbler/cobbler.log      # cobbler日志

2.3 执行cobbler check,将列出的配置项进行修复。

cobbler check

Cobbler自动化部署第1张

 2.3.1 按第1、2项的提示修改配置文件(以下两种方法任选其一,使用sed进行替换也可以)

# 1.手动进行修改,server和next_server为本机IP
# vim /etc/cobbler/settings
server: 192.168.7.7
next_server: 192.168.7.7

# 2.可以使用cobbler setting命令动态修改,需要先将allow_dynamic_settings设置为1
# vim /etc/cobbler/settings +26
allow_dynamic_settings: 1
# 重启cobblerd服务后,再动态修改
systemctl restart cobblerd
cobbler setting edit --name=server --value=192.168.7.7
cobbler setting edit --name=next_server --value=192.168.7.7

2.3.2 按第3步提示,修改tftp的配置

sed -i 's#disable = yes#disable = no#g' /etc/xinetd.d/tftp

2.3.3 按第4步的提示,执行cobbler get-loaders下载网络需要执行文件

cobbler get-loaders

2.3.4 按第5步提示,启动rsyncd服务

systemctl start rsyncd
systemctl enable rsyncd

2.3.5 按第7步提示,使用openssl生成用户名和密码,并粘贴到配置文件当中。

openssl passwd -1 -salt 'cobbler' 'cobbler'
$1$cobbler$M6SE55xZodWc9.vAKLJs6.
# vim /etc/cobbler/settings +30
default_password_crypted: $1$cobbler$M6SE55xZodWc9.vAKLJs6.

2.3.6 安装软件包和电源管理包

yum install debmirror fence-agents -y

2.3.7 修改/etc/debmirror配置

安装完成后执行cobber check,有如下提示

Cobbler自动化部署第2张

  需要注释@dists和@arches两行内容:

# vim /etc/debmirror.conf
#@dists="sid";
@sections="main,main/debian-installer,contrib,non-free";
#@arches="i386";

2.3.8 重启cobbler服务并同步信息,有如下提示则完成配置

systemctl restart cobbler
cobbler sync

Cobbler自动化部署第3张

 2.4 修改配置让cobbler管理dhcp

# vim /etc/cobbler/settings +60
manage_dhcp: 1

# 配置dhcp模板文件,修改网关、DNS、子网掩码、DHCP地址池。
# vim /etc/cobbler/dhcp.template
# 如下图配置完成后重启服务
systemctl restart xinetd
systemctl restart cobbler cobbler sync

Cobbler自动化部署第4张

 三、Cobbler基础应用

cobbler使用第一步要定义distro,如果已经有OS镜像安装文件,使用import方式导入

定义发生版本CentOS6CentOS7,修改kickstart文件(默认文件/var/lib/cobbler/kickstarts/default.ks

3.1 在VMware Workstation 上面挂载CentOS7.2的系统镜像

Cobbler自动化部署第5张

# 在系统内挂载CentOS7系统ISO光盘
mount /dev/cdrom /mnt/

# 如果使用的是KVM虚拟机,则需要把镜像文件拷贝到虚拟机内进行挂载
mount CentOS-7.2-x86_64-DVD-1511.iso /mnt/

3.2 CentOS7.2镜像导入到cobbler

cobbler import --path=/mnt/ --name=CentOS-7-x86_64 --arch=x86_64

# 不指定kickstart,可以自定义ks文件,选择不同的KS文件进行安装。
--path    镜像路径
--name  安装源定义名称
--arch    指定操作系统平台是32/64位
Cobbler会将镜像中的所有的文件拷贝到本地一份,存放到如下目录中:
/var/www/cobbler/ks_mirror/CentOS-7-x86_64/

 Cobbler自动化部署第6张

  3.3 修改CentOS-7-x86_64默认的ks文件

# 由于默认的ks文件是/var/lib/cobbler/kickstarts/sample_end.ks,无法满足我们的需求,所以要自定义ks文件,下面的命令进行修改:
cobbler profile edit --name=CentOS-7-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos7-x86_64.cfg

# CentOS7 ks文件的内容
cat /var/lib/cobbler/kickstarts/centos7-x86_64.cfg 
#Kickstart Configurator by leon
#platform=x86, AMD64, or Intel EM64T
#System  language
lang en_US
#System keyboard
keyboard us
#Sytem timezone
timezone Asia/Shanghai
#Root password
rootpw --iscrypted $default_password_crypted
#rootpw --iscrypted $1$cobbler$M6SE55xZodWc9.vAKLJs6.
#Use text mode install
text
#Install OS instead of upgrade
install
#Use NFS installation Media
url --url=$tree
#url --url=http://192.168.7.7/CentOS-7.2-x86_64
#System bootloader configuration
bootloader --location=mbr
#Clear the Master Boot Record
zerombr
#Partition clearing information
clearpart --all --initlabel 
#Disk partitioning information        注:如果是KVM虚拟机,磁盘类型为vda,还需要注意swap分区的大小
part /boot --fstype xfs --size 1024 --ondisk sda
part swap --size 10240 --ondisk sda
part / --fstype xfs --size 1 --grow --ondisk sda
#System authorization infomation
auth  --useshadow  --enablemd5 
#Network information
$SNIPPET('network_config')
#network --bootproto=dhcp --device=eth0 --onboot=on
# Reboot after installation
reboot
#Firewall configuration
firewall --disabled 
#SELinux configuration
selinux --disabled
#Do not configure XWindows
skipx

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


#Package install information

%packages
@base
@core
sysstat
iptraf
ntp
lrzsz
ncurses-devel
openssl-devel
zlib-devel
OpenIPMI-tools
nmap
screen
%end

%post
systemctl disable postfix.service
$yum_config_stanza
%end

查看是否修改后的结果

Cobbler自动化部署第7张

3.4 将CentOS7默认网卡名称修改为eth0

# 增加内核参数
cobbler profile edit --name CentOS-7-x86_64 --kopts='net.ifnames=0 biosdevname=0'

 3.5 可制作两个不同版本的系统,再定义一个Centos6.5的镜像

Cobbler自动化部署第8张

umount /dev/cdrom
mount /dev/cdrom /mnt/

Cobbler自动化部署第9张

  3.6 将CentOS6.5的镜像导入cobbler当中

 cobbler import --path=/mnt/ --name=CentOS-6-x86_64 --arch=x86_64

Cobbler自动化部署第10张

 Cobbler自动化部署第11张

 3.7 修改CentOS6.5的默认KS文件

cobbler profile edit --name=CentOS-6-x86_64 --kickstart=/var/lib/cobbler/kickstarts/Cobbler-CentOS-6.5-x86_64.cfg
systemctl restart xinetd
systemctl restart cobbler cobbler sync
cat /var/lib/cobbler/kickstarts/Cobbler-CentOS-6.5-x86_64.cfg #platform=x86, AMD64, or Intel EM64T # System authorization information auth --useshadow --enablemd5 # System bootloader configuration bootloader --location=mbr # Partition clearing information clearpart --all --initlabel #partition information 注:如果是KVM虚拟机,磁盘类型为vda,还需要注意swap分区的大小 part /boot --fstype ext4 --size 1024 --ondisk sda part swap --size=2048 part / --fstype ext4 --size 1 --grow --ondisk sda # Use text mode install text # Firewall configuration firewall --disable # Run the Setup Agent on first boot firstboot --disable # System keyboard keyboard us # System language lang en_US # Use network installation url --url=$tree # If any cobbler repo definitions were referenced in the kickstart profile, include them here. $yum_repo_stanza # Network information $SNIPPET('network_config') # Reboot after installation reboot #Root password rootpw --iscrypted $default_password_crypted # SELinux configuration selinux --disabled # Do not configure the X Window System skipx # System timezone timezone Asia/Shanghai # Install OS instead of upgrade install # Clear the Master Boot Record zerombr %packages @base @compat-libraries @debugging @development tree nmap sysstat lrzsz dos2unix telnet %pre $SNIPPET('log_ks_pre') $SNIPPET('kickstart_start') $SNIPPET('pre_install_network_config') # Enable installation monitoring $SNIPPET('pre_anamon') %post %end

3.8 创建空的虚拟机使用PXE的方式启动,进行安装系统。

Cobbler自动化部署第12张

  四、客户端自动重装

使用epel源安装koan软件

yum install koan -y
koan --replace-self --server=192.168.7.7 --profile=CentOS-7-x86_64
reboot

Cobbler自动化部署第13张

重启后会自动进行安装

 Cobbler自动化部署第14张

  五、自定义仓库

仓库所在的位置

Cobbler自动化部署第15张

5.1 添加一个zabbix的阿里源

cobbler repo add --name=zabbix3.4 --mirror=https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/ --arch=x86_64 --breed=yum

5.2 查看已添加的源,并向本地同步软件

cobbler repo list
   zabbix3.4 
cobbler reposync

# 删除已添加的源
cobbler repo remove --name=zabbix3.4

Cobbler自动化部署第16张

  5.3 把源加入report的配置文件当中

cobbler profile edit --name=CentOS-7-x86_64 --repos=zabbix3.4

Cobbler自动化部署第17张

 还要确认ks文件中是否配置有yum_config_stanza这一行

Cobbler自动化部署第18张

 5.4 待安装系统的时候会安装添加上源的配置文件

Cobbler自动化部署第19张

安装软件的时候就会自动到仓库中下载

Cobbler自动化部署第20张

 5.5 还需要定时同步 cobbler的软件包

echo "0 0 * * * /usr/bin/cobbler reposync --tries=3 --no-fail" >>/var/spool/cron/root

六、修改cobbler默认显示的页面

vim /etc/cobbler/pxe/pxedefault.template

Cobbler自动化部署第21张

 七、cobbler自定义安装

由于kickstart指定某台服务器使用某个具体的ks文件比较复杂,所以引用cobbler就变得非常简单。通过物理MAC地址来区分。

Cobbler system主要目的配置网络接口,通过system指定服务器MAC地址来固定机器的IP、掩码、网关、DNS、主机名等实现基础环境的标准化。

7.1 安装前规划

MAC:    00:50:56:22:3F:00
IP:     192.168.7.10
子网:    255.255.255.0
网关:    192.168.7.2
DNS:    114.114.114.114
主机名称:linux-leon1.com
系统版本:CentOS 7.2

7.2 上机有MAC地址是通过VM来获取到的,如果是物理机,则验收的时候就可以拿到MAC地址

Cobbler自动化部署第22张

# cobbler profile list
   CentOS-6-x86_64
   CentOS-7-x86_64
# cobbler system add --name=linux-leon1.com --mac=00:50:56:22:3F:00 --profile=CentOS-7-x86_64 --ip-address=192.168.7.10 --subnet=255.255.255.0 --gateway=192.168.7.2 
--interface=eth0 --static=1 --hostname=linux-leon1.com --name-servers='114.114.114.114' # cobbler system list linux-leon1.com # cobbler system report # cobbler sync

Cobbler自动化部署第23张

 Cobbler自动化部署第24张

 7.3 启动虚拟机,自动进行安装操作。

Cobbler自动化部署第25张

虚拟机已经起来,查看下配置

Cobbler自动化部署第26张

 Cobbler自动化部署第27张

免责声明:文章转载自《Cobbler自动化部署》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇elasticsearch安装kibana插件[rsync]rsync设定及错误处理下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Python web前端 06 运算符 循环

Python web前端 06 运算符 循环 一、运算符 #JS六大数据类型 #number 数字 #string 字符串 #boolean 布尔型 #function 函数 #undefined 未定义:一个变量声明之后没有复制就是未定义 #object 对象 在JS里面null属于对象类型,但是它不具有很多对象的共性,所以很多资料将他归为单...

CentOS7安装OpenStack(Rocky版)-01.控制节点的系统环境准备

分享一下Rocky版本的OpenStack安装管理经验: OpenStack每半年左右更新一版,目前是版本是201808月发布的版本-R版(Rocky),目前版本安装方法优化较好,不过依然是比较复杂 官方文档地址:https://docs.openstack.org/install-guide/openstack-services.html 本文主要分享控...

CentOS通过crontab定时重启服务器

最近有个需求,每天定时重启服务器 比较少干这个事情,于是上网找了一下,找到两篇博客是写CentOS是怎么用crontab定时重启服务器 很简单: 通过crontab -l 查看,还没有相应的命令 通过crontab -e 命令,进入编辑界面 参照别人的教程,加上一行命令(凌晨4:50重启): 50 4 * * * root /sbin/reboot :...

openssl安装/更新教程(CentOS)

1.下载openssl 下载链接:https://www.openssl.org/source/snapshot/ 里边是当前仍支持版本的快照;同版本不同日期内容可能不同的,所以下载一般下对应版本的最新快照;安装出错则尝试另一个快照。  解压后的文件夹下有INSTALL和README等文件。 2.安装 以root身份执行: openssl version...

CentOS 5下freeswitch中集成使用ekho实现TTS功能二

三:以上Festival安装完成以后回到ekho安装目录: 执行./configure --enable-festival 前 更改configure 1:替换 #AC_DEFINE(ENABLE_FESTIVAL,,[Enable Festival]) #LIB_FESTIVAL="${srcdir}/lib/libFestival.a ${srcdir...

nginx 反向代理

nginx 反向代理 docker部署apache服务 docker部署nginx服务 修改nginx 监听及转发配置 测试 docker部署apache服务 创建Dockerfile,写入以下内容,执行docker build -t v4/apache . 创建v4/apache 镜像。 FROM ubuntu:18.04 MAINTAINER ca...