运维自动化之Cobbler部署安装RHEL7.0(详细图解版)

一、简介

    Cobbler 可以用来快速建立 Linux 网络安装环境,它已将 Linux 网络安装的技术门槛,从大专以上文化水平,成功降低到初中以下,连补鞋匠都能学会。

    

    网络安装服务器套件 Cobbler(补鞋匠)从前,我们一直在做装机民工这份很有前途的职业。自打若干年前 Red Hat 推出了 Kickstart,此后我们顿觉身价倍增。不再需要刻了光盘一台一台地安装 Linux,只要搞定 PXE、DHCP、TFTP,还有那满屏眼花缭乱不知所云的 Kickstart 脚本,我们就可以像哈里波特一样,轻点魔棒,瞬间安装上百台服务器。这一堆花里胡哨的东西可不是一般人都能整明白的,没有大专以上学历,通不过英语四级, 根本别想玩转。总而言之,这是一份多么有前途,多么有技术含量的工作啊。

    

    很不幸,Red Hat 最新(Cobbler项目最初在2008年左右发布)发布了网络安装服务器套件 Cobbler(补鞋匠),它已将 Linux 网络安装的技术门槛,从大专以上文化水平,成功降低到初中以下,连补鞋匠都能学会。对于我们这些在装机领域浸淫多年,经验丰富,老骥伏枥,志在千里的民工兄弟们来说,不啻为一个晴天霹雳。

--------------------------------------------分割线------------------------------------------------------

系统环境

实验环境:VMware Workstation 11

系统平台:RHEL7

网络模式:NAT(使用本地DHCP)

Cobbler版本:2.6.9.

网段:192.168.27.0

本机IP:192.168.27.131

防火墙已关闭/iptables: Firewall is not running.

SELINUX=disabled

Blog:http://luoj1992.blog.51cto.com/

基础服务教程:http://dwz.cn/GHgmQ

--------------------------------------------分割线------------------------------------------------------

前期准备

所需要用到的服务:EPEL、DHCP、TFTP、HTTP、VSFTP

注:EPEL (Extra Packages for Enterprise Linux,企业版Linux的额外软件包) 是Fedora小组维护的一个软件仓库项目,为RHEL/CentOS提供他们默认不提供的软件包。这个源兼容RHEL及像CentOS和Scientific Linux这样的衍生版本。

1.配置本地yum仓库,挂载光盘镜像

[[email protected] 桌面]#vim /etc/yum.repos.d/rhel7.repo

[rhel7]

name=rhel7

basurel=file:///mnt

enabled=1

gpgcheck=0

将光盘挂载到/mnt中

[[email protected] 桌面]#mount /dev/cdrom /mnt

2.安装EPEL

要想安装EPEL,我们先要下载EPEL的rpm安装包。

CentOS7/RHEL7的下载页面如下,版本不用担心一般都能用,不一定非要用我这个版本,根据你们不同版本的操作系统选择自己合适的包。

http://mirrors.ustc.edu.cn/fedora/epel//7/x86_64/e/epel-release-7-5.noarch.rpm

通过以下命令安装EPEL 软件包

[[email protected] 桌面]#rpm -ivh epel-release-6-8.noarch.rpm

安装好EPEL 源后,用yum 命令来检查是否添加到源列表

[[email protected] 桌面]# yum repolist
已加载插件:langpacks, product-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
源标识              源名称                                                 状态
epel/x86_64         Extra Packages for Enterprise Linux 7 - x86_64         8,477
rhel7               rhel7                                                  4,305
repolist: 12,782

--------------------------------------------分割线------------------------------------------------------

安装Cobbler-Web 界面和DHCP


Cobbler 提供了一个很有用的 Web 界面,您可以通过该界面实现此目的。要使用这个界面,首先需要安装它的程序包:

[[email protected] 桌面]#yum -y install cobbler-web

上面这个步骤可能会出现依赖包问题,解决方案见文章底下的解决方案。

安装完成后系统会给你安装以下所有的包,如果有的包没有安装上,还请手动安装

已安装:

cobbler-web.noarch 0:2.6.9-1.el7

作为依赖被安装:

PyYAML.x86_64 0:3.10-11.el7

apr.x86_64 0:1.4.8-3.el7

apr-util.x86_64 0:1.5.2-6.el7

cobbler.noarch 0:2.6.9-1.el7

