Cobbler为何物?
Cobbler是一个快速网络安装linux的服务,而且在经过调整也可以支持网络安装windows。该工具使用python开发,小巧轻便(才15k行python代码),使用简单的命令即可完成PXE网络安装环境的配置,同时还可以管理DHCP、DNS、TFTP、RSYNC以及yum仓库、构造系统ISO镜像。
Cobbler支持命令行管理,web界面管理,还提供了API接口,可以方便二次开发使用。
Cobbler客户端Koan支持虚拟机安装和操作系统重新安装,使重装系统更便捷。

Cobbler功能
使用Cobbler,可以做到无需进行人工干预即可安装机器;
Cobbler设置一个PXE引导环境(它还可使用yaboot支持PowerPC),并控制与安装相关的所有方面,比如网络引导服务(DHCP和TFTP)与存储库镜像。
当希望安装一台新机器时,Cobbler可以:
使用一个以前定义的模板来配置DHCP服务(如果启用了管理 DHCP)将一个存储库(yum或rsync)建立镜像或解压缩一个媒介,以注册一个新操作系统
在DHCP配置文件中为需要安装的机器创建一个条目,并使用您指定的参数(IP和MAC地址);
在TFTFP服务目录下创建适当的PXE文件;
重新启动DHCP服务以反映更改;
重新启动机器以开始安装(如果电源管理已启用)。

Cobbler的安装部署
基础环境
[root@cobbler-server ~]# cat /etc/redhat-release       #系统版本
CentOSLinux release 7.1.1503(Core)
[root@cobbler-server ~]# uname –r        #内核版本
3.10.0-229.el7.x86_64
[root@cobbler-server ~]# getenforce       #检测selinux是否关闭(必须关闭)
Disabled
[root@cobbler-server ~]# systemctl stop firewalld        #关闭防火墙
[root@cobbler-server ~]# ifconfig eth0|awk -F '[ :]+''NR==2 {print $3}'       #查看IP地址
10.0.0.101
[root@cobbler-server ~]# hostname        #查看主机名
cobbler-server
[root@cobbler-server ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo         #cobbler安装必须使用到epel源
安装
[root@cobbler-server ~]# yum install cobbler cobbler-web pykickstart httpd dhcp tftp xinetd
配置说明
cobbler        #cobbler程序包
cobbler-web     #cobbler的web服务包
pykickstart    #cobbler检查kickstart语法错误
httpd      #Apache web服务
dhcp       #Dhcp服务
tftp      #tftp服务
/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模块配置文件
/var/lib/cobbler        #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         #日志目录
/var/log/cobbler/install.log       #客户端系统安装日志
/var/log/cobbler/cobbler.log       #cobbler日志

Cobbler的检测
cobbler的运行依赖于dhcp、tftp、rsync及dns服务,其中dhcp可由dhcpd(isc)提供,也可由dnsmasq提供;tftp可由tftp-server程序包提供,也可由cobbler功能提供,rsync有rsync程序包提供,dns可由bind提供,也可由dnsmasq提供cobbler可自行管理这些服务中的部分甚至是全部,但需要配置文件/etc/cobbler/settings中的“manange_dhcp”、“manager_tftpd”、“manager_rsync”、“manager_dns”分别来进行定义,另外,由于各种服务都有着不同的实现方式,如若需要进行自定义,需要通过修改/etc/cobbler/modules.conf配置文件中各服务的模块参数的值来实现。
[root@cobbler-server ~]# systemctl start httpd       #启动apache服务
[root@cobbler-server ~]# systemctl start cobblerd    #启动cobbler程序
查看检查
[root@cobbler-server ~]# 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
localhost, or kickstarting features will not work.This should be a resolvable hostname or 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 the PXE network.
3:change 'disable' to 'no'in/etc/xinetd.d/tftp
4:some network boot-loaders are missing from /var/lib/cobbler/loaders, you may run 'cobbler get-loaders' to download them, or,if you only want to handle
x86/x86_64 netbooting, you may ensure that you have installed a *recent*version of the syslinux package installed and can ignore this message entirely.Filesin this directory, should you want to support all architectures,should include pxelinux.0, menu.c32, elilo.efi, and
yaboot.The'cobbler get-loaders' command is the easiest way to resolve these requirements.
5:enable and start rsyncd.service with systemctl
6:debmirror package is not installed, it will be required to manage debian deployments and repositories
7:The default password used by the sample templates for newly installed machines
(default_password_crypted in/etc/cobbler/settings) is still set to 'cobbler'
and should be changed, try:"openssl passwd -1 -salt 'random-phrase-here'
'your-password-here'" to generate new one
8:fencing tools were not found, and are required to use the (optional) power management features. install cman or fence-agents to use them
Restart
cobblerd and then run 'cobbler sync' to apply changes.
对于上述问题,一个个的解决,其实每个问题的后面都给出了解决方法:
1)修改/etc/cobbler/settings文件中的server参数的值为提供cobbler服务的主机相应的IP地址或主机名,如server:10.0.0.101;
[root@cobbler-server ~]# sed -i 's/server: 127.0.0.1/server: 10.0.0.101/'/etc/cobbler/settings
2)修改/etc/cobbler/settings文件中的next_server参数的值为提供PXE服务的主机相应的IP地址,如next_server:10.0.0.101;
[root@cobbler-server ~]# sed -i 's/next_server: 127.0.0.1/next_server: 10.0.0.101/'/etc/cobbler/settings
3)修改/etc/xinetd.d/tftp文件中的disable参数修改为 disable = no
4)执行 cobbler get-loaders 命令即可;否则,需要安装syslinux程序包,而后复制/usr/share/syslinux/{pxelinux.0,memu.c32}等文件至/var/lib/cobbler/loaders/目录中;
5)执行 systemctl enable rsyncd命令即可;
6)如果有强迫症可以选择 yum –y install debmirror 然后根据错误进行解决,一般错误如下。
注释/etc/dedmirror.conf文件中的@dists=”sid”;@arches=”i386”;
7)[root@cobbler-server ~]# openssl passwd -1-salt '$(openssl rand -hex 4)''xuliangwei'
$1$$(openss$.wbDUBV/STL0YaNuAcusK/
[root@cobbler-server~]# grep "default_password_crypted"/etc/cobbler/settings   #替换/etc/cobbler/setting内的default_password_crypted为上个命令结果
default_password_crypted:"$1$$(openss$.wbDUBV/STL0YaNuAcusK/"
8)[root@cobbler-server~]# yum –y install cman fence-agents

