简介

Cobbler是一个快速网络安装linux的服务,而且在经过调整也可以支持网络安装windows。该工具使用python开发,小巧轻便(才15k行python代码),使用简单的命令即可完成PXE网络安装环境的配置,同时还可以管理DHCP、DNS、以及yum仓库、构造系统ISO镜像。今天这里只介绍在企业中利用cobbler进行批量自动化安装centos。其他更多的功能这里不做介绍。如果想详细了解cobbler请百度 Cobbler部署指南

一、实现过程

1.自动安装过程

简单的来说客户端的电脑网卡带有并开启pxe功能,开机会自动获取IP地址、tftp地址、pexlinux文件名----->加载pxelinux.0、内核文件vmlinuz、伪文件系统initrd.img----->启动系统----->到pxelinux指定的tftp地址下载ks.cfg文件----->根据ks.cfg文件的去http、ftp、nfs寻找镜像、安装操作系统

客户端<-------IP---------DHCP服务器

客户端<----pxelinux----tftp服务器

客户端<----default------tftp服务器

客户端<-----ks.cfg------http、ftp、nfs

客户端<----镜像地址---http、ftp、nfs

客户端<----安装系统---http、ftp、nfs

2.基本配置文件结构

pxe批量部署操作系统就是通过以下几个服务共同完成的,cobbler工具是将几者更加集中地进行管理,使运维人员不需要在乎底层的工作。这里只介绍了cobbler用于批量部署系统用到的服务以及相关的文件。

dhcp  /etc/dhcp/dhcp.conf     提供IP地址,提供tftp服务器、pexlinux文件名

tftp  /var/lib/tftpboot/	  提供初始内核以伪文件系统
\---vmlinuz 内核文件
\---initrd.img 伪文件系统
\---menu.c32 菜单风格
\---pxelinux.0 启动文件
\---pxelinux.cfg
\---default 指定ks.cfg文件的路径.ks.cfg指定了镜像的地址与安装的方式 httpd /var/www/html/centos 提供ks.cfg或镜像
ftp /var/ftp/pub/centos 提供ks.cfg或镜像 cobbler 管理力工具,将几者集中管理

3.cobbler命令的使用

cobbler commands      介绍
cobbler check 核对当前设置是否有问题
cobbler list 列出所有的cobbler元素
cobbler report 列出元素的详细信息
cobbler sync 同步配置到数据目录,更改配置最好都要执行下
cobbler reposync 同步yum仓库
cobbler distro 查看导入的发行版系统信息
cobbler system 查看添加的系统信息
cobbler profile 查看配置信息

二、实现步骤

1. 前期准备

iptables -F
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
vim /etc/selinux/config
修改为SELINUX=disabled

2.安装软件

yum install cobbler  dhcp tftp ftp httpd
systemctl enable cobblerd
systemctl start cobblerd
systemctl enable tftp
systemctl start tftp
systemctl enable httpd
systemctl start httpd

3.配置cobbler

  • 检查cobbler配置文件,根据提示修改参数

    cobbler check可以检查cobbler的各项参数,以提示那些没有修改好的错误,如果有些报错你更改后还在提示那么可以忽略提示。
cobbler check
  • 编辑cobbler配置文件

    每次修改cobbler的配置文件后都要重启服务,并更新配置文件
vim /etc/cobbler/settings
next_server: 192.168.25.107 #设置tftp地址
manage_dhcp: 1 #cobberl接管dhcp
server: 192.168.25.107 #cobbler的地址,也就是本机地址。
pxe_just_once: 1 #cobbler接管pxe
systemctl restart cobblerd #重启服务
cobbler sync #更新配置
  • 生成dhcp模板

    dhcp.template时cobberl的dhcp模板文件,当cobberl更新配置时就会把这些模板文件覆盖服务的配置文件。比如这个dhcp模板一旦执行cobbler sync 就会将dhcp的默认模板就行覆盖。
vim /etc/cobbler/dhcp.template            #设定子网段,限定可以分配的地址范围
subnet 192.168.25.0 netmask 255.255.255.0 {
range dynamic-bootp 192.168.25.100 192.168.25.254;
}
cobbler sync
  • 生成启动文件

    当安装完tftp服务后会自动在tftp的目录下生成菜单文件、启动文件。前面也说明了cobbler的机制时将自己的模板文件覆盖至服务的配置文件,但是cobbler默认没有菜单文件、启动文件的模板。那就需要手动创建cobbler的tftp模板文件,可以通过外网直接下载,也可以将tftp的文件复制到cobbler中然后在通过cobbler修改即可。
