cobbler

cobbler是网络自动化安装系统,但是它依赖于pxe,而pxe自动化网络安装的时候又需要dhcp服务

因此这里要整体从dhcp开始介绍,之后是pxe,最后是cobbler

DHCP:动态主机配置协议;

arp: address resolving protocol

IP --> MAC

rarp: reverse arp

MAC --> IP

监听的端口:

Server: 67/UDP

Client: 68/UDP

工作流程(四个步骤)

C  dhcp discover   客户端发请求报文,发现网络中是否有dhcp服务器

S  dhcp offer             dhcp服务器收到之后就发送ip,网关,掩码等

C   dhcp request        客户端请求使用这个(这个过程可能是有多个dhcp服务器)

S   dhcp ack  确认    这四个步骤都是网络广播完成

租约机制是dhcp提供ip给客户端使用,当客户端适用了租约时间的50%,要续约剩下的50%,另加额外的50%,如果服务器没响应,那到租约的75%再联系,不行87.5%再发送,如果服务器还没有响应,那mo客户端就会执行dhcpdiscover

单播给服务器:(当续租的时候有两种情况)

dhcp request

dhcp ack    响应

dhcp request

dhcp nak    不响应

dhcp discover:广播

我们的路由器能够隔离广播域,如果dhcp在路由器一侧,那么dhcp服务器不能给另一个网络的pc使用,那么我们怎么做,那就要有路由器支持dhcpralay了,如果路由器不支持这一功能,那么,dhcp如果没有本地池,dhcp是不会自动工作的,有中级也不行,dhcp就需要设有ip本地池,如果没有,dhcp不会工作,除非dhcp就需要中继主机了,这就是路由器支持中继功能了,

查看默认租约的地方是在/var/lib/dhcpd/dhcpd.reases

dhcp中继之所以不为dhcp服务器,主要是方便管理,但是中继不好用,还不如再配置一个dhcp服务器

CentOS:

dhcp(ISC, named):

dnsmasq: 柔和了dhcp & dns 两个服务,兼具两种功能

dhcp:

dhcpd: dhcp服务

dhcrelay:中继服务

这两个服务不能同时启动

dhcp.conf 大致可以分为四个区域:

1,定义dhcp自身工作属性

2.全局地址分配,以option开头

3,子网配置,通用每个作用域,通过subnet定义

4,主机配置,通常为某特定的mac地址,固定分配绑定ip地址,

host ‘host_id " {

}

5.注:配置文件中每一行结尾以  ;  (分号结尾)

注:dhcp服务器配置的网段要和本机内一个网卡的ip在同一网段,不然无法启动,且,dhcp为内网的服务

~】# yum install -y dhcp

~】# cp/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf


[[email protected]
~]# grep ‘^[^#]‘ /etc/dhcp/dhcpd.conf

option
domain-name "zou.com";

option
domain-name-servers 172.16.1.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.1.100 172.16.1.200;

}     最好设置地址池的ip和dhcp服务器的ip在同一网段