最后重启Cobbler:
[root@cobbler-server~]# systemctl restart cobblerd

配置DHCP
[root@cobbler-server~]# sed -i 's#manage_dhcp: 0#manage_dhcp: 1#g'/etc/cobbler/settings              #使用cobbler管理dhcp
[root@cobbler-server~]# vim /etc/cobbler/dhcp.template             #修改cobbler的dhcp模版,因为cobbler会替换。
subnet 10.0.0.0 netmask 255.255.255.0{
option routers 10.0.0.2;
option domain-name-servers 10.0.0.2;
option subnet-mask 255.255.255.0;
range dynamic-bootp 10.0.0.20010.0.0.250;
default-lease-time 21600;
max-lease-time 43200;
next-server $next_server;
同步cobbler
[root@cobbler-server~]# systemctl restart xinetd     #重启xinetd
[root@cobbler-server~]# systemctl restart cobblerd    #重启cobbler
[root@cobbler-server~]# cobbler sync      #同步最新cobbler配置,可以看具体做了哪些操作
Cobbler管理
cobbler使用profile来为特定的需求类别提供锁需要安装的配置,即在distro的基础上通过提供kiskstart文件来生成一个特定的系统安装配置。distro的profile可以出现在pxe的引导菜单中作为安装的选择之一:
Cobbler-CentOS-7.1-x86_64.cfg
Cobbler-CentOS-6.7-x86_64.cfg
默认是有kickstart文件的,所以edit,如果没有kickstart文件可以add。
[root@cobbler-server ~]# cobbler profile edit --name=CentOS-7.1-x86_64-distro --kickstart=/var/lib/cobbler/kickstarts/Cobbler-CentOS-7.1-x86_64.cfg          #指定ks路径
CentOS7系统网卡名变成eno...这种,为了运维标准化,我们需要修改为我们常用的eth0,使用下面的参数。但要注意是CentOS7才需要下面的步骤,CentOS6不需要。
[root@cobbler-server ~]# cobbler profile edit --name=CentOS-7.1-x86_64-distro --kopts='net.ifnames=0 biosdevname=0'       #修改centos7内核
新部署机器安装yum源,并同步。建议使用内网yum源,在这里使用阿里云yum源
[root@cobbler-server ~]# cobbler repo add --name=base --mirror=http://mirrors.aliyun.com/centos/7/os/x86_64/Packages/--arch=x86_64 --breed=yum        #添加yum源
[root@cobbler-server ~]# cobbler reposync      #同步yum源
[root@cobbler-server ~]# cobbler sync     #每次修改profile都需要同步
解析来直接启动一台机器,然后开启网络启动就OK了。
自定义安装
system主要目的配置网络接口,通过system来固定机器的IP、掩码、网关、DNS、主机名、等等实现基础环境标准化。
根据机器的MAC地址,自动绑定IP,网关,dns等。
[root@cobbler-server ~]# cobbler system add --name=wangshibo--mac=00:0C:29:6E:41:CB --profile=Centos7.1-profile-x86_64 \
--ip-address=10.0.0.110--subnet=255.255.255.0--gateway=10.0.0.2--interface=eth0 \
--static=1--hostname=wangshibo
--name-servers="114.114.114.114 8.8.8.8"
[root@cobbler-server ~]# cobbler sync
[root@linux-node1 ~]# cobbler system list
wangshibo
自定义登录界面
[root@cobbler-server ~]# grep "wangshibo"/etc/cobbler/pxe/pxedefault.template#自定义装机页面
MENU TITLE wangshibo | http://wangshibo
[root@cobbler-server ~]# cobbler sync #同步
Web管理Cobbler
新版cobbler的web界面使用的是https,登录https://10.0.0.7/cobbler_web
cobbler_web支持多种认证方式,如authn_configfil、authn_ldap或authn_pam等,默认为authn_denyall,即拒绝所有用户登陆。
下面说明三种能认证用户登录cobbler_web的方式
1)使用authn_pam模块认证cobbler_web用户
首先修改modules中的[authentication]段中的module参数的值为authn_pam
接着创建系统用户,并为用户设定密码
而后将设定的系统用户添加至cobbler_web的admin组中,修改/etc/cobbler/users.conf
文件,将设定的用户添加为admin参数的值即可
2)使用authn_configfile模块认证cobbler_web用户
首先修改modules中的[authentication]段中的module参数的值为authn_configfile
添加第一用户时,需要为htdigest命令使用“-c” etc/cobbler/users.digest,后续添加其他用户则不能再使用,同步cobbler重启httpd以及cobbler
3)使用cobbler默认的web账号密码认证
user:cobbler
pass:cobbler