#服务器连接了外网
cobbler get-loaders
#服务器没有连接外网可以直接复制
cp /var/lib/tftpboot/{menu.c32,pxelinux.0} /var/lib/cobbler/loaders
  • 导入yum源

    导入的过程也就是cobbler将源文件复制到/var/www/cobbler/ks_mirror的过程。/var/www时httpd服务目录cobbler将镜像源复制到httpd目录中,这个路径也就是ISO的镜像的路径。可以通过导入不同的yum源来实现多系统安装。
cobbler import --path=/mnt/cdrom/centos7 --name=centos7.3 --arch=x86_64
cobbler import --path=/mnt/cdrom/centos6 --name=centos6.9 --arch=x86_64
# --path 光盘的路径,也可以使用ftp、http等yum源地址
# --name 镜像名称可以随便写,便于cobbler的管理
# --acrh 指定架构如果不指定架构,cobbler会分别创建两个架构的镜像
# 但是镜像本身就是64位的所以创建两个没有必要,因此直接指定架构
cobbler distro list #查看创建的yum源
  • 生成ks文件
  1. 生成ks.cfg文件有两种方式,一种是通过vim手动创建,一种是通过工具生成。我个人还是比较推荐工具生成,因为ks.cfg文件配置众多通过工具生成更加稳定。
  2. cobbler在导入yum源时发现没有合适的ks文件,就默认创建了一个ks文件但这个ks文件是不可用的,直接将他删除
  3. 注意如果是手动创建ks文件的话,要将本地启动设为默认项,否则的话用户没有来得即选就直接安装操作系统,而你又正好配置了清空磁盘、清空分区表,那用户的系统将被重新安装。
# 删除默认创建的ks文件
cobbler profile list
cobbler profile remove --name=centos6.9-x86_64
cobbler profile remove --name=centos7.3-x86_64
# 创建ks文件
system-config-kickstart #kickstart图形化生成工具,生成完毕后记得点击左上角的file将其保存
cp centos6.cfg centos7.cfg /var/lib/cobbler/kickstarts/ #将生成的ks文件复制到cobbler模板目录下
# 将创建的ks文件导入cobbler
cobbler profile add --name=centos6.9_desktop --distro=centos6.9-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos6.cfg
cobbler profile add --name=centos7.3_mini --distro=centos7.3-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos7.cfg
# add 增加配置
# --name 名称可以随便写便于cobbler管理
# --distro 指定yum源,也就是之前导入的yum源,如果导入了多个yum源需要一一对应
# --kickstart 自己生成ks文件的路径,cobbler会将你自己生成的ks文件转换成cobbler可以识别的ks文件
cobbler sync 同步配置
#创建完成的ks文件中url这一项可以使用$tree来代替。cobbler会自动将其替代

三、测试

将机器与cobbler接入同一vlan中,开机后会自动进入pxelinux界面。让用户选择是通过本地启动还是安装操作系统。现在只需要敲下回车即可自动安装操作系统。


四、cobbler的web端管理

cobbler可以通过安装web服务使管理更加的便捷。

  1. 安装
yum install cobbler-web
  1. 配置认证方式

    打开modules.conf配置文件,可以看到cobbler支持众多的用户登录认证方式。常用的认证方式有两种认证方式,第一种为cobbler默认的authn_configfile通过配置文件认证。第二种为authn_pam通过PAM模块来认证即系统用户。
  • 基于配置文件的认证方式。此方式为系统默认的认证方式,确认 module = authn_configfile即可。
# 修改配置文件
vim /etc/cobbler/modules.conf
[authentication]
module = authn_configfile # <-------仅修改了这里
# 创建认证用户 aubin,仅在创建第一用户时使用 -c选项创建后续的用户则不在使用
# 倒数第二个参数是relam的名称必须为Cobbler且第一个字母为大写
htdigest -c /etc/cobbler/users.digest Cobbler aubin
  • 基于PAM模块的认证,通过PAM模块将cobbler的认证方式交给系统来认证。
# 修改配置文件
vim /etc/cobbler/modules.conf
[authentication]
module = authn_pam # <-------仅修改了这里
#创建系统用户,且设置为不可登陆
useradd -s /sbin/nologin aubin
# 修改用户文件
vim /etc/cobbler/users.conf
[admins]admin = "aubin" # <-------写入刚刚创建的系统用户
  1. 测试登录

    输入创建的用户即可登录,web界面的管理过于简单仅用鼠标点击点击再点击即可进行管理,如遇问题请自行百度。


五、常见错误

  1. 如下图的错误经常出现在虚拟机环境下,这时因为创建的虚拟机内存不够大。将虚拟机关机调整需虚拟机内最为1.5G以上,就不会出现如下错误。

  1. 提示TFTP连接超时,请检查防火墙是否关闭。

  1. 选择操作系统后可以出现下图所示,加载内核、加载伪文件系统。那么就说明各项服务包括cobbler配置没有错误,如果之后再出现问题,请排查yum源是否完整可用。