之后使用另一个主机测试dhcp服务时候开启(这里要说明一的下,如果使用vmware的虚拟软件,需要把测试的主机(服务端dhcp和自动分配ip的服务器都要修改为仅主机模式,之后把VMware net1里面的dhcp服务给关闭了,之后,你的主机就可以派上用场了

使用dhclinet -d  前台测试可以更快点,当然可以修改网卡配置改为dhcp动态获取ip,之后重启网络服务

dhcpd:

/etc/dhcp/dhcpd.conf

option routers GW;             默认网关(在全局段中加),如果这个指令写在子网中,那么子网优先级更高

option domain-name-servers
IP, IP, IP;       dns解析地址

default-lease-time                 以s为单位,默认600,默认租约期限

max-lease-time                       最大租约期限

subnet NET netmask MASK {

range  ;

...

}

host  HOST_ID {               给某个主机分配固定的ip地址   ;HOST_ID仅仅为一个名字,区分其他使用

hardware ethernet  MAC;    想要对某个主机的MAC绑定ip

fixed-address  IP;   固定地址中不能分配地址池中已经分配的地址,尽量也别在地址池里面选择

}


[[email protected]
~]# grep ‘^[^#]‘ /etc/dhcp/dhcpd.conf

option
domain-name "zou.com";

option
domain-name-servers 8.8.8.8;

option
routers 172.16.1.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.1.100 172.16.1.200;

}

host
passacaglia {

hardware ethernet 00:0C:29:5c:23:e1;

fixed-address 172.16.1.233;

}

分配信息库:

/var/lib/dhcp/dhcpd.leases~

客户端命令:dhclient

-d:运行在前台;

其它配置选项:

filename:指明引导文件名称;和后面的pxe相关联的

next-server:指明引导文件所在的服务主机的IP地址;这个服务通常跑着tftp server


filename  "pxelinux.0";

next-server 172.16.1.1;

tftp全写: trivial ftp, udp  简单的文件传输协议

查看日志tail-f /var/log/boot.log   之所以是这个文件看log,主要是7级别定义的

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

pxe:基于网络引导的安装操作

工作机制:客户端为裸机,还没有没有装系统,并且,网络为第一引导启动设备;客户端首先在本地广播rarp协议,获得一个ip地址,同时在dhcp获取文件名称和文件服务器的IP地址;之后客户端去向文件服务器加载dhcp指定的文件;加载完文件之后,在内存中展开,基于此文件去向文件服务器加载内核文件;之后向文件服务器加载虚拟的根文件initrd,这样一个临时系统客户端生成;之后要向一个yum仓库去加载安装系统的文件和程序,安装系统完成之后要读取kickstart文件,根据kickstart的内容解决依赖关系,并与yum仓库完成后续的所有任务

PXE: preboot excution environment, Intel

CentOS:

dhcp (配置ip/netmask, gw, dns; filename, next-server;)

tftp server (准备bootloader, kernel, initrd等文件)

yum repository (ftp, http(apache/nginx), nfs三者服务提供yum源,之一即可)

kickstart文件   (完成自动化安装,标量安装;安装什么样已经在文件里面设定)

tftp server:

69/udp

CentOS 6:

yum installtftp-server

chkconfig  tftp  on

service  xinetd restart

CentOS 7:

systemctl  start  tftp.socket

如果想要开机自动启动 systemctl  enable tftp.socket

[[email protected] ~]# yum -y install tftp tftp-server

[[email protected] ~]# systemctl start tftp.socket

默认的文件根目录:/var/lib/tftpboot/


[[email protected]
~]# cp /etc/grub2.cfg /var/lib/tftpboot

[[email protected] ~]# ls   注:这里因为测试tftp是否启动,与pxe安装无关

anaconda-ks.cfg

[[email protected]
~]# tftp 172.16.1.1

tftp>
get grub2.cfg

tftp>
quit

[[email protected]
~]# ls

anaconda-ks.cfg  grub2.cfg

dhcp server:

配置文件示例


[[email protected]
~]# grep ‘^[^#]‘ /etc/dhcp/dhcpd.conf

option
domain-name "zou.com";

option
domain-name-servers 8.8.8.8;

option
routers 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.1.100 172.16.1.200;

filename "pxelinux.0";  这个文件要放到tftp的根目录下

next-server 172.16.1.1;  指向tftpserver的ip

}

yum仓库源

这里的yum仓库可以和pxe等服务不在一个服务器上,只要网络通畅即可。

所以我在172.16.1.4上面设置了nginx服务提供的yum仓库

准备kickstart文件:

这个要和提供yum仓库的放到一起(如图省事的话,在你服务器的root家目录下面就有ks.cfg文件

文件名字不重要,但是必须以.cfg结尾表明为kickstart文件

文件里面的大多不需要修改,但是

url--url="http://172.16.1.4/centos7.2/"   必须要指定安装的yum仓库

下面是centos7.2的ks.cfg文件;如果是6.7直接在root目录下面复制就得了(当然省事的话7也可以)

如果是从root里面复制过来的,别忘了给文件r权限,chmod +r ks67.cfg


[[email protected]
kickstarts]# ls

ks7.2.cfg  ks72.cfg

[[email protected]
kickstarts]# cat ks72.cfg

#platform=x86,
AMD64, 或 Intel EM64T

#version=DEVEL

#
Install OS instead of upgrade

install

# X
Window System configuration information

xconfig  --startxonboot

#
Keyboard layouts

# old
format: keyboard us

# new
format:

keyboard
--vckeymap=cn --xlayouts=‘cn‘

#
Reboot after installation

reboot

# Root
password

rootpw
--iscrypted
$6$4amSQxNRO8RZYCfR$auZFM4UCXBkHb4.puY1PnCL6v9vSjCppg0QZZw9Ui2wn8kKDTGqikxNslflFJ2aye0LyjyQi4OJ7JvyWzvUPR.

#
System timezone

timezone
Asia/Shanghai

# Use
network installation

url
--url="http://172.16.1.4/centos7.2/"

#
System language

lang
zh_CN

user
--groups=wheel --name=mageedu
--password=$6$1eWrOetY$DfLZgquGiOaNkwpEF4ItMipz.1kpn7Q.s6oXyoW2bALkWesRWHCCACICkJ.2zBXDbwEw0ibR.wxStLI41ZhfF1
--iscrypted --gecos="MageEdu"

#
Firewall configuration

firewall
--disabled

#
Network information

network  --bootproto=dhcp --device=eth0

#
System authorization information

auth  --useshadow 
--passalgo=sha512

# Use
text mode install

text

firstboot
--disable

#
SELinux configuration

selinux
--disabled

ignoredisk
--only-use=sda

#
System bootloader configuration

bootloader
--location=mbr --boot-drive=sda

# Clear
the Master Boot Record

zerombr

#
Partition clearing information

clearpart --all --initlabel    这个参数的意思是在安装系统的磁盘上有数据的时候,需要你手动的点选是放弃数据还是保留数据,其实这属于一种保护,因为有的工作人员的电脑如果是网络安装在bios我首的可能会不小心安装了系统,这样反而不安全;当然这个选项有还是没有看情况而定,如果所有主机已经确定要重新安装,就要使用这个参数,不然每个都要再去手工点选,有点儿不方便。

# Disk
partitioning informaton

part
/boot --asprimary --fstype="xfs" --size=512

part
swap --fstype="swap" --size=2048

part
/usr --fstype="xfs" --size=15000

part /
--fstype="xfs" --size=20480

%packages

@base

@core

lftp

screen

wget

tree

%end

配置PXE环境:

CentOS 7:  提供pxelinux.0文件的是由syslinux软件包提供的

yum  -y installsyslinux

cp /usr/share/syslinux/pxelinux.0  /var/lib/tftpboot/

mount /dev/cdrom /mnt

cp /mnt/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot

cp /usr/share/syslinux/{chain.c32,mboot.c32,menu.c32,memdisk}  /var/lib/tftpboot

创建引导菜单的默认配置文件,让用户选择

mkdir
/var/lib/tftpboot/pxelinux.cfg/

vim 
/var/lib/tftpboot/pxelinux.cfg/default


default menu.c32       以菜单方式显示安装界面

prompt 5              界面显示5秒

timeout 30         超时时间为30s

MENU TITLE CentOS 7 PXE Menu   这块儿是自由定义的   大菜单

LABEL linux

MENU LABEL Install CentOS 7
x86_64           标题

KERNEL vmlinuz              指明内核

APPEND initrd=initrd.imginst.repo=http://172.16.1.4/centos7.2/

内核的追加的参数,指明yum仓库的位置  (注:这个时候为了自动化安装必须要指明内核加载临时系统的ip,这样它才能去获取安装文件,但是我们这里前面已经安装的dhcp,所以,就不用指定了)inst.repo为centos7特有的参数

LABEL linux_autoinst

MENU LABEL Install CentOS 7 x86_64 auto

KERNEL vmlinuz

APPEND initrd=initrd.img
inst.repo=http://172.16.1.4/centos7.2/ ks=http://172.16.1.4/kickstarts/ks72.cfg

CentOS 6:      (之前的步骤大致相似,当然这次我在centos6dhcp为192.168.1.网段的,需要适度修改一下

并且,centos6上的一个网卡也要配置192.168.1.的,这里为192.168.1.4

yum  -y install
syslinux

cp /usr/share/syslinux/pxelinux.0  /var/lib/tftpboot/

cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img}  /var/lib/tftpboot/

cp
/media/cdrom/isolinux/{boot.msg,vesamenu.c32,splash.jpg}  /var/lib/tftpboot

mkdir
/var/lib/tftpboot/pxelinux.cfg/

cp 
/media/cdrom/isolinux/isolinux.cfg 
/var/lib/tftpboot/pxelinux.cfg/default


[[email protected]
pxelinux.cfg]# cat default

default
vesamenu.c32

#prompt
1

timeout
600

display
boot.msg

menu
background splash.jpg

menu
title Welcome to CentOS 6.7!

menu
color border 0 #ffffffff #00000000

menu
color sel 7 #ffffffff #ff000000

menu
color title 0 #ffffffff #00000000

menu
color tabmsg 0 #ffffffff #00000000

menu
color unsel 0 #ffffffff #00000000

menu
color hotsel 0 #ff000000 #ffffffff

menu
color hotkey 7 #ffffffff #ff000000

menu
color scrollbar 0 #ffffffff #00000000

label
linux

menu label ^Install or
upgrade an existing systemauto from
zou.com

menu default

kernel vmlinuz

append initrd=initrd.img
ks=http://192.168.1.4/kickstarts/ks67.cfg

label
vesa

menu label Install system with ^basic video
driver

kernel vmlinuz

append initrd=initrd.img nomodeset

label
rescue

menu label ^Rescue installed system

kernel vmlinuz

append initrd=initrd.img rescue

label
local

menu label Boot from ^local drive

localboot 0xffff

label
memtest86

menu label ^Memory test

kernel memtest

append -

注意,这里的6.7上面的ks文件为root目录下面服复制过来的,要给r权限,

仓库指向去掉,有repo的那一行(repo --name="CentOS"  --baseurl=cdrom:sr0 --cost=100),那行是本地安装的yum仓库位置,这里需要指向网络路径

url --url=http://192.168.1.4/centos6.7/

clearpart --all              清空磁盘

# Reboot after installation

reboot

机上上面的reboot是让它能够自动引导,不用安装完了,再去点reboot

pxe的缺点:一般情况下,默认只能安装一种系统,比较不为方便

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

cobbler     pxe的二次封装,用户可通过菜单选择安装那个版本的系统,多系统pxe环境并存的解决方案

cobbler依赖于pxe,(需要把pxe当中的各种程序指定,需要手动制作yum源,dhcp设置,其余的cobbler都会自动解决,cobbler还可以管理tftp服务,dhcp服务,http服务)

BootStrapping:

Cloud or VM:Image Lanch

Bare Metal:OS Install

cobbler:

PXE:

Koan:

核心概念:

Distros:

kernel, initrd

Profiles:

distribution, kickstart file, repository

System:

profile, IP, MAC

1.在同一仓库,如果有两个kickstart文件,部署出来的系统是不一样的,(如web服务器,mysql服务器等)

2.同一个kickstart文件和repo仓库,ip不同可以部署出多个主机系统

3.以上的两句话,就等于分了三层:最上一层仓库,叫做distro(仓库);中间一层叫做profile(不同的配置);最下面的结合ip和mac安装出不同的系统服务的叫做system。

4.在cobbler有多个distro,每一个distro有多个profile

5.如果在指定distro仓库的时候,还同时提供提供kickstart文件,这样就会形成一个默认的profile,可完成自动化安装

6.distro的仓库创建方式有两种:

直接去create,也就是我们平时安装httpd或者nginx,之后把光盘里面的数据拷贝到网页目录下制作repodata

直接通过cobbler 来import,相对第二种比较方便

安装:cobbler软件包    在epel源当中

cobbler-web   为较为便捷的管理插件

依赖于python;

~】#yum install cobble

运行cobbler服务之前:

dhcp、httpd、tftp-server

cobbler命令的使用格式:

cobbler command [subcommand] [--arg1=value1] [--arg2=value2]

cobbler --help

check:检查配置环境

sync:同步配置

distro:表示一个发行版,标记一个发行版的最关键的资源是kernel和ramdisk

import:导入镜像,会把光盘上的所有文件复制到当前主机上面来,会自动复制目录到/var/www/目录下面生成cobbler目录,里面就是制定的仓库目录名和config配置目录(有profile文件)

profile:  管理profile文件

~】# cobbler profile rename--name=Centos7-1511-x86_64 --newname=centos7.2-x86_64

~】# cobbler profile list           列出查看

Cobbler:

一、安装

前提:cobbler由epel源提供,故此需要事先配置指向epel的yum源方可进行类似下面的安装过程。

# yuminstall cobbler cobbler-web pykickstart debmirror

#service httpd start

#service cobblerd start

执行“cobblercheck命令检查存的问题,而后逐一按提示解决之。常见的问题如下所示:

1 : The‘server‘ field in /etc/cobbler/settings must be set to something other thanlocalhost, or kickstarting features will not work.  This should be a resolvable hostname or IPfor the boot server as reachable by all machines that will use it.

2 : ForPXE to be functional, the ‘next_server‘ field in /etc/cobbler/settings must beset to something other than 127.0.0.1, and should match the IP of the bootserver 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 mayrun ‘cobbler get-loaders‘ to download them, or, if you only want to handlex86/x86_64 netbooting, you may ensure that you have installed a *recent*version of the syslinux package installed and can ignore this messageentirely.  Files in 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 theeasiest way to resolve these requirements.

5 :file /etc/xinetd.d/rsync does not exist

6 :debmirror package is not installed, it will be required to manage debiandeployments and repositories

7 :ksvalidator was not found, install pykickstart

8 : Thedefault 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: "opensslpasswd -1 -salt ‘random-phrase-here‘ ‘your-password-here‘" togenerate new one

9 :fencing tools were not found, and are required to use the (optional) powermanagement features. install cman or fence-agents to use them

Restartcobblerd and then run ‘cobbler sync‘ to apply changes.

如上各问题的解决方法如下所示:

1、修改/etc/cobbler/settings文件中的server参数的值为提供cobbler服务的主机相应的IP地址或主机名,

如 server: 172.16.1.1

2、修改/etc/cobbler/settings文件中的next_server参数的值为提供PXE服务的主机相应的IP地址,

如next_server: 172.16.100.16;

3、把selinux的设置为disabed,如果为permissive可以忽略这一选项

4、如果当前节点可以访问互联网,执行“cobblerget-loaders”命令即可;否则,需要安装syslinux程序包,而后复制/usr/share/syslinux/{pxelinux.0,menu.c32}等文件至/var/lib/cobbler/loaders/目录中;

当然其实最好的办法是把/usr/share/syslinux目录下面的所有文件都给复制到/var/lib/cobbler/loaders/目录下面,这样更加省事,不容易出现问题

5、执行“chkconfigrsync on”命令即可;centos7上确保rsync已经安装

~]#  systemctl startrsyncd.socket

