Centos6.7安装部署cobbler完成无人值守化安装部署

 Centos6.7部署cobbler完成无人值守化安装部署                   Cobbler是一个免费开源系统安装部署软件,用于自动化网络安装操作系统。在生产环境中,经常批量部署几十甚至上百台服务器时,实现自动化安装操作系统尤为重要,按照传统的光盘引导安装工作量是不可预估的;此前我们通过pxe+kickstart简单实现了自动化安装,但只能实现单一版本安装,当需要部署不同版本或不同引导模式(BIOS、EFI)时,此种方式就不够灵活。而Cobbler正是为了解决此问题而设计的。


Cobbler组件架构如下:

Cobbler服务集成以下:

*1* PXE服务

*2* DHCP服务管理

*3* TFTP服务管理

*4* Rsync服务(系统镜像可导入发行版镜像,也可以从互联网中通过rsync工具导入)

*5* HTTP服务管理

*6* DNS服务管理

*7* Kickstart服务

*8* IPMI电源管理

二、工作流

cobbler为server端,裸机为client端

1:client裸机配置了从网络启动后,开机后会广播包请求DHCP服务器(cobbler server)发送其分配好的一个IP

2:DHCP服务器(cobbler server)收到请求后发送responese,包括其ip地址

3:client裸机拿到ip后再向cobbler server发送请求OS引导文件的请求

4:cobbler server告诉裸机OS引导文件的名字和TFTP server的ip和port

5:client裸机通过上面告知的TFTP server地址和port通信,下载引导文件

6:client裸机执行执行该引导文件,确定加载信息,选择要安装的os,期间会再向cobbler server请求kickstart文件和os image

7:cobbler server发送请求的kickstart和os iamge

8:client裸机加载kickstart文件

9:client裸机接收os image,安装该os image

详细的配置示例如下:

(1)安装EPEL源

# wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm 
# rpm -Uvh remi-release-6.rpm epel-release-6-8.noarch.rpm

(2)安装cobbler及相关依赖包

# yum -y install httpd dhcp tftp-server xinetd rsync cman pykickstart debmirror
# yum install -y ed patch perl perl-Compress-Zlib perl-Digest-SHA1 perl-LockFile-Simple perl-libwww-perl
# yum -y groupinstall "Development Tools"
# yum -y install syslinux python-simplejson python-cheetah PyYAML Django openssl-devel genisoimage createrepo mod_wsgi mod_ssl
# yum -y install libyaml-0.1.3-4.el6_6.x86_64.rpm PyYAML-3.09-5.el6.x86_64.rpm
# yum -y install cobbler cobbler-web

(3)配置启动httpd、cobbler等服务

# chkconfig --level 35 httpd on
# chkconfig --level 35 cobblerd on
# chkconfig --level 35 tftp on
# chkconfig --level 35 rsync on
# chkconfig --level 35 xinetd on
# chkconfig dhcpd on
# service xinetd start
# service httpd start
# service cobblerd start

(4)Cobbler目录使用说明:

 配置文件目录:/etc/cobbler

* * /etc/cobbler/settings : cobbler 主配置文件

* * /etc/cobbler/iso/ : iso模板配置文件

* * /etc/cobbler/pxe : pxe模板文件

* * /etc/cobbler/power : 电源配置文件

* * /etc/cobbler/users.conf : Web服务配置文件

* * /etc/cobbler/users.digest : 用于web访问的用户名密码配置文件

* * /etc/cobbler/dhcp.template : DHCP服务配置模板文件

* * /etc/cobbler/dnsmasq.template : DNS服务配置模板文件

* * /etc/cobbler/tftpd.template : tftp服务配置模板文件

* * /etc/cobbler/modules.conf : Cobbler模块配置文件

数据目录:/var/lib/cobbler

* * /var/lib/cobbler/config : 用于存放distros systems profiles等信息配置文件

* * /var/lib/cobbler/triggers : 用于存放用户自定义的cobbler命令

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

* * /var/lib/cobbler/loaders : 存放各种引导程序

镜像数据目录: /var/www/cobbler

* * /var/www/cobbler/ks_mirror : 导入的发行版系统的所有数据

* * /var/www/cobbler/images : 导入发行版的kernel和initrd镜像用于远程网络启动

* * /var/www/cobbler/repo_mirror/ :yum仓库存储目录