Cobbler自动化批量安装linux服务器的操作记录的更多相关文章

  1. Cobbler自动化批量安装Linux操作系统 - 运维总结

    一.Cobbler简述 Cobbler是一个自动化和简化系统安装的工具,通过使用网络引导来控制和启动安装.Cobbler的特性包括存储库镜像.Kickstart模板和连接电源管理系统.Cobbler通 ...

  2. (转)Cobbler无人值守批量安装Linux系统

    本文目录: 1.1 pxe安装系统 1.2 cobbler基本介绍 1.3 安装和配置cobbler 1.3.1 安装cobbler 1.3.2 配置dhcp和tftp 1.4 cobbler从本地光 ...

  3. cobbler无人值守批量安装Linux系统

    本文目录: 1.1 pxe安装系统 1.2 cobbler基本介绍 1.3 安装和配置cobbler 1.3.1 安装cobbler 1.3.2 配置dhcp和tftp 1.4 cobbler从本地光 ...

  4. Cobbler全自动批量安装部署Linux系统

    说明: Cobbler服务器系统:CentOS 5.10 64位 IP地址:192.168.21.128 需要安装部署的Linux系统: eth0(第一块网卡,用于外网)IP地址段:192.168.2 ...

  5. pxe+kickstart实现无人值守批量安装linux

    pxe+kickstart实现无人值守批量安装linux 实验准备:主机myrhel2作为服务器端,新建一个没有安装操作系统的虚拟主机,而且其与服务器端在同一个网段 安装的条件: 服务器端:      ...

  6. pxe+kickstart自动化批量安装系统详解-技术流ken

    前言 pxe+kickstart是一款可以实现自动化批量安装系统的服务,比较经典,下面将详细介绍此服务的安装和使用. 系统环境准备 系统版本:CentOS release 6.7 (Final) 内网 ...

  7. kvm cobbler无人值守批量安装操作系统

    kvm cobbler无人值守批量安装操作系统 cobbler:一个自动网络安装系统的工具,集成PEX.dhcp.dns.tftpd.sync等服务.可以供大家管理安装操作系统 kvm:Linux系统 ...

  8. ansible批量修改linux服务器密码的playbook

    从网上找到批量修改Linux服务器root密码的playbook. 使用方法: 1.输入要修改的inventory组 2.按需要,在playbook中输入要修改的IP.新密码,如下: - hosts: ...

  9. linux学习(2):linux服务器常用操作和命令

    linux服务器常用操作和命令 目录 1. 什么是linux服务器load average?2. 如何查看linux服务器负载3. 服务器负载高怎么办?4. 如何查看服务器内存使用率?5. 如何查看单 ...

