Linux自动化安装cobbler

1介绍

1.1 PXE

PXE技术与RPL技术不同之处为RPL是静态路由,PXE是动态路由。RPL是根据网卡上的ID号加上其他记录组成的一个Frame(帧)向服务器发出请求。而服务器中已有这个ID数据,匹配成功则进行远程启动。PXE则是根据服务器端收到的工件站MAC地址,使用DHCP服务为这个MAC地址指定个IP地址。每次启动可能同一台工作站有与上次启动有不同的IP,即动态分配地址。下以客户端引导过程说明PXE的原理:

客户端开机后,PXE BootROM(自启动芯片)获得控制权之前执行自我测试,然后以广播形式发出一个请求FIND帧。如果服务器收到客户端所送出的要求,就会送回DHCP回应,包括用户端的IP地址、预设通信通道,以及开机映像文件;否则服务器会忽略这个要求。

客户端收到服务器发回的响应后则会回应一个帧,以请求传送启动所需文件,并把自己的MAC地址写到服务器端的Netnames.db文件中。将有更多的消息在客户端与服务器之间应答,用于决定启动参数。

BootROM由TFTP通信协议从服务器下载开机映像文档。

客户端使用TFTP协议接收启动文件后,将控制权转交启动块以引导操作系统,完成远程启动。

1.2 KickStart

    KickStart是一种无人职守安装方式。KickStart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为ks.cfg的文件;在其后的安装过程中(不只局限于生成KickStart安装文件的机器)当出现要求填写参数的情况时,安装程序会首先去查找KickStart生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。这样,如果KickStart文件涵盖了安装过程中出现的所有需要填写的参数时,安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中设置的重启选项来重启系统,并结束安装。

 

1.3 Cobbler

Cobbler是一个快速网络安装linux的服务,而且在经过调整也可以支持网络安装windows。该工具使用python开发,小巧轻便(才15k行python代码),使用简单的命令即可完成PXE网络安装环境的配置,同时还可以管理DHCP、DNS、以及yum仓库、构造系统ISO镜像。

Cobbler支持命令行管理,web界面管理,还提供了API接口,可以方便二次开发使用。

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

 Cobbler提供以下服务集成:

* PXE服务支持

* DHCP服务管理

* DNS服务管理

* 电源管理

* Kickstart服务支持

* yum仓库管理

2 安装部署

2.1相关文件

1.Cobbler配置文件目录:/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模块配置文件

2.Cobbler数据目录:/var/lib/cobbler

/var/lib/cobbler/config #配置文件

/var/lib/cobbler/triggers #Cobbler命令

/var/lib/cobbler/kickstarts  #默认存放kickstart文件

/var/lib/cobbler/loaders  #存放的各种引导程序

3.系统安装镜像目录:/var/www/cobbler

/var/www/cobbler/ks_mirror #导入的系统镜像列表

/var/www/cobbler/images  #导入的系统镜像启动文件

/var/www/cobbler/repo_mirror #yum源存储目录

4.日志目录:/var/log/cobbler

/var/log/cobbler/install.log #客户端系统安装日志

/var/log/cobbler/cobbler.log #cobbler日志

2.2 Cobbler安装

2.2.1安装EPEL源

yum install epel-release

2.2.2安装cobbler

   yum install cobbler httpd rsync tftp-server xinetd dhcp python-ctypes cman pykickstart –y

2.2.3配置cobbler

vim /etc/cobbler/settings #Cobbler主配置文件

sed -i 's/manage_dhcp: 0/manage_dhcp: 1/g' /etc/cobbler/settings  

sed -i 's/manage_rsync: 0/manage_rsync: 1/g' /etc/cobbler/settings

# set to 1 to enable Cobbler's DHCP management features.

# the choice of DHCP management engine is in /etc/cobbler/modules.conf

manage_dhcp: 1

# set to 1 to enable Cobbler's RSYNC management features.

manage_rsync: 1

# if using cobbler with manage_dhcp, put the IP address

# of the cobbler server here so that PXE booting guests can find it

# if you do not set this correctly, this will be manifested in TFTP open timeouts.

next_server: 192.168.56.6

# this is the address of the cobbler server -- as it is used

# by systems during the install process, it must be the address

# or hostname of the system as those systems can see the server.

# if you have a server that appears differently to different subnets

# (dual homed, etc), you need to read the --server-override section

# of the manpage for how that works.

server: 192.168.56.6

2.2.4关闭SELinux、iptables

getsebool

service iptables stop  

chkconfig iptables off