Cobbler批量部署CentOS的更多相关文章

  1. 使用Cobbler批量部署Linux和Windows:Cobbler服务端部署(一)

    本文记录了我使用Cobbler批量安装部署Linux和Windows系统的过程,文章主要分为三部分:Cobbler服务端的安装配置.Linux发行版CentOS和Ubuntu的自动安装部署.Windo ...

  2. (转)使用Cobbler批量部署Linux和Windows:Cobbler服务端部署(一)

    原文:http://www.cnblogs.com/pluse/p/8316914.html http://blog.51cto.com/dreamway/1166589---------Cobble ...

  3. shell应用之cobbler批量部署

    如果使用的是原始源,可直接使用该脚本,如果是用的其它源且有cobbler安装包的可删除脚本中的配置yum源步骤.批量部署使用的软件有:cobbler dhcp httpd tftp-server xi ...

  4. 使用Cobbler批量部署Linux和Windows:CentOS/Ubuntu批量安装(二)

    通过前面服务端的部署,已经配置好了 Cobbler Server 端,接下来开始进行 CentOS/Ubuntu 的批量安装,在进行 CentOS/Ubuntu 批量安装时,也需要通过Cobbler来 ...

  5. 使用Cobbler批量部署Linux和Windows:Windows系统批量安装(三)

    Tutorial: Installing Windows with cobbler (cobbler安装Windows) Windows系统的自动安装需要用到Win PE工具.流程如下: 定制Win ...

  6. Linux服务之cobbler批量部署篇

    一.Cobbler简介:Cobbler通过将设置和管理一个安装服务器所涉及的任务集中在一起,从而简化了系统配置.相当于Cobbler封装了DHCP.TFTP.XINTED等服务,结合了PXE.kick ...

  7. cobbler上部署centos系统修改网卡地址成eth0

    编辑cobbler的profile文件:   cobbler profile edit --name=CentOS-7.2-x86_64 --kopts='net.ifnames=0 biosdevn ...

  8. Cobbler自动化批量部署CentOS6.5系统

    Cobbler作为一个预备工具,使批量部署Red Hat/Centos/Fedora系统更容易,同时也支持Suse和Debian系统的部署. 它提供以下服务集成: * PXE服务支持 * DHCP服务 ...

  9. Cobbler批量安装Ubuntu/CentOS系统

    2013-07-25    一.安装和修改cobbler配置 1. Cobbler不在CentOS的基本源中,需要导入EPEL源升级软件包, 确保epel-release包的版本为最新,当前最新版本为 ...

随机推荐

  1. html5 textarea 文本框根据输入内容自适应高度

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  2. swift3.0 UITableView侧滑支持多选项

    func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableVie ...

  3. 一个想法照进现实-《IT连》创业项目:聊聊IT连App是如何思考解决IT人员单身问题的

    前言: 根据最早我编写的IT联盟社区众筹计划书的思路方向:社交->资讯=>评级=>培训. 现在在实现第一个阶段中,而且这个阶段可能会走很久. 今天开文,主要是讲述一下,现在的版本为什 ...

  4. Mysql中让两个字段不同时相同的方法

    有时候我们会遇到这样的一种情况:有一些不同的专业,每个专业中有一些不同的学号,专业+学号能对应到个人.这时,应该如何在数据库中定义列,来保证专业+学号对应的学生的唯一性呢? 把学号定义成唯一(UNIQ ...

  5. java 将一个ip地址分割成一个数组

    这个问题以前真还没注意,好像记得分割过规律的字符串,但是不是像IP这样是以"."为分割规律字符,而是的. 今天用到又用到个,代码写好了也没测试,直接上传服务器,但是就是会报错,之后 ...

  6. HDU 1028 Ignatius and the Princess III:dp or 母函数

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1028 题意: 给你一个正整数n,将n拆分成若干个正整数之和,问你有多少种方案. 注:"4 = ...

  7. PHP魔术方法

    魔术方法:两个下划线开头的格式. PHP中的魔术方法总结 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, ...

  8. View.post() 不靠谱的地方你知道吗?

    版权声明: 本账号发布文章均来自公众号,承香墨影(cxmyDev),版权归承香墨影所有. 每周会统一更新到这里,如果喜欢,可关注公众号获取最新文章. 未经允许,不得转载. 一.前言 有时候,我们会需要 ...

  9. python中列表 元组 字典 集合的区别

    列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. (1)列表 什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单.比如,统计 ...

  10. maven 搭新建成之后 无法创建 src/main/java 目录解决

    maven项目创建后 创建 src/main/java     和   src/main/test 会报错,目录已存在 打开build path 界面    src/main/java     和   ...