日志目录:/var/log/cobbler

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

* * /var/log/cobbler/cobbler.log : cobbler日志

(5)检查配置Cobbler

#cobbler check

       运行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 : 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. 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 the easiest way to resolve these requirements.

4 : change ‘disable‘ to ‘no‘ in /etc/xinetd.d/rsync

5 : comment out ‘dists‘ on /etc/debmirror.conf for proper debian support

6 : comment out ‘arches‘ on /etc/debmirror.conf for proper debian support

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

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

下面根据cobbler配置信息的检查结果,逐个修复相关问题项。

从Cobbler 2.4开始,有一个重要的功能,就是让你不需要手工编辑配置setting配置文件,直接使用命令修改相关配置,默认这个功能是不启用,启用需要进行一下配置:

**建议采用修改/etc/cobbler/settings配置文件的方式修改配置选项。

**在采用命令方式动态更新配置时,Cobbler会将配置文件中带"#"注释的行全部删除

# cd /etc/cobbler/
# cp -af settings{,.default}
# sed -i ‘/^allow_dynamic_settings:/ s/0/1/‘ settings
# service cobblerd restart

(1).错误1,修改/etc/cobbler/settings 里面的 server 为Cobbler Server的IP地址 ;

# vim /etc/cobbler/settings
  server;192.168.18.202
   
  or
# cobbler setting edit --name=server --value=192.168.18.202

(2).错误2,修改/etc/cobbler/settings 里面的 next_serverw 为next_server选项是DHCP/PXE网络引导文件被下载的TFTP服务器的IP,它将和server设置为同一个IP;

# vim /etc/cobbler/settings
  next_server=192.168.18.202
    
  or
# cobbler setting edit --name=next_server --value=192.168.18.202

(3).错误3,下载启动引导文件

#  cobbler get-loaders

(4).错误4,修改/etc/xinetd.d/tftp 把‘disable‘ 修改为‘no‘;修改/etc/xinetd.d/rsync 把‘disable‘ 修改为‘no‘;

# sed -i ‘s/disable.*$/disable = no/g‘ /etc/xinetd.d/tftp
# sed -i ‘s/disable.*$/disable = no/g‘ /etc/xinetd.d/rsync
# service xinetd start

(5).错误5和6,debmirror有错误

# yum -y install debmirror
# sed -i ‘/^@dists="sid";/ s/^/#/‘ /etc/debmirror.conf # sed -i ‘/^@arches="i386";/ s/^/#/‘ /etc/debmirror.conf
# vim /etc/debmirror.conf
 #注释掉@dists="sid"与@arches="i386即可
 #@dists="sid";
 #@arches="i386";
# yum -y install pykickstart

(6).错误7,设置客户端默认root密码;生成你想要的密码的加密字符串,然后复制运行命令之后的加密代码;

# openssl passwd -1 -salt ‘cobbler‘ ‘123456‘
  $1$hahaha$hSxFjZSHRoiEn4DYrrGUI.

然后替换/etc/cobbler/settings 中选项双引号中的加密代码;

# vim /etc/cobbler/settings
  default_password_crypted: "$1$hahaha$hSxFjZSHRoiEn4DYrrGUI."
    
  or
# cobbler setting edit --name=default_password_crypted --value=$1$hahaha$hSxFjZSHRoiEn4DYrrGUI

(7),错误8,如果需要电源管理特性的话,则需要安装cman及fence-agents包

 
 # yum -y install cman fence-agents

如果cobbler服务器启用防火墙功能,需要开启以下端口:

# iptables -A INPUT -m state --state NEW -m tcp -p tcp -m multiport --dports 80,443,25151 -j ACCEPT
# iptables -A INPUT -m state --state NEW -m udp -p udp -m multiport --dports 53,67:69,25151 -j ACCEPT

新启动Cobbler并运行检查命令

# service cobblerd restart
Stopping cobbler daemon:                  [确定]
Starting cobbler daemon:                  [确定]
# cobbler check
No configuration problems found. All systems go.


配置cobbler依赖服务由cobbler进行管理:

默认情况下,若开机未将相关的服务设置成开启启动,即使cobblerd服务启动时,相关服务也是未启动状态。因此,需要确认dhcp、tftp、rsync等服务是否设置为开启自启动。tftp、rsync服务由xinetd管理,需要保证xinetd服务为开机自启动状态.