2.2.5配置tftp、rsync

设置 'disable' 为 'no'  

sed -i '/disable/c\\tdisable\t\t\t= no' /etc/xinetd.d/tftp  

sed -i 's/\=\ yes/\=\ no/g' /etc/xinetd.d/rsync

2.2.6启用wsgi模块

sed -i 's@#LoadModule@LoadModule@g' /etc/httpd/conf.d/wsgi.conf

2.2.7生成密码

这里生成密钥和配置默认密钥,ks文件引用

openssl passwd -1 -salt 'random-phrase-here' 'wq'

$1$random-p$29HCOY0msGT.4xVuIl6Gp. 

加入cobbler配置  

vim /etc/cobbler/settings  

grep default_password_crypted /etc/cobbler/settings#修改为如下配置

default_password_crypted: "$1$random-p$29HCOY0msGT.4xVuIl6Gp."

2.2.8配置DHCP

vim /etc/cobbler/dhcp.template

allow booting;

allow bootp;

ddns-update-style interim;

ignore client-updates;

subnet 192.168.56.0 netmask 255.255.255.0 {

    range dynamic-bootp        192.168.56.100 192.168.56.254;

    option domain-name-servers 192.168.0.1;  

    option routers             192.168.56.1;

    option subnet-mask         255.255.255.0;

    default-lease-time         1800;

    max-lease-time             3600;

    next-server                192.168.56.6;

    filename                   "pxelinux.0";

}

2.2.9配置服务

/sbin/service httpd start  

/sbin/service dhcpd start  

/sbin/service xinetd start  

/sbin/service cobblerd start  

/sbin/chkconfig httpd on

/sbin/chkconfig dhcpd on

/sbin/chkconfig xinetd on

/sbin/chkconfig tftp on

/sbin/chkconfig cobblerd on

2.2.10引导系统文件

cobbler get-loaders

2.2.11配置debmiror(可选)

yum -y install debmirror  

修改 /etc/debmirror.conf 配置文件,注释掉 @dists 和 @arches 两行

sed -i  's|@dists=.*|#@dists=|'  /etc/debmirror.conf  

sed -i  's|@arches=.*|#@arches=|'  /etc/debmirror.conf

2.2.12检查配置

cobbler check

The following are potential configuration items that you may want to fix:无需处理

1 : reposync is not installed, need for cobbler reposync, install/upgrade yum-utils?

2 : debmirror package is not installed, it will be required to manage debian deployments and repositories

Restart cobblerd and then run 'cobbler sync' to apply changes.

2.2.13同步配置

cobbler sync

2.3 Cobbler管理

2.3.1命令说明

命令参考

cobbler --help

cobbler distro --help 

cobbler distro add --help

2.3.2配置文件说明

Cobbler配置文件存放在/etc/cobbler下

 

2.3.3镜像数据目录

导入的系统发行版,repos镜像和kickstart文件都放置在/var/www/cobbler

目录下。确保/var目录有足够的空间来存储这些文件。

 

2.3.4数据目录

此目录存储和Cobbler profiles、systems、distros相关的配置。

 

2.3.5日志文件

web日志存放点:

/var/log/httpd/access_log

/var/log/httpd/error_log

/var/log/httpd/ssl_access_log

/var/log/httpd/ssl_error_log

Cobbler日志:

/var/log/cobbler/cobbler.log

/var/log/cobbler/install.log

通过Cobbler日志可以获取系统的安装状态

2.3.6导入镜像

1. 注意下载的ISO文件要核对文件的md5值,确保数据完整性

   md5sum xx.iso

2.创建目录

mkdir -p /var/os/Linux/Centos/x86_64/Centos6.7/dvd

3.挂载

mount -o loop/var/iso/Linux/Centos/x86_64/xx.iso   

/var/os/Linux/Centos/x86_64/Centos6.7/dvd

2.3.7导入数据

cobbler import --path=/xx --name=centos6.7 --arch=x86_64

cobbler list  列出配置

cobbler report 详细

cobbler profile find --distro=centos6.7-x86_64 #查看配置是否存在

cobbler profile remove --name=centos6.7-x86_64 #删除配置文件

cobbler distro remove --name=centos6.7-x86_64 #删除distro

cobbler profile find --distro=centos6.7-x86_64 #再查看配置已无

2.3.8自定义ks

ks目录位置

/var/lib/cobbler/kickstarts/

默认的ks位置

/var/lib/cobbler/kickstarts/sample.ks

更改指定系统版本对应的ks配置文件

