前言

运维自动化在生产环境中占据着举足轻重的地位,尤其是面对几百台,几千台甚至几万台的服务器时,仅仅是安装操作系统,如果不通过自动化来完成,根本是不可想象的。记得前面我们探究了基于PXE实现系统全自动安装,但PXE同时只能提供单一操作系统的批量部署,面对生产环境中不同服务器的需求,该如何实现批量部署多版本的操作系统呢?Cobbler便可以的满足这一实际需求,本文带来的是基于Cobbler实现多版本操作系统批量部署。

Cobbler简介

Cobbler是一款自动化操作系统部署的实现工具,由Python语言开发,是对PXE的二次封装。融合多种特性,提供了CLI和Web的管理形式。同时,Cobbler也提供了API接口,方便二次开发使用。它不仅可以安装物理机,同时也支持kvm、xen虚拟化、Guest OS的安装。另外,它还能结合Puppet等集中化管理软件,实现自动化管理。

组件

Cobbler的各主要组件间关系如图所示

实现过程

安装cobbler

#需epel及updates支持
[root@scholar ~]# yum install cobbler -y

cobbler的运行依赖于dhcp、tftp、rsync及dns服务,其中dhcp可由dhcpd提供,也可由dnsmasq提供,tftp可由tftp-server程序包提供,也可由cobbler功能提供,rsync有rsync程序包提供,dns可由bind提供,也可由dnsmasq提供,此处独立管理,即不通过cobbler来管理这些服务。

配置dhcp