~]# vim/etc/xinetd.d/tftp   修改里面的disable = no

~]# systemctlrestart rsyncd.sock

6、注释/etc/debmirror.conf文件中的“@dists="sid";”一行;centos6的做法

对于centos6而言,直接把这个debmirror软件包安装即可(如果没有同上做法)

注释/etc/debmirror.conf文件中的“@arches="i386";”一行;

centos7可以忽略这个选项

7、 yum  install pykickstart

8、执行“opensslpasswd -1 -salt $(openssl rand -hex4)”生成密码,并用其替换/etc/cobbler/settings文件中default_password_crypted参数的值;

或者,去/etc/shadow里面找某用户的加密后的密码,复制粘贴到default_password_crypted:  后面

$6$Q5EaYKXP$Lfwe4CM1UKX2Eqh2xuf8oxEy58qdquVq6LE46mkXNJEz3w8AeNvl40zmV3op13uOsDfkcH8Us34D0hL/KSvpJ/                    这上面的其实为一行,只是排版出现了3行,这个是root密码的加密后

9、执行“yuminstall cman fence-agents”命令安装相应的程序包即可;高可用集群当中的组件

10、接着重启cobblerd,而后执行“cobblersync”同步新的配置至cobbler。

[[email protected] cobbler]# systemctl restart cobblerd.service