cp /var/lib/cobbler/kickstarts/ sample.ks centos6.7-x86_64.ks

cobbler profile add --name=centos6.7 --distro= centos6.7-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos6.7-x86_64.ks

cobbler check

cobbler sync

KS示例:

#platform=x86, AMD64, or Intel EM64T

# Firewall configuration

firewall --disabled

# Install OS instead of upgrade

install

# Use network installation

url --url=$tree

#Root password

rootpw root

# System authorization information

auth  --useshadow--enablemd5

# Use graphical mode install

graphical

# Run the Setup Agent on first boot

firstboot --disable

# System keyboard

keyboard us

# System language

lang en_US

# SELinux configuration

selinux --disabled

# Installation logging level

logging --level=info

# System timezone

timezone  Asia/Shanghai

# Network information

network --bootproto=static --device=eth0 --gateway=192.168.56.1 --ip=192.168.56.99 --nameserver=192.168.56.99 --netmask=255.255.255.0 --hostname=host99 --onboot=on

# System bootloader configuration

bootloader --location=mbr

# Partition clearing information

clearpart --all --initlabel

# Disk partitioning information

part / --fstype="ext4" --ondisk=sda --size=8000

part /boot --fstype="ext4" --ondisk=sda --size=200

part swap --fstype="swap" --size=1000

# Reboot after installation

reboot

# Clear the Master Boot Record

zerombr

%packages

@ X Window System

@ Desktop

@ Development tools

gcc*

%end

 

3 Web管理

Cobbler web界面是一个很好的前端,非常容易管理Cobbler。可以添加和删除system、distro、profile,可以查看、编辑distros、profiles、subprofiles、systems、repos、kickstart文件。

3.1cobbler web管理

3.1.1安装

yum -y install cobbler-web

3.1.2设置用户密码

为已存在的用户cobbler重置密码:

htdigest /etc/cobbler/users.digest "Cobbler" cobbler

添加新用户:

htdigest /etc/cobbler/users.digest "Cobbler" newname

3.1.3配置登录

sed -i 's/authn_denyall/authn_configfile/g' 

/etc/cobbler/modules.conf

/etc/init.d/cobblerd restart 

/etc/init.d/httpd restart

3.1.4访问web

浏览器访问登录页面https://192.168.xx.xx/cobbler_web

3.1.5登录web

3.1.6管理web

cobbler system add --name=xx --hostname=xx --mac=xx 

--interface=ethx --ip-address=xx --subnet=xx --gateway=xx 

--static=1 --profile=xx

yum install cman ipmitool -y   电源管理(需要硬件支持)

 

转载于:https://www.cnblogs.com/dongdongwq/p/5377593.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/374863.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

iOS9适配系列教程

https://github.com/ChenYilong/iOS9AdaptationTips 转载于:https://www.cnblogs.com/zsw-1993/p/4879118.html

C语言形参

形参和实参区别 形参出现在函数定义中,在整个函数体内都可以使用,离开该函数则不能使用。实参出现在主调函数中,进入被调函数后,实参变量也不能使用。 形参和实参的功能是作数据传送。发生函数调用时,主调函数把实参…

避免延迟的JPA集合

Hibernate(实际上是JPA)具有集合映射: OneToMany, ManyToMany, ElementCollection。 所有这些默认情况下都是惰性的。 这意味着集合是List或Set接口的特定实现,其中包含对持久会话的引用,并且只…

2016年,我的和自己谈谈

2016年过去三分之一了,现在谈规划晚点但总比没想法强。想了半天还是从这个方面着手吧: 一.升级改造自己的办公学习环境: 给自己的电脑加内存,加SSD,再添置一个显示器,换上心仪已久的cherry青轴键盘&#xf…

C语言的四舍五入实现

习题3-2 高速公路超速处罚 (15 分) 按照规定,在高速公路上行使的机动车,达到或超出本车道限速的10%则处200元罚款;若达到或超出50%,就要吊销驾驶证。请编写程序根据车速和限速自动判别对该机动车的处理。 输入格式: 输入在一行中…

ACTGame项目

项目地址:https://github.com/alonecat06/ACTGame游戏地址:http://pan.baidu.com/s/1hqD3IYw 项目是一个自制单机动作游戏demo,方向是手游,使用Unity5,5月中开工至今。 做这个项目,是为加深自己对Unity的理…

Xuggler教程:帧捕获和视频创建

注意:这是我们的“ Xuggler开发教程 ”系列的一部分。 到目前为止,在我们的Xuggler教程系列中,我们已经对视频处理的Xuggler进行了介绍,并讨论了转码和媒体修改 。 在本教程中,我们将看到如何解码视频和捕获帧&#xf…