# sed -i ‘/disable/c disable = no‘ /etc/xinetd.d/tftp
# sed -i -e ‘s/= yes/= no/g‘ /etc/xinetd.d/rsync
# service xinetd restart

Cobbler管理rsync

默认为0,不对rsync进行管理,可以修改为1 进行管理

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

防止误重装系统,选项:pxe_just_once

# cobbler setting edit --name=pxe_just_once --value=1


1.让Cobbler来管理DHCP服务器

# vim /etc/cobbler/settings
  manage_dhcp: 1

2.修改DHCP模板

# vim /etc/cobbler/dhcp.template
subnet 192.168.18.0 netmask 255.255.255.0 { 需要修改192.168.18.0为自己网段                                   
option routers 192.168.18.1;                修改自己的路由
option domain-name-servers 8.8.8.8;
option subnet-mask 255.255.255.0;
range dynamic-bootp 192.168.18.100 192.168.18.200;
filename "/pxelinux.0";
default-lease-time 21600;
max-lease-time 43200;
next-server $next_server;
}
如果是多网卡需要指定DHCP服务的网络接口
#vi /etc/sysconfig/dhcpd
修改内容如下:
#Command line options here DHCPDARGS=eth0
DHCPDARGS=eth0

# service cobblerd restart
Stopping cobbler daemon:                  [确定]
Starting cobbler daemon:                  [确定]

完成后一定要运行cobbler sync 命令让配置生效,使dhcp、http被cobbler接管

设置http服务

# vi /etc/httpd/conf/httpd.conf
   ServerName 127.0.0.1:80
# yum -y install mod_wsgi
# sed -i ‘s*#LoadModule*LoadModule*g‘ /etc/httpd/conf.d/wsgi.conf

导入系统镜像到Cobbler

# mkdir -p /mnt/CentOS/6.5# mount -o loop /root/CentOS-6.5-x86_64-bin-DVD1.iso /mnt/CentOS/6.5/
# cobbler import --name=CentOS-6.5-x86_64 --path=/mnt/CentOS/6.5

正常导完之后会给出如下提示:

……(省略)
associating kickstarts
*** TASK COMPLETE ***
cobbler list来查看导入的结果

准备kisckstart文件

kickstart自动安装文件可以用工具生成(需要用到图形界面操作)

# yum  install system-config-kickstart #安装
# yum groupinstall "X Window System" #安装X Window图形界面
# system-config-kickstart #运行kickstart配置
# service  cobbler  sync  #与cobbler sync作用相同
# service  cobbler  restart  #重启cobbler

系统镜像文件和kickstart自动安装文件关联起来

# cobbler profile add --name=CentOS-6.5-basic --distro=CentOS-6.5-x86_64 --kickstart=/var/lib/cobbler/kickstarts/cetos6.x86_64.cfg
# cobbler profile list

为Cobbler添加RPM仓库

# cobbler repo add
--name=EPEL
--mirror=http://download.fedoraproject.org/pub/epel/6/x86_64/
# cobbler repo add
--name=Local
--mirror=http://mirrors.163.com/centos/6.7/extras/x86_64/

#添加repo到profile会自动添加到节点上的repo上,指向内网,非常方便。

# cobbler profile edit --name==CentOS-6.5-basic --repos="epel local"
#  cobbler reposync

也可以通过设置–mirror-locally=0不下载到本地,而通过kickstart server去仓库下载rpm包。

# cobbler sync

客户端安装测试:

参考http://www.3mu.me/centos6-5%E5%AE%89%E8%A3%85%E5%92%8C%E9%85%8D%E7%BD%AEcobbler-2-6%E5%AE%9E%E7%8E%B0%E8%87%AA%E5%8A%A8%E5%8C%96%E6%97%A0%E4%BA%BA%E5%80%A4%E5%AE%88%E7%BD%91%E7%BB%9C%E6%89%B9%E9%87%8F%E5%AE%89%E8%A3%85/

时间: 2024-10-11 01:47:58

Centos6.7安装部署cobbler完成无人值守化安装部署的相关文章

cobbler实现无人值守自动安装

