cobbler自动化部署指南

文章结构

1. 前言
2. cobbler安装
3. 系统定制
4. 参考链接

前言:

  给电脑装过系统的同学都知道,不论是从U盘、光驱或者其他设备装系统,都需要先在BIOS里设置开机启动项(或用开机快捷键设置)。从上大学到现在,我帮同学装系统少说也有上百次,但是还从来没有使用从网卡启动安装过,虽然以前也注意到,但一直不知道那是个什么玩意,见图(1)。前段时间在实习公司做Openstack的自动化安装与部署工作,才有幸接触到,原来这是一种从网卡远程启动的技术!

图1 BIOS启动项界面

  要从网卡启动,首先你的网卡要支持PXE(Preboot eXecution Environment,预启动环境),而PXE客户端存在于网卡的ROM中。PXE是由Intel开发,提供了一种由网卡启动计算机的机制,工作于Client/Server模式。通常有一台主机作为PXE的server端,并开通了PXE远程启动所依赖的DHCPTFTP等服务,客户机在通过网卡启动的过程中,会先向server端发出DHCP请求,从PXE服务器获得IP地址、网关及TFTP服务器信息后,然后通过TFTP协议(网卡ROM中已包含TFTP客户端)自动下载用于引导操作系统的引导文件(boot loader)到本地内存中(不同的操作系统架构使用不同的PXE引导文件,后文会继续提到),再通过此软件加载操作系统的启动文件,开始安装操作系统。

  在实践操作中,以CentOS6.5为例,上文中提到的PXE引导文件为/var/tftboot/pxelinux.0,而要完成某种定制安装,需要新建/var/tftboot/pxtlinux文件夹,并在此文件夹下自定义*.cfg文件来完成操作系统的定制(如:语言,时区,密码,分区,网络配置,安装包选择,安装完系统的后续操作等),另外还要在此目录下新建一个名为default的文件,指定系统定制文件*.cfg的位置等。这么一连串的操作和系统定制显然非常繁琐,只会增加运维人员的负担!Redhat推出了kickstartcobbler两个软件,专门用来完成操作系统的定制与自动化部署安装,其中cobbler更是集成了kickstart,功能更为强大!

  下面就一步步从安装cobbler开始学习!

cobbler安装:

0. 环境:Vmware虚拟环境 CentOS6.5-x86_64 (basic-server)

IP:192.168.10.160  HOSTNAME:cobbler.test.com

注:需要关闭Vmware自带的DHCP服务;

1. 系统更新

yum -y update

2. 软件包安装:

yum –y install httpd tftp-server xinetd dhcp cobbler bind puppet puppet–server facter

注:(a) http用于PXE客户端从服务端下载安装操作系统所需的文件;(b) cobbler可以完成puppet的安装和给puppet客户端的签名认证;(c) 也可安装cobbler-web,提供了web界面,操作更容易。

3. 修改配置文件及启动服务:

(1) 关闭SELinux

sed -i ‘s/SELINUX=.*/SELINUX=disabled/g‘ /etc/selinux/config # 重启生效,setenforce 0 临时生效

(2) 设置cobbler server IP:vim /etc/cobblet/settings

1 server: set your cobbler ip here, e.g. 192.168.10.160
2 next_server:  set your cobbler ip here, e.g. 192.168.10.160 

(3) 设置DHCP:

a. vim /etc/cobbler/settings

manage_dhcp: 1

b. vim /etc/cobbler/dhcp.template,此文件是cobbler管理dhcp的模板

 1 ddns-update-style interim;
 2
 3 allow booting;
 4 allow bootp;
 5
 6 ignore client-updates;
 7 set vendorclass = option vendor-class-identifier;
 8
 9 option pxe-system-type code 93 = unsigned integer 16;