[[email protected] cobbler]# cobbler check

1 : 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 youhave installed a *recent* version of the syslinux package installed and canignore this message entirely.  Files inthis directory, should you want to support all architectures, should includepxelinux.0, menu.c32, elilo.efi, and yaboot. The ‘cobbler get-loaders‘ commandis the easiest way to resolve these requirements.

2 : file /etc/xinetd.d/rsync does not exist

3 : debmirror package is not installed, it will be requiredto manage debian deployments and repositories

以上三个报错信息,可以忽略了,并没有多大影响

[[email protected] cobbler]# cobblersync

二、配置及启动cobbler所依赖的各服务

cobbler的运行依赖于dhcp、tftp、rsync及dns服务。其中dhcp可由dhcpd(isc)提供,也可由dnsmasq提供;tftp可由tftp-server程序包提供,也可由cobbler自带的tftp功能提供;rsync由rsync程序包提供;dns可由bind提供,也可由dnsmasq提供(dns服务并非必须,可以不予提供)。

cobbler可自行管理这些服务中的部分甚至是全部,但需要配置/etc/cobbler/settings文件中的“manage_dhcp”、“manage_tftpd”、“manage_rsync”和“manage_dns”分别进行定义。另外,由于每种服务都有着不同的实现方式,如若需要进行自定义,需要通过修改/etc/cobbler/modules.conf配置文件中各服务的模块参数的值来实现。

