Cobbler实现多系统自动化安装

Cobbler介绍:

 Cobbler能够快速建立多系统同时安装的网络系统安装环境;传统的pxe+dhcp+tftp+kickstart仅能够提供单一系统安装,功能过于简单;如果遇到安装不同操作系统时就遇到瓶颈;而cobbler正好解决了这一问题。Cobbler是增强版的网络系统安装。

Cobbler由不同的组件配合完成系统安装,各组件之间配合如下图所示:

21.png

一、实验环境准备:

(1)一台主机,并且关闭SELinux和iptables防火墙

(2)准备两个两个光盘镜像文件,一个是CentOS-6.5;另一个是CentOS-6.6

(3)tftp,dhcp,cobbler都在一台主机

二、配置Cobbler:

(1)安装Cobbler

[root@node2 ~]# yum -y install cobbler pykickstart debmirror httpd syslinux tfpt dhcp \\需要事先准备好epel源

(2)启动httpd和cobbler

[root@node2 ~]# /etc/init.d/httpd  start
[root@node2 ~]# /etc/init.d/cobblerd start

(3)运行cobbler check检查cobbler环境

[root@node2 ~]# 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 : SELinux is enabled. Please review the following wiki page for details on ensuring cobbler works correctly in your SELinux environment:
    https://github.com/cobbler/cobbler/wiki/Selinux
4 : change 'disable' to 'no' in /etc/xinetd.d/tftp
5 : 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.
6 : change 'disable' to 'no' in /etc/xinetd.d/rsync
7 : comment out 'dists' on /etc/debmirror.conf for proper debian support
8 : comment out 'arches' on /etc/debmirror.conf for proper debian support
9 : 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
10 : 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.