10
11 subnet 192.168.10.0 netmask 255.255.255.0 {                       # 修改为cobbler所在主机的网段
12      option routers             192.168.10.5;                     # 路由
13      option domain-name-servers 192.168.10.160;                   # DNS server
14      option subnet-mask         255.255.255.0;                    # netmast
15      range dynamic-bootp        192.168.10.161 192.168.10.170;    # DHCP服务分配的IP范围
16      default-lease-time         21600;
17      max-lease-time             43200;
18      next-server                $next_server;
19      class "pxeclients" {
20           match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
21           if option pxe-system-type = 00:06 {
22                   filename "grub/grub-x86.efi";
23           } else if option pxe-system-type = 00:07 {
24                   filename "grub/grub-x86_64.efi";
25           } else {
26                   filename "pxelinux.0";
27           }
28      }
29
30 }

(4) 设置DNS:

a. vim /etc/cobbler/settings

manage_dns: 1
bind_master: 192.168.10.160
manage_forward_zones: [test.com]
manage_reverse_zones: [192.168.10]     

b. DNS查询:vim /etc/cobbler/named.template

1 listen-on port 53 { any; }
2 allow-query { any; }

(5) 设置ntp服务:vim /etc/ntp.conf

1 server 192.168.10.160
2 fudge  192.168.10.160 stratum 10

(6) 防火墙设置

如iptables开启,需开放udp 53/67/69,tcp 80/443/25151/8140端口;

(7) 更改系统默认密码 (可选):vim /etc/cobbler/settings

default_password_crypted: "$1$mF86/UHC$WvcIcX2t6crBz2onWxyac." # 默认为"cobbler"

用 openssl passwd -1 重设密码;

(8) 设置tftp:vim /etc/xinetd.d/tftp

将disable 项设置成 no;

(9) 下载get-loaders (即前文中提到的引导文件)

cobbler get-loaders # 自动下载loaders文件在/var/lib/cobbler/loaders/目录下

其中README文件注明了不同系统架构所需的引导文件:

1 The requirements for netbooting each are as follows:
2
3 x86/x86_64 require syslinux (pxelinux.0), and menu.c32
4 ppc/ppc64  use yaboot
5 ia64       uses elilo

(10) 配置puppet:

a. vim /etc/cobbler/setting

1 puppet_auto_setup: 1
2 sign_puppet_certs_automatically: 1
3 remove_ols_puppet_cert_automatically: 1

b. 修改puppet的配置文件: vim /etc/puppet/puppet.conf

 1 [main]
 2     logdir = /var/log/puppet
 3     rundir = /var/run/puppet
 4     ssldir = $vardir/ssl
 5
 6 [agent]
 7     classfile = $vardir/classes.txt
 8     localconfig = $vardir/localconfig
 9     server = cobbler.test.com
10     certname = cobbler.test.com
11
12 [master]
13 certname = cobbler.test.com
14 autosign = /etc/puppet/autosign.conf # 自动认证配置文件

新建自动认证文件:

touch /etc/puppet/autosign.conf
echo "*.test.com" >> /etc/puppet/autosign.conf # 假设cobbler部署的节点主机名为:*.test.com

(11) 启动服务

 1 /etc/init.d/puppetmaster start
 2 chkconfig puppetmaster on
 3
 4 service cobblerd start
 5 chkconfig cobblerd on
 6
 7 service httpd start
 8 chkconfig httpd on
 9
10 service xinetd start
11 chkconfig xinetd on

# cobbler sync会自动启动named和dhcpd

(12) cobbler 设置信息同步

cobbler sync

(13) cobbler 检查

cobbler check

注:如果前面临时关闭selinux,那么selinux错误提示可不用管;其他例如:端口设置,debmirror,cman,pykickstart等不需要的也可以不用管;

到此:cobbler安装完成!

系统定制

1. 导入镜像 :镜像目录 /mnt/ CentOS-6.5-x86_64-bin-DVD1.iso

1 mkdir -p /mnt/centos6.5
2 mount -o loop /mnt/ CentOS-6.5-x86_64-bin-DVD1.iso  /mnt/centos6.5/  # 挂载
3 cobbler import --path=/mnt/centos6.5/ --name=centos6.5

注:导入过程可能需要几分钟,可查看/var/www/cobbler/ks_mirror/centos5.5/目录文件生成情况或通过浏览器查看;

2. 信息查看