Cobbler简介 使用cobbler,第一件事就是定义其distros 指的是定义一个特殊发行版的内核和init文件,这意味着我们要使用独立运行系统之外的独立引导内核来实现,也就是说要启动这个操作系统,首先加载的是init和内核文件,在我们真正启动系统之后initrd和内核则只要不重启则不会被使用,所以distros 主要是用来借助于外在的内核和initrd进行启动系统,而后通过其装置根进行部署 定义distros的方式有两种 ·自己准备外部的内核和initrd 用来引导一些特殊的映像文件 ·

VMware安装CentOS之二——最小化安装CentOS

1.上文已经创建了一个虚拟机,现在我们点击开启虚拟机. 2.虚拟机进入到安装的界面,在这里我们选择第一行,安装或者升级系统. 3.这里会提示要检查光盘,我们直接选择跳过. 4.这里会提示我的硬件设备不被支持,点击OK,实际对安装使用没有影响的,其他电脑没有出现这个提示. 5.点击下一步. 6.在这里我选择中文,这样我们用远程工具的时候可以显示中文,不需要额外设置. 7.键盘布局选择美国英语 8.这里选择基本存储设备即可,如果你的存储设备比较多可以自己选定. 9.会提示是否要清除所有数据,选择是,

centos6.x最小化安装后配置网络

centos6.x最小化安装后配置网络 最小化安装CentOS6.x后,试着用yum安装几个软件,发现网卡都没配置! 解决办法: 编辑配置文件: vi /etc/sysconfig/network-script/ifcfg-eth0 修改下列几项配置: NM_CONTROLLED=no ONBOOT=yes BOOTPROTO=dhcp 修改完保存,然后: service network start 启动网卡,yum能用了!

Cobbler实现CentOS自动安装

大纲 前言 Cobbler介绍 实验拓扑 实验步骤 测试 总结 前言 在生产环境中我们可能需要批量安装操作系统, 我们当然可以一台一台的安装, 但是运维工作应该标准化.流程化.自动化,降低对特定人员的依赖,节省专业人员的宝贵时间和精力,这样才能有更多的时间去学习新的知识和提升. –转自: 陈明乾 的BLOG 那么我们就应该使用运维工具来帮助我们快速.批量的自动安装. 现在较为流行的解决方案有Cobbler, 这篇我们介绍了Cobbler实现批量自动安装CenOS 6.7的步骤 Cobbler介绍

虚拟机console最小化安装操作系统图文

1. 概述2. 安装操作系统2.1 交互界面2.2 内核镜像解压等初始化2.3 磁盘发现2.4 硬件支持告警3. 开始安装3.1 语言选择3.2 键盘选择3.3 服务器类型3.4 配置主机名3.5 时区选择3.6 root密码3.7 自定义分区3.8 软件包选择3.9 开始安装4. 总结 1. 概述 本篇博客主要介绍通过VMware workstation创建虚拟机console之后(参见博客<VMware workstation创建虚拟机console图文.md>),为console安装操作

Linux系统最小化安装

Linux系统最小化安装详解 1.使用U盘镜像引导或者使用光驱加载光盘引导 图1-1 选择Install or upgrade an existing system Install or upgrade an existing system #安装或升级现有的系统install system with basic video driver #安装过程中采用 基本的显卡驱动,安装的时候只用到基本的图形功能,一般显卡都支持的模式Rescue installed system #进入系统修复模式(忘记

Centos7/redhat7最小化安装后的简单配置

一.配置本地yum源 1.挂载: [[email protected] ~]# mount /dev/cdrom /mnt mount: block device /dev/cdrom is write-protected, mounting read-only [[email protected] ~]# cd /etc/yum.repos.d/ [[email protected] yum.repos.d]# vi rhel-debuginfo.repo     --添加下面内容 [loca

centos6.4x64最小化安装部署rsync

一.环境 系统:CentOS6.4x64最小化安装 rsync-1:192.168.3.50 rsync-2:192.168.3.52 二.安装rsync 卸载原有的rsync软件包 [[email protected] ~]# rpm -e `rpm -qa |grep rsync` 下载最新的rsync安装包,并安装 [[email protected] ~]# wget http://pkgs.repoforge.org/rsync/rsync-3.1.1-1.el6.rfx.x86_64

Cobbler无人值守全自动安装部署Linux系统

注意事项:使用VMware Workstation实验时,注意网卡的模式,NAT模式下关闭默认的DHCP服务器! [[email protected]~]# cat /etc/redhat-release CentOS release 6.7 (Final) [[email protected]~]# wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm [[email protected]~