cobbler网络装机

原理分析

cobbler简介

Cobbler通过将设置和管理一个安装服务器所涉及的任务集中在一起,从而简化了系统配置。相当于Cobbler封装了DHCP、TFTP、XINTED等服务,结合了PXE、kickstart等安装方法,可以实现自动化安装操作系统,并且可以同时提供多种版本,以实现在线安装不同版本的系统。

cobbler相关服务

DHCP:DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作, 主要有两个用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段。DHCP有3个端口,其中UDP67和UDP68为正常的DHCP服务端口,分别作为DHCP Server和DHCP Client的服务端口;546号端口用于DHCPv6 Client,而不用于DHCPv4,是为DHCP failover服务,这是需要特别开启的服务,DHCP failover是用来做“双机热备”的。

TFTP:TFTP是一种比较特殊的文件传输协议。相对于FTP和目前经常使用的SFTP,TFTP是基于TCP/IP协议簇,用于进行简单文件传输,提供简单、低开销的传输服务。TFTP的端口设置为69。

相对于常见的FTP,TFTP有两个比较好的优势:

  1. TFTP基于UDP协议,如果环境中没有TCP协议,是比较合适的;
  2. TFTP执行和代码占用内存量比较小;

默认情况下,Linux内部是安装了tftp服务器包的。但是默认是不启动的。

PXE:预启动执行环境(Preboot eXecution Environment,PXE,也被称为预执行环境)提供了一种使用网络接口(Network Interface)启动计算机的机制。这种机制让计算机的启动可以不依赖本地数据存储设备(如硬盘)或本地已安装的操作系统。

PXE当初是作为Intel的有线管理体系的一部分,Intel 和 Systemsoft于1999年9月20日公布其规格(版本2.1)[1]。通过使用像网际协议(IP)、用户数据报协议(UDP)、动态主机设定协定(DHCP)、小型文件传输协议(TFTP)等几种网络协议和全局唯一标识符(GUID)、通用网络驱动接口(UNDI)、通用唯一识别码(UUID)的概念并通过对客户机(通过PXE自检的电脑)固件扩展预设的API来实现目的。

交互过程

  1. 裸机配置了从网络启动后,开机后会广播包请求DHCP服务器(cobbler server)发送其分配好的一个IP
  2. DHCP服务器(cobbler server)收到请求后发送responese,包括其ip地址
  3. 裸机拿到ip后再向cobbler server发送请求OS引导文件的请求

    4.cobbler server告诉裸机OS引导文件的名字和TFTP server的ip和port
  4. 裸机通过上面告知的TFTP server地址和port通信,下载引导文件
  5. 裸机执行执行该引导文件,确定加载信息,选择要安装的os,期间会再向cobbler server请求kickstart文件和os image
  6. cobbler server发送请求的kickstart和os iamge
  7. 裸机加载kickstart文件
  8. 裸机接收os image,安装该os image

安装部署

初始化环境

软件:vmware workstation 14

操作系统: centos7.4-mini

关闭防火墙:
systemctl stop firewalld
systemctl disable firewalld 修改selinux:
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config 修改网卡配置文件:
BOOTPROTO=static
IPV6INIT=no
ONBOOT=YES
IPADDR=192.168.26.30
NETMASK=255.255.255.0
GATEWAY=192.168.26.2
DNS1=114.114.114.114
DNS2=8.8.8.8 添加yum源:
cd /etc/yum.repos.d
yum -y install epel-release
yum clean all
yum makecache 最后reboot,保存快照。

安装需要的包

yum -y install httpd tftp xinetd pykickstart cobbler dhcp
systemctl start httpd cobblerd rsyncd
systemctl enable httpd cobblerd rsyncd

修改配置文件

cobbler主目录在/etc/cobbler/settings