#cobbler在安装时会将依赖包tftp-server和xinetd安装,dns服务非必需,所以还要手动安装dhcp
[root@scholar ~]# yum install dhcp -y
[root@scholar ~]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
cp: overwrite `/etc/dhcp/dhcpd.conf'? y
[root@scholar ~]# vim /etc/dhcp/dhcpd.confoption domain-name "scholar.com";
option domain-name-servers 172.16.0.1;
default-lease-time 43200;
max-lease-time 86400;
log-facility local7;
subnet 172.16.0.0 netmask 255.255.0.0 {range 172.16.10.60 172.16.10.70;option routers 172.16.0.1;next-server 172.16.10.125;filename "pxelinux.0";
}[root@scholar ~]# service dhcpd start

配置rsync和tftp

[root@scholar ~]# chkconfig tftp on
[root@scholar ~]# chkconfig rsync on
[root@scholar ~]# service xinetd start

配置cobbler

#检查需要修改的配置,需启动httpd服务及cobblerd
[root@scholar ~]# service cobblerd start
[root@scholar ~]# service httpd start
[root@scholar ~]# cobbler check
The following are potential configuration items that you may want to fix:1 : The 'server' field in /etc/cobbler/settings must be set to something other than loc
alhost, or kickstarting features will not work.  This should be a resolvable hostname o
r IP for the boot server as reachable by all machines that will use it.
2 : For PXE to be functional, the 'next_server' field in /etc/cobbler/settings must be
set to something other than 127.0.0.1, and should match the IP of the boot server on th
e PXE network.
3 : some network boot-loaders are missing from /var/lib/cobbler/loaders, you may run 'c
obbler get-loaders' to download them, or, if you only want to handle x86/x86_64 netboot
ing, 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 wa
nt to support all architectures, should include pxelinux.0, menu.c32, elilo.efi, and ya
boot. The 'cobbler get-loaders' command is the easiest way to resolve these requirements.
4 : debmirror package is not installed, it will be required to manage debian deployment
s and repositories
5 : ksvalidator was not found, install pykickstart
6 : The default password used by the sample templates for newly installed machines (def
ault_password_crypted in /etc/cobbler/settings) is still set to 'cobbler' and should bechanged, try: "openssl passwd -1 -salt 'random-phrase-here' 'your-password-here'" to g
enerate new one
7 : fencing tools were not found, and are required to use the (optional) power manageme
nt features. install cman or fence-agents to use themRestart cobblerd and then run 'cobbler sync' to apply changes.#解决方法
1:# vim /etc/cobbler/settings
server: 172.16.10.125
2:# vim /etc/cobbler/settings
next_server: 172.16.10.125
3:# cobbler get-loaders  #需要可访问互联网,尝试此法返回404错误,只好手动复制文件
# yum install syslinux -y
# cp -r /usr/share/syslinux/* /var/lib/cobbler/loaders/
4:忽略即可
5:# yum install pykickstart -y
6:]# openssl passwd -1 -salt `openssl rand -hex 4`
Password:
$1$ebcbf370$s8C9mNday5b.lE5nh4.7N1# vim /etc/cobbler/settings
default_password_crypted: "$1$ebcbf370$s8C9mNday5b.lE5nh4.7N1"
7:安装cman或fence-agents   #可忽略[root@scholar ~]# service cobblerd restart

添加distro(distribution)

#挂载光盘镜像,每换一个系统镜像都需重新挂载
[root@scholar ~]# mount /dev/cdrom /mnt
mount: block device /dev/sr0 is write-protected, mounting read-only
1

导入CentOS6镜像文件

导入CentOS7镜像文件,请确保已重新挂载镜像

验证是否导入成功

添加profile

#kickstart文件可按实际需要制作,这里直接修改/root/anaconda-ks.cfg,添加关键配置项如下:
url --url=http://172.16.10.125/cobbler/ks_mirror/CentOS-7.0-x86_64  #指定repo位置
#注:CentOS6与CentOS7文件系统不同,千万不能用相同kickstart文件


同步数据

[root@scholar ~]# cobbler sync#CentOS7与CentOS6安装过程略有区别,CentOS7在数据同步完成后需要再次指定安装源
[root@scholar ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
#将此项加入CentOS7的append行内
inst.repo=http://172.16.10.125/cobbler/ks_mirror/CentOS-7.0-x86_64

部署测试

设置为网卡启动

保存重启后进入引导界面,我们先安装CentOS6

引导成功,开始安装

安装CentOS7

引导成功,开始安装

至此,基于Cobbler实现多版本系统批量部署已成功实现,其实以上配置过程可以使用web界面配置,这样就可以不再刻意的去记繁琐的命令,下面我们就来简单看一下

CobblerWeb界面

安装cobbler-web

[root@scholar ~]#  yum install cobbler-web -y

cobbler-web支持多种认证方式,如authn_configfil、authn_ldap或authn_pam等,下面我们基于authn_pam做认证

#修改认证方式
[root@scholar ~]# vim /etc/cobbler/modules.conf[authentication]
module = authn_pam#添加系统用户
[root@scholar ~]# useradd cobuser
[root@scholar ~]# echo 'cobpass' | passwd --stdin cobuser
#添加用户至管理组
[root@scholar ~]# vim /etc/cobbler/users.conf
[admins]
admin = "cobuser"[root@scholar ~]# service cobblerd restart
Stopping cobbler daemon:                                   [  OK  ]
Starting cobbler daemon:                                   [  OK  ]
[root@scholar ~]# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]

访问测试

登陆成功便可配置根据选项来配置了

参考链接 :
企业实战|基于Cobbler实现多版本系统批量部署 : https://mp.weixin.qq.com/s/FtG1m-U2O8xvWACogzwldA

企业实战|基于Cobbler实现多版本系统批量部署相关推荐

  1. 基于Cobbler实现多版本系统批量部署

    前言 运维自动化在生产环境中占据着举足轻重的地位,尤其是面对几百台,几千台甚至几万台的服务器时,仅仅是安装操作系统,如果不通过自动化来完成,根本是不可想象的.记得前面我们探究了基于PXE实现系统全自动 ...

  2. 企业实战案例-- LNMP基础架构的原理及部署以及wordpress论坛的安装

    企业实战案例-- LNMP基础架构的原理及部署以及wordpress论坛的安装 LNMP架构原理 一.源码安装mysql 二.源码安装php 三.源码安装nginx 四.安装wordpress论坛 L ...

  3. 基于ansible role实现LAMP平台批量部署 - 推酷

    基于ansible role实现LAMP平台批量部署 - 推酷 基于ansible role实现LAMP平台批量部署 - 推酷 posted on 2016-04-07 17:17 lexus 阅读( ...

  4. 基于cobbler实现自动安装系统

    说明:安装cobbler.dhcp.tftp的虚拟机两块网卡eth0:10.220.5.117(桥接)用于连接xshell,eth1:192.168.100.86(vmnet3)作为自动安装系统的服务 ...

  5. 企业级基于Centos8.5配置IPXE服务批量部署windows方案

    一.目的 无需U盘,通过网络PXE启动,实现快速安装操作系统! 二.实验环境(皆依托于实际生产环境) 实验拓扑如下,规划出两个网段:生产(10.142.184.0/24).办公(10.157.208. ...

  6. PXE实现批量部署linux系统

    pxe批量部署linux服务器 1.pxe介绍 PXE是有intel设计的协议,它可以使计算机通过网络启动,协议分为client和server两端,PXEclient在网卡的ROM中,当计算机引导时, ...

  7. 基于ansible Role实现批量部署lamp平台

    一.ansible Role介绍 # ansilbe自1.2版本引入的新特性,用于层次性.结构化地组织playbook. # roles能够根据层次型结构自动装载变量文件.tasks以及handler ...

  8. 进阶!基于CentOS7系统使用cobbler实现单台服务器批量自动化安装不同版本系统(week3_day5_part2)-技术流ken...

    前言 在上一篇博文<cobbler批量安装系统使用详解-技术流ken>中已经详细讲解了cobbler的使用以及安装,本篇博文将会使用单台cobbler实现自动化批量安装不同版本的操作系统. ...

  9. 墨天轮社区专属福利:与作者互动问答,民工哥全新力作《Linux系统运维指南:从入门到企业实战》送上!...

    墨墨导读:最近人民邮电出版社出版了新书<Linux系统运维指南:从入门到企业实战>,本书是同名经典畅销书的升级版,基于MySQL 5.7版本进行了内容改写,同时穿插介绍了MySQL 8.0 ...

最新文章

  1. pandas使用duplicated函数删除dataframe中重复列名称的数据列、默认保留重复数据列中的第一个数据列(removing duplicate columns in dataframe)
  2. secureCRT自动断开的解决方法
  3. HTTP协议常用标准状态码含义
  4. 四十四、Hexo搭建自己的博客
  5. 管道(Pipe)/createPipe
  6. C语言解决约瑟夫环问题 详细注释
  7. 用Python写个魂斗罗,另附30个Python小游戏源码
  8. wps分析工具库如何加载_量化分析|TALib超好用的技术库,再给它封装一层如何!...
  9. 2016年408考研算法题
  10. 最好用的进销存软件测评排名
  11. Linux 之 vim 使用
  12. 线性代数【18】点积和对偶性
  13. Java进阶篇 设计模式之十四 ----- 总结篇
  14. 做项目遇到的一些CSS问题
  15. Js 日期字符串分别截取 年 月 日 时 分 秒
  16. Serverlet简介
  17. Java飞书三方网站对接
  18. [ACW]826.单链表
  19. ABAP 如何发布odata服务
  20. 大数据_数据中台建设的成熟度评估模型

热门文章

  1. 新冠疫情相似句对判定,快速匹配准确答案
  2. 知识图谱入门 ,语义搜索
  3. lamp mysql数据库设置_LAMP环境搭建图形界面配置MySQL数据库
  4. Normalization的总结框架
  5. 《C++游戏开发》笔记十一 平滑动画:不再颤抖的小雪花
  6. scanf()的用法
  7. linux双系统安装nvidia,ubuntu 16.04(Windows 10双系统+grub引导)无法进入tt1~tt6(NVIDIA驱动安装相关-黑屏,login loop,分辨率)...
  8. C#动态调用WCF接口,两种方式任你选。
  9. 即将开源 | 2亿用户背后的Flutter应用框架Fish Redux 1
  10. boost使用log库编译报错