~】# vim /etc/cobbler/settings

manage_dhcp: 0                 0表示为不启动cobbler自动管理dhcp服务

manage_dns: 0

manage_tftpd: 1               这个可以让cobbler自动管理

本文采用了独立管理的方式,即不通过cobbler来管理这些服务(手动管理)。

2.1配置dhcp服务

定义好所需的“subnet”及其它参数或选项,而后启动dhcpd守护进程即可。本示例中所用的dhcpd的配置如下所示:


[[email protected]
cobbler]# grep ‘^[^#]‘ /etc/dhcp/dhcpd.conf

option
domain-name "magedu.com";

option
domain-name-servers 8.8.8.8;

option
routers 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.1.100 172.16.1.200;

filename "pxelinux.0";

next-server 172.16.1.1;

}

接着使用“service
dhcpd start”启动服务即可。

2.2
配置tftp服务

# chkconfig tftp on

# service xinetd restart

如果为7版本的话

[[email protected] cobbler]# systemctl restart tftp.socket

2.3 安装httpd服务,什么都不用干,直接启动httpd服务即可

三、配置cobbler

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

3.1管理distro

使cobbler变得可用的第一步为定义distro,其可以通过为其指定外部的安装引导内核及ramdisk文件的方式实现。而如果已经有完整的系统安装树(如CentOS6的安装镜像)则推荐使用import直接导入的方式进行。distro用来制作启动和引导系统的

例如,对于已经挂载至/mnt目录的CentOS 7.2安装镜像,则可以使用类似如下命令进行导入。

[[email protected] ~]# cobbler import --name="centos7.2-x86_64" --path=/mnt

[[email protected] www]# ls

cgi-bin  cobbler  html

[[email protected] www]# cobbler distro list

centos7.2-x86_64

如果有kickstart文件,也可以使用“--kickstart=/path/to/kickstart_file”进行导入,因此import会自动为导入的distro生成一个profile。(这样会自动化安装,如果不指定的反正自动生成的也不能直接用,还要修改一下才可以)

3.2管理profile

cobbler使用profile来为特定的需求类别提供所需要安装配置,即在distro的基础上通过提供kickstart文件来生成一个特定的系统安装配置。distro的profile可以出现在PXE的引导菜单中作为安装的选择之一。

因此,如果需要为前面创建的centos7.2-x86_64这个distro提供一个可引导安装条目,其用到的kickstart文件为/root/centos72.cfg(只提供了最基本的程序包),则可通过如下命令实现。

保障/root/centos72.cfg其中的

url--url="http:/172.16.1.1/cobbler/ks_mirror/centos7.2-x86_64"

[[email protected] ~]# cp /root/ks72.cfg/var/lib/cobbler/kickstarts/

[[email protected] ~]# cobbler profile list

centos7.2-x86_64

[[email protected] ~]# cobblerdistro list    列出仓库名

centos7.2-x86_64

[[email protected] ~]# cobbler profile add --name=centos7.2-x86_64-1511-zou-server --distro=centos7.2-x86_64--kickstart=/var/lib/cobbler/kickstarts/ks72.cfg

[[email protected] ~]# cobbler profile list

centos7.2-x86_64

centos7.2-x86_64-1511-zou-server

[[email protected] ~]# cobblersync             每次修改完成之后,使用sync进行同步

这个同步会在/var/lib/tftpboot/pxelinux.cfg/目录下面,自动生成一个default文件


[[email protected]
pxelinux.cfg]# cat default

DEFAULT
menu

PROMPT
0

MENU
TITLE Cobbler | http://cobbler.github.com

TIMEOUT
200

TOTALTIMEOUT
6000

ONTIMEOUT
local

LABEL
local

MENU LABEL (local)

MENU DEFAULT

LOCALBOOT -1

LABEL
centos7.2-x86_64

kernel /images/centos7.2-x86_64/vmlinuz

MENU LABEL centos7.2-x86_64