vim /etc/cobbler/settings
将server: 127.0.0.1修改为server: 192.168.26.30
将修改为next_server: 127.0.0.1修改为next_server: 192.168.26.30
将manage_dhcp: 0修改为manage_dhcp: 1 -->表示由cobbler来控 制dhcp
:x 修改tftp配置文件:/etc/xinetd.d/tftp
disabled后面改为no -->开机启动 cobbler get-loaders -->下载补丁 修改dhcp:/etc/cobbler/dhcp.template
##此处提出正确配置
subnet 192.168.26.0 netmask 255.255.255.0 {
option routers 192.168.26.2;
option domain-name-servers 114.114.114.114; -->DNS,如果不写后面在执行安装后脚本会报错
option subnet-mask 255.255.255.0;
range dynamic-bootp 192.168.26.100 192.168.26.254;
default-lease-time 21600;
max-lease-time 43200;
next-server $next_server; 设置安装操作系统的root密码:
openssl passwd -1 -salt 'youdaoyun' 'youdaoyun'
将生成的随机字符添加到cobbler配置文件中
将之前这行注释掉替换成自己的密码,如下图

重启应用
systemctl restart cobblerd xinetd
cobbler check -->检查命令,一般还剩余两个,不用管
cobbler sync -->同步配置文件

上传镜像

选择的是centos7-mini.iso包,后面有需要的东西可以写在ks文件中

1.将iso包上传到根目录下
mkdir -p /data/centos7.4-mini
mount -o loop CentOS-7.4-x86_64-Minimall-1708.iso /data/centos7.4-mini/ 使用df -h查看是否挂载成功 2.导入镜像文件
cobbler import --path=/data/centos7.4-mini/ --name=CentOS_7.4_Mini --arch=x86_64 --path代表镜像地址
--name代表当pxe启动后选择的哪个镜像
--arch代表指定安装源是64位 3.查看profile
cobbler profile list 4.查看profile的内容
cobbler profile report 5.将已经做好的ks文件修改为centos7_4.cfg上传到/var/lib/cobbler/kickstarts/,等下会贴出来 6.自定义kickstart文件
cobbler profile edit --name=CentOS_7.4_Mini-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos7_4.cfg 7.修改centos7内核,即网卡名
cobbler profile edit --name=CentOS_7.4_Mini-x86_64 --kopts='net.ifnames=0 biosdevname=0' 8.修改完配置文件必须运行cobbler sync同步配置

ks文件

#Kickstart Configurator for cobbler by Jason Zhao
#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
#Use text mode install
text
#Install OS instead of upgrade
install
#Use NFS installation Media
url --url=$tree
#System bootloader configuration
bootloader --location=mbr
#Clear the Master Boot Record
zerombr
#Partition clearing information
clearpart --all --initlabel
#Disk partitioning information
part /boot --fstype xfs --size 1024 --ondisk sda
part swap --size 16384 --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=em1 --onboot=on
# Reboot after installation
reboot
#Firewall configuration
firewall --disabled
#SELinux configuration
selinux --disabled
#Do not configure XWindows
skipx
#Package install information
%pre
$SNIPPET('log_ks_pre')
$SNIPPET('kickstart_start')
$SNIPPET('pre_install_network_config')
# Enable installation monitoring
$SNIPPET('pre_anamon')
%end %post
systemctl disable postfix.service
systemctl stop firewalld
systemctl disable firewalld
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
yum -y install vim net-tools
%end

启动虚拟机测试

1.设置服务器网络启动,在vmware workstation中为按下电源时打开固件

2.DHCP获取过程太快了,直接来到了cobbler的界面

选项1为从本地磁盘启动,但是因为在vmware workstation中做的,预先加载了centos7的环境,所以即使你从本地磁盘启动,也会是一个安装操作系统的界面

选项2是我们刚刚做的,直接选择第二个,然后等待安装,在安装完成后会关闭selinux、防火墙,并且安装vim、net-tools工具包。

其余配置:有时候需要标识企业信息或者个人信息,可以通过以下方式进行修改。

vim /etc/cobbler/pxe/pxedefault.template
将第二行的 Cobbler | http://cobbler.github.io/修改成你自己的标识 修改完配置文件后需要执行cobbler sync

由于该文档直接由有道云笔记拷贝过来,图像是看不到的,还请见谅。

cobbler网络装机的更多相关文章

  1. Cobbler自动化装机

    Cobbler自动化装机 一个可以实现批量安装系统的Linxu应用程序,他可以实现同个服务器安装不同操作系统版本. 准备环境 开启两个网卡.一个仅主机模式,一个桥接模式,仅主机模式对内提供cobble ...

  2. Cobbler自动装机试验

    Cobbler自动装机简介:Cobbler是一个使用Python开发的开源项目,通过将部署系统所涉及的所有服务集中在一起,来提供一个全自动的批量快速建立Linux系统的网络安装环境.Cobbler提供 ...

  3. CentOS7中搭建cobbler自动装机服务

    一.实验环境 一台centos7 epel源网址 https://fedoraproject.org/wiki/EPEL?rd=Epel 使用nat模式 二.实验步骤 1.下载epel源后进行文件夹挂 ...

  4. Linux shell编写脚本部署pxe网络装机

    Linux shell编写脚本部署pxe网络装机 人工安装配置,Linux PXE无人值守网络装机  https://www.cnblogs.com/yuzly/p/10582254.html 脚本实 ...

  5. Linux PXE无人值守网络装机

    Linux PXE无人值守网络装机 一.实验环境: 2台Linux系统(RHEL6.5版本),1台作为:PXE远程安装服务器(安装dhcp服务.ftp服务.tftp服务),另1台作为:客户端(未装RH ...

  6. PXE网络装机

    PXE网络装机配置 安装CentOS 6.5系统 1.配置服务端IP地址和yum源 略 2.安装配置VSFTP服务 vsftpd 的作用:为客户端提供FTP服务,便于客户端下载操作系统 (1)安装vs ...

  7. 网络装机pxe服务器的配置过程

    网络装机pxe服务器的配置过程 背景: 针对于Linux运维工作中遇到的需要大批量安装Linux系统的情况,通过网络装机的方式实现无人值守安装Linux操作系统,现需要配置一台pxe服务器用于pxe批 ...

  8. 十六.部署PXE网络装机

    PXE组件及过程分析 • 需要哪些服务组件? – DHCP服务,分配IP地址.定位引导程序 – TFTP服务,提供引导程序下载 – HTTP服务,提供yum安装源 • 客户机应具备的条件 – 网卡芯片 ...

  9. Service系统服务(五):PXE基础装机环境、配置并验证DHCP服务、配置PXE引导、验证PXE网络装机、PXE+kickstart自动装机

    一.PXE基础装机环境 目标: 本例要求为后续的PXE服务器构建提供RHEL7软件仓库,完成下列任务: 1> 在CentOS真机部署Web目录/var/www/html/rh7dvd   2&g ...

随机推荐

  1. PHP生成缩略图的一个方法类(转)

    //使用如下类就可以生成图片缩略图 class resizeimage { //图片类型 var $type; //实际宽度 var $width; //实际高度 var $height; //改变后 ...

  2. Windows 上安装 MySQL

    Windows 上安装 MySQL https://www.mysql.com/downloads/ 1.下载MySQL安装包(官网下载链接): 选择 DOWNLOADS ——> Communi ...

  3. 引用类(RC)

    R 中还有一种具有引用语义的类系统,它更像其他面向对象编程语言中的类系统.首先,为了定义一个引用类( reference class , RC ),我们要给 setRefClass( )一个类定义.不 ...

  4. [ios]cocos2dx获取设备的当前预言

    参考:http://blog.sina.com.cn/s/blog_923fdd9b0101fmpv.html http://bbs.9ria.com/thread-199313-1-1.html / ...

  5. Maven置标签<scope>

    在POM 4中,<dependency>中引入了<scope>,它主要管理依赖的部署.目前<scope>可以使用5个值: * compile,缺省值,适用于所有阶段 ...

  6. Redis之哈希类型命令

    Hash(哈希) Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象. Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿 ...

  7. ASP.NET调用dos命令获取交换机流量

    protected void btn_Cisco_Click(object sender, EventArgs e) { try { string ip = txt_ip.Value; string ...

  8. WinForm窗体自适应分辨率

    我们自己编写程序的界面,会遇到各种屏幕分辨率,只有自适应才能显的美观.实际上,做到这点也很简单,就是首先记录窗体和它上面控件的初始位置和大小,当窗体改变比例时,其控件的位置和大小也按此比例变化即可.因 ...

  9. oracle进行字符串拆分并组成数组

    CREATE OR REPLACE TYPE CUX_STR_SPLIT_TYPE IS TABLE OF VARCHAR2 (4000); CREATE OR REPLACE PACKAGE cux ...

  10. .net图表工具汇总

    概述:图形图表的可视化数据表现形式已成为一种趋势,本文推荐了10款非常好用的.NET图表控件,希望对广大.NET图表开发者能有所帮助. 读图时代,图形图表的可视化数据表现形式已成为一种趋势.因为图表能 ...