随机推荐

  1. android 内存泄露调试

    一.概述 1 二.Android(Java)中常见的容易引起内存泄漏的不良代码 1 (一) 查询数据库没有关闭游标 2 (二) 构造Adapter时,没有使用缓存的 convertView 3 (三) ...

  2. Python基础(5)--字典

    字典由多个键及与其对应的值构成的对组成(把键值对成为项),每个键和它的值之间用冒号(:)隔开,项之间用逗号(,)隔开,而整个字典由一对大括号括起来.空字典由两个大括号组成:{} 本文地址:http:/ ...

  3. 学习C语言的数组

    C语言的数组 数组声明的实例:int num[3];只要记下这个模板就好. 不建议使用变量定义数组,如果使用了变量定义数组,作为数组的元素的个数,不初始化的情况下是随机值,如果初始化会直接报错 注意: ...

  4. This is usually caused by using Struts tags without the associated filter. Struts tags are only usable when the request has p

    2014-09-16 15:47:51.590:WARN:oejs.ErrorPageErrorHandler:EXCEPTION org.apache.jasper.JasperException: ...

  5. android中实现view可以滑动的六种方法续篇(二)

    承接上一篇,上一篇中讲解了实现滑动的第五种方法,如果你还没读过,可点击下面链接: http://www.cnblogs.com/fuly550871915/p/4985482.html 这篇文章现在来 ...

  6. 一个人的Scrum之准备工作

    在2012年里,我想自己一人去实践一下Scrum,所以才有了这么一个开篇. 最近看了<轻松的Scrum之旅>这本书,感觉对我非常有益.书中像讲述故事一样描述了在执行Scrum过程中的点点滴 ...

  7. Effective Java 65 Don't ignore exceptions

    Principle An empty catch block defeats the purpose of exceptions, which is to force you to handle ex ...

  8. 读书笔记——Windows核心编程(8)Interlocked单向链式栈

    SLists使用了无锁算法来保证原子同步,以提升系统性能,避免了诸如优先级挂和互锁的问题. 注意:所有的链表项必须对齐到MEMORY_ALLOCATION_ALIGNMENT.否则会出现奇葩的错误. ...

  9. JDK6与JDK7中String类subString()方法的区别

    1.subString()方法的作用 subString(int beginIndex, int endIndex)方法的返回的是以beginIndex开始到 endIndex-1结束的某个调用字符串 ...

  10. Android 开发之Windows环境下Android Studio安装和使用教程(图文详细步骤)

    鉴于谷歌最新推出的Android Studio备受开发者的推崇,所以也跟着体验一下. 一.介绍Android Studio  Android Studio 是一个Android开发环境,基于Intel ...