append
initrd=/images/centos7.2-x86_64/initrd.img ksdevice=bootif lang=  kssendmac text  ks=http://172.16.1.1/cblr/svc/op/ks/profile/centos7.2-x86_64

ipappend 2

LABEL
centos7.2-x86_64-1511-zou-server

kernel /images/centos7.2-x86_64/vmlinuz

MENU LABEL
centos7.2-x86_64-1511-zou-server

append
initrd=/images/centos7.2-x86_64/initrd.img ksdevice=bootif lang=  kssendmac text  ks=http://172.16.1.1/cblr/svc/op/ks/profile/centos7.2-x86_64-1511-zou-server

ipappend 2

MENU
end

之后还可以再继续添加一个centos6的安装可选项:

[[email protected] ~]# cobblerimport --name="centos6.7-x86_64" --path=/mnt

[[email protected] ~]#  cobbler profile add --name=centos6.7-x86_64-zou-server --distro=centos6.7-x86_64--kickstart=/var/lib/cobbler/kickstarts/ks67.cfg

四、使用cobbler_web    基于Django框架研发,可以管理cobbler

[[email protected] ~]# yum install cobbler-web -y

[[email protected] ~]# cd /etc/cobbler/

[[email protected] cobbler]# cp modules.conf{,.bak}

[[email protected] cobbler]# vim modules.conf

[authentication]

module = authn_configfile

4.1
配置cobbler_web的认证功能

cobbler_web支持多种认证方式,如authn_configfile、authn_ldap或authn_pam等,默认为authn_denyall,即拒绝所有用户登录。下面说明两种能认证用户登录cobbler_web的方式。

4.1.1
使用authn_pam模块认证cobbler_web用户

首先修改modules中[authentication]段的module参数的值为authn_pam。

接着添加系统用户,用户名和密码按需设定即可,例如下面的命令所示。

# useradd cblradmin

# echo ‘cblrpass‘ | passwd --stdin cblradmin

而后将cblradmin用户添加至cobbler_web的admin组中。修改/etc/cobbler/users.conf文件,将cblradmin用户名添加为admin参数的值即可,如下所示。

[admins]

admin =
"cblradmin"

最后重启cobblerd服务,通过http://YOUR_COBBLERD_IP/cobbler_web访问即可。

4.1.2
使用authn_configfile模块认证cobbler_web用户

首先修改modules.conf中[authentication]段的module参数的值为authn_configfile。

接着创建其认证文件/etc/cobbler/users.digest,并添加所需的用户即可。需要注意的是,添加第一个用户时,需要为htdigest命令使用“-c”选项,后续添加其他用户时不能再使用;另外,cobbler_web的realm只能为Cobbler。如下所示。

[[email protected] cobbler]#
htdigest -c /etc/cobbler/users.digest Cobbler cblradmin   用户名

Adding password for cblradmin in realm Cobbler.

New password:

Re-type new password:

之后要通过ssl会话,才能建立连接Rewrite Rule for
secure-http

[[email protected] conf.d]# vim ssl.conf

SSLCertificateFile /etc/httpd/conf/.ssh/httpd.crt

SSLCertificateKeyFile /etc/httpd/conf/.ssh/httpd.key

仅修改这两项即可

[[email protected] cobbler]# systemctl restart cobblerd.service

[[email protected] cobbler]#
systemctl reload httpd.service

通过http://YOUR_COBBLERD_IP/cobbler_web访问即可。

时间: 2024-10-08 04:59:06

cobbler的相关文章

使用Cobbler批量安装操作系统

个人博客地址:http://www.pojun.tech/ 欢迎访问 前言 在实际生产中,我们常常会遇到这样一种情况,就是我们需要同时安装几十甚至上百台服务器,如果我们使用U盘或者光盘的方式的话,或许老板直接就将我们辞退了.这里我们介绍一种能够实现自动化安装操作系统的方式. 我们搭建Cobbler的实验环境是基于CentOS 7.3 -1611 的基础的. 同时这个实验可以帮助你一步步的完成所有的操作,不过,如果你想自定义安装的内容的话,建议你先看本文 自定义kickstart文件 部分,以便有

Cobbler实现无人值守安装系统

防伪码:没有相当程度的孤独是不可能有内心的平和. 1.概述 本文部分图片源自网络,侵删. 1.1 介绍 官网地址 http://cobbler.github.io/ 官网介绍:Cobbleris a Linux installation server that allows for rapid setup of networkinstallation environments. It glues together and automates many associatedLinux tasks