根据提示完善cobbler运行环境
1、编辑/etc/cobbler/settings,修改如下内容
server: 172.16.2.13  \\默认为127.0.0.1,要修改为cobbler的对外通信的IP
2、编辑/etc/cobbler/settings,修改如下内容:
next_server: 172.16.2.13 \\此处填写tftp的地址,默认为127.0.0.1
3、编辑/etc/sysconfgi/selinux
SELINUX=disabled \\修改完需要重启
4、设置tftp开机启动
[root@node2 ~]# chkconfig tftp on
5、根据提示运行cobbler get-loaders
[root@node2 ~]# cobbler get-loaders 
   \\如果没有网络可以复制/usr/share/syslinux/*  /var/lib/cobbler/loaders
6、设置rsync开机启动
[root@node2 ~]# chkconfig rsync on
7和8注释掉/etc/debmirror.conf的选项
#@dists="sid";
#@arches="i386";  \\注释掉这两个选项
9、生成新的秘钥,添加至/etc/cobbler/settings
[root@node2 ~]# openssl  passwd -1 -salt `openssl rand -hex 4`
Password: 
$1$28999937$ExBtgrSzOiI/ri3NknQQB1
编辑/etc/cobbler/settings配置文件,将生成的秘钥添替换原有的秘钥
default_password_crypted: "$1$28999937$ExBtgrSzOiI/ri3NknQQB1"
10、可以忽略

(4)以上修改操作完以后,进程同步,然后在进行检查

[root@node2 ~]# cobbler sync
task started: 2014-12-16_114120_sync
task started (id=Sync, time=Tue Dec 16 11:41:20 2014)
running pre-sync triggers
cleaning trees
removing: /var/lib/tftpboot/grub/images
copying bootloaders
trying hardlink /usr/share/syslinux/pxelinux.0 -> /var/lib/tftpboot/pxelinux.0
trying hardlink /usr/share/syslinux/menu.c32 -> /var/lib/tftpboot/menu.c32
trying hardlink /usr/share/syslinux/memdisk -> /var/lib/tftpboot/memdisk
copying distros to tftpboot
copying images
generating PXE configuration files
generating PXE menu structure
rendering TFTPD files
generating /etc/xinetd.d/tftp
cleaning link caches
running post-sync triggers
running python triggers from /var/lib/cobbler/triggers/sync/post/*
running python trigger cobbler.modules.sync_post_restart_services
running shell triggers from /var/lib/cobbler/triggers/sync/post/*
running python triggers from /var/lib/cobbler/triggers/change/*
running python trigger cobbler.modules.scm_track
running shell triggers from /var/lib/cobbler/triggers/change/*
*** TASK COMPLETE ***

root@node2 ~]# cobbler check
The following are potential configuration items that you may want to fix:

1 : fencing tools were not found, and are required to use the (optional) power management features. install cman or fence-agents to use them \\此提示可以忽略

(5)挂载CentOS6.5光盘镜像,导入镜像到cobbler

[root@node2 ~]# mount -r /dev/cdrom /mnt
[root@node2 ~]# mount -r /dev/cdrom /mnt
[root@node2 ~]# cobbler import --name=CentOS-6.5-x86_64 --path=/mnt
task started: 2014-12-16_114737_import
task started (id=Media import, time=Tue Dec 16 11:47:37 2014)
Found a candidate signature: breed=redhat, version=rhel6
Found a matching signature: breed=redhat, version=rhel6
Adding distros from path /var/www/cobbler/ks_mirror/CentOS-6.5-x86_64:
creating new distro: CentOS-6.5-x86_64
trying symlink: /var/www/cobbler/ks_mirror/CentOS-6.5-x86_64 -> /var/www/cobbler/links/CentOS-6.5-x86_64
creating new profile: CentOS-6.5-x86_64
associating repos
checking for rsync repo(s)
checking for rhn repo(s)
checking for yum repo(s)
starting descent into /var/www/cobbler/ks_mirror/CentOS-6.5-x86_64 for CentOS-6.5-x86_64
processing repo at : /var/www/cobbler/ks_mirror/CentOS-6.5-x86_64
need to process repo/comps: /var/www/cobbler/ks_mirror/CentOS-6.5-x86_64
looking for /var/www/cobbler/ks_mirror/CentOS-6.5-x86_64/repodata/*comps*.xml
Keeping repodata as-is :/var/www/cobbler/ks_mirror/CentOS-6.5-x86_64/repodata
*** TASK COMPLETE ***

(6)导入CentOS6.6的光盘镜像与CentOS的方法一样,这里就不在讲述了

(7)查看导入的关盘镜像信息

[root@node2 ~]# cobbler distro list
   CentOS-6.5-x86_64
   CentOS-6.6-x86_64

(8)删除导入镜像文件自动生成的profile文件,添加自己定制的profile文件

[root@node2 ~]# cobbler profile remove --name=CentOS-6.5-x86_64; cobbler profile remove --name=CentOS-6.6-x86_64

(9)复制制作好的kickstart文件到/var/lib/cobbler/kickstarts

[root@node2 ~]# cp kickstart_6.6.cfg  /var/lib/cobbler/kickstarts/CentOS-6.6-x86_64
[root@node2 ~]# cp kickstart_6.5.cfg  /var/lib/cobbler/kickstarts/CentOS-6.5-x86_64
[root@node2 ~]# cobbler   profile add  --name=CentOS-6.5-x86_64 --distro=CentOS-6.5-x86_64   --kickstart=/var/lib/cobbler/kickstarts/CentOS-6.5-x86_64 
[root@node2 ~]# cobbler   profile add  --name=CentOS-6.6-x86_64 --distro=CentOS-6.6-x86_64   --kickstart=/var/lib/cobbler/kickstarts/CentOS-6.6-x86_64

(10)查看添加的profile文件

[root@node2 ~]# cobbler profile list
   CentOS-6.5-x86_64
   CentOS-6.6-x86_64

三、配置dhcp

编辑配置文件,修改内容如下:

[root@node2 ~]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf  \\添加配置文件
[root@node2 ~]# vim /etc/dhcp/dhcpd.conf
subnet 172.16.2.0 netmask 255.255.255.0 {
  range 172.16.2.10 172.16.2.100  ;
  option routers 172.16.2.1;
  next-server 172.16.2.13;  \\定义tftp服务器的地址
  filename "pxelinux.0";    \\定义安装主机所需要获取的文件
}
[root@node2 ~]# /etc/init.d/dhcpd start  \\启动dhcp

四、利用cobbler安装操作系统

CentOS6.5的安装过程

22.png

24.png

25.png

26.png

CentOS6.6的安装过程:

33.png

24.png25.png

32.png

五、配置cobbler的web控制端:

(1)安装

[root@node2 ~]# yum -y install cobbler-web

(2)编辑配置文件/etc/cobbler/modules.conf修改内容如下:

[authentication]
module = authn_pam

(3)添加登录cobbler的web用户及密码

[root@node2 ~]# useradd  cobbler;echo "admin" |passwd --stdin cobbler

(4)编辑配置文/etc/cobbler/users.conf修改内容如下:

[admins]
admin = "cobbler" \\填写刚刚创建的cobbler用户
cobbler = ""

(5)重新启动cobbler,访问web页面,地址是:http://172.16.2.13/cobbler_web

44.png

45.png

关于web页面配置cobbler的操作请各位大侠研究吧,我就先介绍到这里。

六、知识扩展:

经常有同学在配置网络安装时遇到以下故障:

blob.png

如果你去网上搜索全都是说内存不够,其实根本就不是内存问题。

解决方法:在制作kickstart文件是没有勾选清除mbr选项导致的,重新执行kickstart文件,选择清除mbr即可,

如下图所示:

34.png

到此cobbler的配置已经完成,可以在工作中使用,如有问题可以一起解决。

cobbler官网地址:http://cobbler.github.io/

原创文章,作者:马行空,如若转载,请注明出处:http://www.178linux.com/6908

(0)
马行空马行空
上一篇 2015-08-06
下一篇 2015-08-11

相关推荐

  • 网络N23期第二周:linux上的目录与文件管理命令,bash的工作特性等

    1、Linux上的目录与文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 1.1 mkdir  创建目录 使用方法:mkdir [OPTION]… DIRECTORY… 常用选项: -p:按需创建父目录 -m:创建目录权限 -v:输出详细创建目录过程 实例: 创建/tmp/test2/test3目录,定义权限为rwxrw-rw-,并详细显…

    Linux干货 2016-10-09
  • 磁盘配额实现

    磁盘配额实现 磁盘配额要求必须是独立的分区 创建一个新的分区 #同步分区表 [root@localhost ~]# partx -a /dev/sda [root@localhost ~]# mkfs.ext4 /dev/sda6 -L /home [root@localhost ~]# blkid /dev/sda6: LABEL=”/home…

    Linux干货 2017-12-09
  • 文本处理工具初探

    作为一个系统管理员,文本处理功能是经常使用的,熟练地使用各种文本工具有助于提高工作效率,从繁忙的工作中早点解脱。下面就来介绍处理文本的常用命令。 处理文本的命令大致分为:        查看文件内容:cat、less、more       …

    Linux干货 2016-08-07
  • keepalived高可用haproxy配合varnish实现wordpress的动静分离

    haproxy和nginx都可以作为七层和四层反代服务器对外提供服务,此文通过haproxy和keealived配置varnish搭建wordpress的动静分离站点 一、实验环境 五台虚拟机: haproxy-1:搭建haproxy和keepalived服务,ip地址:192.168.11.176 haproxy-2:搭建haproxy和keepalive…

    2017-07-03
  • 磁盘管理的补充及扩展

    磁盘管理的补充及扩展 挂载点和/etc/fstab(配置文件) 使用mount命令挂载为临时挂载开机重启后就会自动卸载,为了永久挂载必须写在配置文件中! 配置文件系统体系  被mount、fsck和其它程序使用  系统重启时保留文件系统体系  可以在设备栏使用文件系统卷标  使用mount  -a 命令挂载/etc/fstab中的所有文件系…

    Linux干货 2016-08-30
  • 简单易懂的CentOS启动流程

    在使用Linux操作系统时,我们只需要按下电源键,等待一会儿,登录终端就呈现在我们眼前,在这段时间内,操作系统究竟做了哪些事情? 先上一张流程梗概图,你会对启动流程有个大致的了解 启动流程详解 POST加电自检   主板在接通电源后,系统首先由POST程序来对CPU、主板、内存、硬盘子系统、显示子系统串并行接口、键盘、CD-ROm光驱等硬件进行检测 读取MB…

    Linux干货 2016-09-11