面向对象-原型对象

创建对象 Js中可以用构造函数模式创建对象,如: function Person(name, age, job) {this.name name;this.age age;this.job job;this.sayName function () {alert(this.name);}}var person1 new Person("Nicholas", 29, "aa");v…

索引类型

1.B树索引 在Oracle中是通用索引,是创建索引时的默认索引。B树索引可以是单列索引,也可以是组合/复合索引。B树索引最多可以包括22列。 2.位图索引 位图索引时决策支持系统(DSS)和数据仓库的理想选择,它们不应该用于事…

C语言条件运算符

先看一个error error: lvalue required as left operand of assignment| i 0 ? X 1.0 : X * x;修改后 i 0 ? (X 1.0) : (X * x);也就是说条件运算符可以执行语句,当是赋值语句时要加括号规定优先级,不然会干扰程序判断。 因为条件运算符作为三目…

EJB 3.0注入和查找简介

介绍 Enterprise JavaBeans Specification v。3.0引入了简化的,基于注释的API,用于EJB注入和查找。 EJB 3.0现在是POJO,可以使用简单的注释将其注入其他组件(例如EJB和Servlet)。 EJB 3.0是Java EE 6的许多其他基于POJ…

SignalR + MVC5 简单示例

SignalR MVC5 简单示例 原文:SignalR MVC5 简单示例本文和前一篇文章很类似,只不过是把 SignalR 应用在了 MVC 中 新建项目,选择 MVC 模板 安装 SignalR Install-Package Microsoft.AspNet.SignalR 在项目中添加文件夹 Hubs 在 Hubs 文件夹中添加 Sign…

Java内存模型–快速概述和注意事项

在计算中, 内存模型描述了线程如何通过内存进行交互,或更一般地,它指定了为分段内存或分页内存平台生成代码时允许编译器进行的假设。 在给定程序和该程序的执行跟踪的情况下,它实质上描述了执行跟踪是否是该程序的合法执行。 Jav…

6-7 统计某类完全平方数 (20 分)

本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。 函数接口定义: int IsTheNumber ( const int N );其中N是用户传入的参数。如果N满足条件,则该…

C#中数组、ArrayList和List三者的区别(转) ,加修改

在C#中数组&#xff0c;ArrayList&#xff0c;List都能够存储一组对象&#xff0c;那么这三者到底有什么样的区别呢。 数组 数组在C#中最早出现的。在内存中是连续存储的&#xff0c;所以它的索引速度非常快&#xff0c;而且赋值与修改元素也很简单。 <span style"font…

phpmyadmin mysql Access denied for user 'root'@'localhost'问题解决

centos6.4 32位的vps上装了lnmp以后&#xff0c;phpmyadmin无法连接mysql服务器&#xff0c;ssh命令行里mysql -uroot -p 命令后老是出现拒绝连接的情况。php程序里也是拒绝连接。尝试过修改phpmyadmin的config.inc.php文件&#xff0c;尝试过修改my.cnf文件&#xff0c;尝试过…

带有Spring和Maven教程的JAX–WS

Spring框架通过JAX-WS提供对Web服务的远程支持&#xff0c;实际上&#xff0c;如Spring 参考文档中所述 &#xff0c;有三种将Spring POJO服务公开为JAX-WS Web服务的方式&#xff1a; 公开基于Servlet的Web服务&#xff08;适用于Java EE 5环境&#xff09; 导出独立的Web服…

7-2 然后是几点 (15 分)

7-2 然后是几点 (15 分) 有时候人们用四位数字表示一个时间&#xff0c;比如 1106 表示 11 点零 6 分。现在&#xff0c;你的程序要根据起始时间和流逝的时间计算出终止时间。 读入两个数字&#xff0c;第一个数字以这样的四位数字表示当前时间&#xff0c;第二个数字表示分钟…

CXF学习(2) helloworld

0.新建一个项目取名wsserver. pom.xml 文件如下 <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd…

Hive 接口介绍(Web UI/JDBC)

Hive 接口介绍&#xff08;Web UI/JDBC&#xff09; 实验简介 本次实验学习 Hive 的两种接口&#xff1a;Web UI 以及 JDBC。 一、实验环境说明 1. 环境登录 无需密码自动登录&#xff0c;系统用户名shiyanlou&#xff0c;密码shiyanlou 2. 环境介绍 本实验环境采用带桌面的Ubu…