CentOS7下利用cobbler搭建openstack本地源

前面提到了使用cobbler进行自动化部署系统,下面我们介绍下如何利用cobbler快速搭建openstack本地源(这里我以我的测试环境中的openstack的Mitaka版本为例). 操作步骤如下: 1.添加openstack源: [[email protected] ~]# cobbler repo add --name=openstack-mitaka --mirror=http://mirrors.163.com/centos/7.3.1611/cloud/x86_64/opensta

运维自动化工具Cobbler之——安装实践

运维自动化工具--Cobbler实践 第1章 About Cobbler 1.1 Cobbler Introduction Cobbler是一个Linux服务器安装的服务,可以通过网络启动(PXE)的方式来快速安装.重装物理服务器和虚拟机,同时还可以管理DHCP,DNS等. Cobbler可以使用命令行方式管理,也提供了基于Web的界面管理工具(cobbler-web),还提供了API接口,可以方便二次开发使用.Cobbler是较早前的kickstart的升级版,优点是比较容易配置,还自带web

Centos 部署Cobbler系统

一.简介 Cobbler 可以用来快速建立 Linux 网络安装环境,它已将 Linux 网络安装的技术门槛,从大专以上文化水平,成功降低到初中以下,连补鞋匠都能学会.(~..~) 二.安装环境以及资源 系统:centos 6.5 IP:192.168.30.158/24 自动安装镜像:CentOS-6.5-x86_64-bin-DVD1.iso 三.安装步骤 安装epel源: [[email protected] ~]# rpm -ivh http://download.fedoraproje

linux 自动化运维之Cobbler

一.Cobbler 简介 1.Cobbler 概述 Cobbler由python语言开发,是对PXE和Kickstart以及DHCP的封装.融合很多特性,提供了CLI和Web的管理形式.更加方便的实行网络安装.同时,Cobbler也提供了API接口,使用其它语言也很容易做扩展.它不紧可以安装物理机,同时也支持kvm.xen虚拟化.Guest OS的安装.更多的是它还能结合Puppet等集中化管理软件,实现自动化的管理. 2.新旧对比 以前自动化安装系统得先设置一个网络环境,可是设置网络环境涉及到

自动化之cobbler部署

运维自动化之cobbler部署 cobbler介绍 Cobbler是一个快速网络安装linux的服务,而且在经过调整也可以支持网络安装windows.该工具使用python开发,小巧轻便,使用简单的命令即可完成PXE网络安装环境的配置,同时还可以管理DHCP,DNS,以及yum包镜像. Cobbler支持命令行管理,web界面管理,还提供了API接口,可以方便二次开发使用. 优点: 和Kickstart不同的是,使用cobbler不会因为在局域网中启动了dhcp而导致有些机器因为默认从pxe启动

Cobbler环境搭建

Cobbler服务器系统: CentOS 6.6 64位Cobbler版本: cobbler-2.6.11IP地址:192.168.166.136 1.安装epel库 rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm 2.安装依赖包 yum -y install cobbler tftp tftp-server xinetd dhcp httpd rsync pykickstart

基于pxe+cobbler的全自动化安装centos系统

前言: 基于上篇的内容,我们就已经可以搭建一个全自动化安装centos的服务了.不过如果我们想让它同时支持各种系统的安装,实现起来就比较复杂了.不同的系统,要用不同的引导启动 文件来安装,且还有不同的安装源以及kickstart文件等等.既然是复杂得事情,肯定能通过某种工具简化,而此次我们用到的就是传说中的cobbler来管理各个不同的源,pxe加载的内核文件等等.Let's do it! 正文: 老规矩,先描述一下加入cobbler以后整体的工作流程,已经cobbler能实现的功能.当一个需要

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

kvm cobbler无人值守批量安装操作系统 cobbler:一个自动网络安装系统的工具,集成PEX.dhcp.dns.tftpd.sync等服务.可以供大家管理安装操作系统 kvm:Linux系统自带的虚拟化软件,自行找资料学习. 环境描述: cobbler: 系统:CentOS_x86 6.8 网卡: eth0:vm1 (管理)10.10.100.131 ech1:NAT (上网)DHCP kvm: 系统:CentOS_x86 6.8 网卡: eth0:vm1 (管理)10.10.100.