httpd.x86_64 0:2.4.6-17.el7

httpd-tools.x86_64 0:2.4.6-17.el7

mod_ssl.x86_64 1:2.4.6-17.el7

mod_wsgi.x86_64 0:3.4-11.el7

python-cheetah.x86_64 0:2.4.4-4.el7

python-django.noarch 0:1.6.11-2.el7

python-django-bash-completion.noarch 0:1.6.11-2.el7

python-markdown.noarch 0:2.4.1-1.el7

python-netaddr.noarch 0:0.7.5-7.el7

python-simplejson.x86_64 0:3.3.3-1.el7

tftp-server.x86_64 0:5.2-11.el7

xinetd.x86_64 2:2.3.15-12.el7

[[email protected] 桌面]# yum -y install dhcp

--------------------------------------------分割线------------------------------------------------------

 命令配置Cobbler

一、重启cobbler服务

[[email protected] 桌面]#systemctl enable cobblerd.service

[[email protected] 桌面]#systemctl start cobblerd.service

[[email protected] 桌面]#systemctl enable httpd

[[email protected] 桌面]#systemctl start httpd

--------------------------------------------------------------------------------------------------------

二、检查cobbler配置

执行检查配置命令

[[email protected] 桌面]#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.  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.

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

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选项,修改为提供服务的ip地址(也就是你这台机器的IP地址,不能是127.0.0.1)

2,编辑/etc/cobbler/settings文件,找到 next_server选项,修改为127.0.0.1以外的地址(也就是本机IP地址)

3,编辑/etc/xinetd.d/tftp文件,将文件中的disable字段的配置由yes改为no

4,执行 cobbler get-loaders,系统将自动下载loader程序,完成提示4的修复工作。

5,文件/etc/xinetd.d/rsync不存在

6,提示说debmirror没安装。如果不是安装 debian之类的系统,此提示可以忽略,如果需要安装,下载地址为:

http://rpmfind.net/linux/rpm2html/search.php?query=debmirror

7,修改cobbler用户的默认密码,可以使用如下命令生成密码,并使用生成后的密码替换/etc/cobbler/settings中的密码。生成密码命令:openssl passwd -1 -salt ‘random-phrase-here‘ ‘your-password-here‘

-------------------------------------------------------------------------------------------

三、配置过程

[[email protected] 桌面]# openssl passwd -1 -salt "cobbler" "123456"                  //生成新的密码,密码为123456,此密码就是安装完系统后的root密码

$1$cobbler$sqDDOBeLKJVmxTCZr52/11                   //复制该代码

[[email protected] 桌面]# vim /etc/cobbler/settings         //打开配置文件,修改3处地方

server: 192.168.27.131            //把127.0.0.1改为本机的IP地址

next_server: 192.168.27.131            //把127.0.0.1改为本机的IP地址

default_password_crypted: "$1$cobbler$sqDDOBeLKJVmxTCZr52/11"            //把原来的加密密码改为上面咱们复制的那个密码

[[email protected] 桌面]# vim /etc/xinetd.d/tftp

disable                 = no                //找到disable那行把yes改成no

[[email protected] 桌面]# cobbler get-loaders

......         //略过

......

*** TASK COMPLETE ***        //最后出现这个提示说明操作正确,其他均为错误

[[email protected] 桌面]# cobbler import --path=/mnt/ --name=rhel7.0            //把挂载光盘镜像的mnt目录中的内容导入到cobbler里

......         //略过

......

*** TASK COMPLETE ***        //最后出现这个提示说明操作正确,其他均为错误

注意:检查挂载路径是否正确,挂载路径可去前期准备中查看。

[[email protected] 桌面]# systemctl restart cobblerd.service

--------------------------------------------------------------------------------------------------------

四、配置DHCP服务

首先修改cobbler配置,让cobbler来管理dhcp服务,编辑文件/etc/cobbler/settings

[[email protected] 桌面]# vim /etc/cobbler/settings

manage_dhcp: 1

接下来修改/etc/cobbler/dhcp.template,此文件是cobbler管理dhcp的模板

对于此文件,本例中只需要修改如下部分:

subnet 192.168.27.0 netmask 255.255.255.0 {

option routers             192.168.27.131;

option domain-name-servers 192.168.27.131;

option subnet-mask         255.255.255.0;

range dynamic-bootp        192.168.27.100 192.168.27.120;

default-lease-time         21600;

max-lease-time             43200;

next-server                $next_server;

其余部分维持默认值即可。

到目前为止,全部的准备工作已经就算全部完成。

--------------------------------------------------------------------------------------------------------------------------

五、同步cobbler配置

[[email protected] 桌面]# cobbler sync    //执行同步命令

......         //略过

......

*** TASK COMPLETE ***        //最后出现这个提示说明操作正确,其他均为错误

cobbler会自动进行初始化工作,移除已经存在的启动项,然后根据模板拷贝loader文件。之后再生成pxe的配置文件,生成dhcp的配置文件,最后再重启dhcp服务。

[[email protected] 桌面]# systemctl restart cobblerd.service 
[[email protected] 桌面]# systemctl restart xinetd.service 
[[email protected] 桌面]# cobbler sync

至此,就可以使用虚拟机来测试cobbler安装了。

===========================================================================================

打开Cobbler-web进行配置

上面所有步骤均为命令方式进行配置,咱们还可以用一种简单的方法进行配置,那就是网页图形化配置了。

用火狐浏览器打开下面的网站

https://192.168.27.131/cobbler_web/

用户名和密码均为:cobbler

功能讲解(左侧标签):

Distros:关于要安装系统的版本信息,包括启动文件的地址,版本,架构

Profiles:主要就是选择ks文件以及虚拟化的配置

Kickstart Templates:集中管理ks文件,可以在里面创建新的ks文件(手写)或者导入ks文件。

Snippets:片段这个玩意暂时还没搞清楚,如果有人了解还望不吝赐教。

Settings:这个里面的数据就是/etc/cobbler/settings的配置文件,你可以通过网页来直接修改配置文件中的内容

Import DVD:导入安装源镜像,如果没有导入过Distros和Profiles不会有内容

Sync:同步的意思

Check:检查

对于Web界面下的配置我这里就不过多讲解了,大部分都是点点鼠标的事,大家可以用命令配置完成后打开网页来观察一下,我上面的功能注释都是大家需要配置的,点击Profiles后右侧会出现你导入的系统,然后点击Edit按钮就可以找到选择ks脚本,ks脚本是从Kickstart Templates中调用的,ks文件你可以自己编译,如果懒得编译,安装完成后就是最小化安装。

关于ks文件的编译我建议是用kiskstart来进行(比较方便,不容易出错)

--------------------------------------------分割线------------------------------------------------------

安装测试:

见附件(由于视频大于2M无法上传我就不上传了,如果想要可以留言)或者去下载板块找一下,我会传到哪里。


--------------------------------------------分割线------------------------------------------------------

实验过程中可能会遇到的问题


1.

python-pygments依赖包关系错误解决办法:

打开下面的网页,找到对应你系统的rpm包,我最后选择的是CentOS 7.1.1503 for x86_64这个系统版本的,没有找到红帽的。

http://www.rpmfind.net/linux/rpm2html/search.php?query=python-pygments

我会在附件中加上这个rpm包,大家可以自己去下载,也可以用我这个包。

在安装python-pygments包的时候可能还需要安装一个依赖包python-imanging。

这个包直接yum -y install 

python-imanging就可以直接安装上,然后再去安装

python-pygments。

rpm -ivh --force python-pygments-1.4-9.el7.noarch.rpm

安装完成后即可安装cobbler-web包了。


2.

[[email protected] 桌面]# cobbler check
httpd does not appear to be running and proxying cobbler, or SELinux is in the way. Original traceback:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/cobbler/cli.py", line 252, in check_setup
    s.ping()

解决办法:遇到这种问题查看httpd服务是否正常启动,关闭SELinux服务并重启即可。

3.

注意,一定要先配置cobbler管理dhcp的模板,不要过早启动DHCP不然会出现BUG。而且DHCP服务不需要你手动去开启,只要你在

/etc/cobbler/settings文件中把manage_dhcp改为1之后你在同步配置文件DHCP会自动起来。

4.

如果全都配置完毕,客户机可以获取到DHCP但卡在TFTP的时候就去检查防火墙是否关闭。

--------------------------------------------分割线------------------------------------------------------

参考资料:

http://cobbler.github.io/manuals/quickstart/

--------------------------------------------分割线------------------------------------------------------

资源包:

EPEL包:

epel-release-7-5.noarch


Python-pygments包:

选其一

python-pygments-1.4-9.el7.noarch

python-pygments-1.1.1-1.el6.noarch

python-pygments-1.4-1.el6.rfx.noarch

时间: 2024-10-05 03:38:55

运维自动化之Cobbler部署安装RHEL7.0(详细图解版)的相关文章

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

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

Linux 运维自动化之Cobbler全自动安装Centos管理与使用详解

简介: Cobbler 可以用来快速建立 Linux 网络安装环境,它已将 Linux 网络安装的技术门槛,从大专以上文化水平,成功降低到初中以下,连补鞋匠都能学会. 网络安装服务器套件 Cobbler(补鞋匠)从前,我们一直在做装机民工这份很有前途的职业.自打若干年前 Red Hat 推出了 Kickstart,此后我们顿觉身价倍增.不再需要刻了光盘一台一台地安装 Linux,只要搞定 PXE.DHCP.TFTP,还有那满屏眼花缭乱不知所云的 Kickstart 脚本,我们就可以像哈里波特一样

运维自动化之Cobbler系统安装详解

原文链接 参考文档 参考文档SA们现在都知道运维自动化的重要性,尤其是对于在服务器数量按几百台.几千台增加的公司而言,单单是装系统,如果不通过自动化来完成,根本是不可想象的. 运维自动化安装方面,早期一般使用人工配置pxe+dhcp+tftp配合kickstart,现在开源工具就多了,如cobbler,OpenQRM和Spacewalk.本文重点介绍Cobbler. Cobbler介绍 Cobbler是一个快速网络安装linux的服务,而且在经过调整也可以支持网络安装windows.该工具使用p

运维自动化之系统部署(一)

运维自动化发展历程及技术应用 安装程序 CentOS系统安装 系统启动流程: ??bootloader-->kernel(initramfs)-->rootfs-->/sbin/initanaconda: 系统安装程序 ?? gui:图形窗口 ?? tui: 基于图形库curses的文本窗口 安装程序启动过程 MBR:isolinux/boot.cat stage2: isolinux/isolinux.bin 配置文件:isolinux/isolinux.cfg ??每个对应的菜单选项

运维自动化神器ansible之安装(一)

运维自动化神器ansible之安装(一) 一.安装部署 yum install ansible 通过rpm -ql命令我们可以看到 ansible 有很多的子命令以及他们的安装位置. [[email protected] ~]# rpm -ql ansible | grep bin /usr/bin/ansible /usr/bin/ansible-2 /usr/bin/ansible-2.7 /usr/bin/ansible-config /usr/bin/ansible-connection

运维自动化之ansible playbook安装mysql

上次介绍了如何使用ansible playbook安装zabbix客户端(http://dl528888.blog.51cto.com/2382721/1436745),这次介绍一下如何使用playbook安装mysql. 下面是安装mysql的信息: mysql_basedir: /data/mysql/basedir                    源码目录 mysql_datadir: /data/mysql/datadir                    数据目录 mysql

运维自动化之ansible playbook安装ruby环境

本来不想打算写安装ruby的,但看几个puppet的群里有人对安装ruby比较茫然,所以这里简单介绍一下如何安装ruby. ps:话说现在也就gitlab.capistrano.puppet等软件使用ruby,最新2010年的软件好的都是python了,比如ansible.salt等. 下面是安装ruby的信息: ruby_version: 1.9.3 ruby_dir: /usr/local gem_version: 1.8.23 bundle_version: 1.6.3 可以看到ruby的

运维自动化之ansible playbook安装node环境

现在介绍如何使用ansible安装node. 下面是安装node的信息: node_dir: /data node_version: 0.10.21 node_port: 3301 可以看到node的版本是0.10.21,测试的node应用服务监听3301端口 备注:此playbook仅能对centos或者redhat的6.x版本进行安装. 下面是安装node的playbook结构 09:33:16 # tree node_* node_delete ├── files ├── handlers

运维自动化之ansible playbook安装lamp环境

下面介绍使用ansible playbook安装lamp环境 下面是apache的安装信息: apr_version: 1.5.0 apr_util_version: 1.5.3 libiconv_version: 1.14 apache_version: 2.4.7 apache_web_dir: /data/webroot/apache apache_log: /data/webroot/apache/logs apache_vhost: /data/webroot/apache/vhost