1 cobbler report       # 信息查看
2 cobbler distro list  # 查看导入distro列表,默认生成有一个与distro同名的profile
3 cobbler profile list # 查看profile列表

cobbler的系统结构:distro-->profile-->system,可以根据导入的distro定制profile,然后再由profile定制system;

3. 定制kickstart文件和SINPPET文件

例如:需要部署三类节点,控制节点、计算节点和存储节点,可分别定制以下三个ks文件(可通过图形界面软件system-config-kickstart很方便地定义)

Centos6.5-control.ks
Centos6.5-compute.ks
Centos6.5-storage.ks

定制的ks文件放置于 /var/lib/cobbler/kickstart/*ks,自定义的Snippet文件放置于 /var/lib/cobbler/snippet/下;

可以在ks文件中引用自定义的SNIPPET,这样不至于所有代码片段写在一起组成一个庞大的ks文件!最后系统调用的ks文件会从SNIPPETS中逐个去解析(复制);

4. 定制cobbler profile

(1) 控制节点profile

1 cobbler profile add --name=centos6.5-control  --kickstart=2  /var/lib/cobbler/kickstarts/centos6.5-control.ks --distro=centos6.5-x86_64

(2) 计算节点profile

1 cobbler profile add --name=centos6.5-compute --kickstart=2 /var/lib/cobbler/kickstarts/centos6.5-compute.ks --distro=centos6.5-x86_64

(3) 存储节点profile

1 cobbler profile add --name=centos6.5-storage --kickstart=2 /var/lib/cobbler/kickstarts/centos6.5-storage.ks --distro=centos6.5-x86_64

(4) 查看profile:cobbler profile list

1 [[email protected] ~]cobbler profile list
2 centos6.5-compute
3 centos6.5-control
4 centos6.5-storage5 centos6.5-x86_64

5. 定制系统

(1) 硬件发现

依次开启所有需要部署的节点,从PXE启动,会提示从DHCP服务器获取到IP;

节点的网络相关信息(主要:IP和对应的MAC地址)保存在/var/lib/dhcpd/dhcpd.leases;

(2) 系统定制

cobbler system add --name=node1 --mac=00:24:E8:64:24:59 --ip-address=192.168.10.161 --subnet=255.255.255.0 --gateway=192.168.10.5 --interface=eth0 --static=1 --if-gateway=192.168.10.5 --profile=centos6.5-control --name-servers-search=test.com --dns-name=node1.test.com --hostname=node1.test.com --netboot-enabled=true --name-servers=192.168.10.160

其中name和mac不能重复,mac是唯一指定到节点的凭证。--dns-name比较关键,cobbler会把 dns-name和ip写入DNS记录中,用于DNS解析;

(3) 重启所有节点,安装系统,并完成puppet注册(可在cobbler节点查看);

参考链接:

[1] http://zh.wikipedia.org/wiki/预启动执行环境

[2] 张子凡,OpenStack部署实践,人民邮电出版社,2014

[3] http://docs.fedoraproject.org/en-US/Fedora/17/html/Installation_Guide/s1-netboot-pxe-config.html

[4] http://www.cobblerd.org/manuals/2.6.0/

[5] http://fedoraproject.org/wiki/Anaconda/Kickstart

cobbler自动化部署指南,布布扣,bubuko.com

时间: 2024-10-13 16:16:11

cobbler自动化部署指南的相关文章

Cobbler自动化部署最佳实践

第1章 Cobbler自动化部署最佳实践 运维自动化在生产环境中占据着举足轻重的地位,尤其是面对几百台,几千台甚至几万台的服务器时,仅仅是安装操作系统,如果不通过自动化来完成,根本是不可想象的. 面对生产环境中不同服务器的需求,该如何实现批量部署多版本的操作系统呢?Cobbler便可以的满足这一实际需求,实现多版本操作系统批量部署. 笔者QQ:572891887 Linux架构交流群:471443208 1.1 Cobbler简介 Cobbler是一个快速网络安装linux的服务,而且在经过调整

运维自动化之使用Cobbler自动化部署Linux操作系统

1.Cobbler是什么? Cobbler是一个Linux安装服务器,能够快速设置好网络安装环境.它实现了许多与Linux相关的任务的自动化和组合,因此你在部署新的(操作)系统或更改已经存在的操作系统时不需要在繁多的命令和应用程序之间来回切换.Cobbler能帮助(用户.管理者)置备和管理DNS.DHCP.软件包更新.电源管理.配置管理以及更多. "Cobbler is a Linux installation server that allows for rapid setup of netw

cobbler自动化部署

cobbler 目录 前言 一.简介 二.工作原理 三.cobbler安装配置 1.启动cobbler配置并检查配置 2.执行Cobbler check报错解决方式 三.配置及启动cobbler所依赖的各服务 1.dhcp服务 2.TFTP服务 四.配置Cobbler 1.管理profile 五.配置cobble_web 1.配置cobbler_web的认证功能 2.使用authn_pam模块认证cobbler_web用户 3.使用authn_configfile模块认证cobbler_web用

使用cobbler自动化部署系统

一.Cobbler简介 Red Hat 最新(Cobbler项目最初在2008年左右发布)发布了网络安装服务器套件 Cobbler(补鞋匠),它已将 Linux 网络安装的技术门槛,从大专以上文化水平,成功降低到初中以下,连补鞋匠都能学会.I am just joking! 二.Cobbler功能特性 使用 Cobbler,您无需进行人工干预即可安装机器.Cobbler 设置一个 PXE 引导环境(它还可使用 yaboot 支持 PowerPC),并控制与安装相关的所有方面,比如网络引导服务(D

自动化运维之Cobbler自动化部署安装操作系统

Cobbler概述: Cobbler可以用来快速建立 Linux 网络安装环境,它已将 Linux 网络安装的技术门槛,从大专以上文化水平,成功降低到初中以下,连补鞋匠都能学会. 在生产环境中,经常批量部署几十甚至上百台服务器时,实现自动化安装操作系统尤为重要,按照传统的光盘引导安装工作量是不可预估的:此前我们通过pxe+kickstart简单实现了自动化安装,但只能实现单一版本安装,当需要部署不同版本或不同引导模式(BIOS.EFI)时,此种方式就不够灵活.而Cobbler正是为了解决此问题而

Redhat6.9中配置安装cobbler自动化部署(精简)

------redhat 6.9-------- 配置本地yum 配置阿里云 6epel源https://mirrors.aliyun.com/epel/6Server/x86_64/epel-release-6-8.noarch.rpm yum -y install cobbler dhcp tftp-server pykickstart httpd vim /etc/cobbler/settings 384行##server: (ip) 272行next_server: (ip) 242行#

在CentOS安装cobbler自动化部署软件

#!/bin/bash##cobbler server addressip=192.168.119.133#DHCP server net and address fanweinet=192.168.119.0begin=192.168.119.150end=192.168.119.200dns=202.96.209.133#firewall settingsed -i -e 's/SELINUX=enforcing/SELINUX=disabled' /etc/sysconfig/selinu

cobbler自动化部署多种类型的操作系统,一个软件全部搞定

在生产环境中难免会遇到,一些服务器需要安装centos,一些服务器需要安装ubuntu,或者一些系统需要安装centos6.4一些系统需要安装centos6.5,这时PXE就满足不了我们的要求.本文将介绍cobbler来实现此功能. Cobbler必选的服务: u TFTP u Rsync u DHCP u DNS(根据需求) Cobbler 命令: u Import u Sync u Reposync u Build ISO 核心概念: Distros:定义启动内核.initrd文件等 Pro

cobbler 批量自动化部署 Linux 系统

实验介绍:Cobbler自动化部署linux系统,比PXE部署方式效率更高,因此在大多环境中,以cobbler 方式部署系统,更为方便:具体步骤如下所示: 若描述有误欢迎拍砖交流QQ:45223208 1.安装cobbler 和 DHCP服务: yum install cobbler -y yum install dhcp -y 2. 启动服务 systemctl start cobbler tftp httpd systemctl enable cobbler tftp httpd 3. 根据