centos6-5安装和配置cobbler-2-6实现自动化无人値守网络批量安装

Cobbler 是一个系统启动服务(boot server),能够经过网络启动(PXE)的方式用来快速安装、重装物理服务器和虚拟机,支持安装不一样的 Linux 发行版和 Windows。该工具使用python开发,小巧轻便(才15k行代码),使用简单的命令便可完成PXE网络安装环境的配置,同时还能够管理DHCP,DNS,以及yum包镜像。python

在这里有篇不错的博客:http://www.chenshake.com/centos6-4-installation-and-configuration-cobbler-2-4/linux

1、测试环境及基本工具

1. centOS6.iso86_64;
2. 虚拟机 12 64位;
3. Windows 10 64位;
4. 联网
5. Ssh客户端(不是必选)ubuntu

2、部署测试环境

1.    在windows下安装虚拟机;
2.    在虚拟机中安装centOS6_86_64.iso;
3.    使用ssh客户端链接到虚拟机中的linux系统(可直接在linux中操做windows

3、定义yum 源

对于centos自己源 ,可根据本身所在地选择离本身近的镜像源,好比mirrors.163.com或mirrors.sohu.com或 docs.linuxtone.org,本例采用docs.linuxtone.org源。centos

1.经过如下命令进入相应文件夹

cd /etc/yum.repos.d/

2.在yum.repos.d下建立一个保存系统原有文件的临时文件夹

mkdir backup

3.将yum.repos.d中系统原有的rhel-debuginfo.repo源文件转移到backup备份(没有不备份)

mv rhel-debuginfo.repo ./backup

4.在yum.repos.d执行如下命令,下载对应系统对应的yum源,因为本系统使用的是centOS6 64位的系统,所以在此处引用以下的连接:

wget -c –O rhel-debuginfo.repo http://docs.linuxtone.org/soft/lemp/CentOS-Base.repo

5. 检验是否下载成功

yum list

注意,当本身的实际系统和本例测试系统版本不一致时,第四步的操做中须要根据本身的实际版原本选择yum源,例如本身实际系统为centOS 5则使用下面的连接:
wget -c –O rhel-debuginfo.repo http://mirrors.163.com/.help/CentOS5-Base-163.repo服务器

4、安装epel第三方yum源

1.安装第三方yum源

第三方yum源主要做用是在安装系统时自动安装相应的第三方软件,下面提供了centOS各类版本的第三方yum源的连接:
    Centos5 32位: rpm -Uvh http://mirrors.ustc.edu.cn/fedora/epel/5/i386/epel-release-5-4.noarch.rpm
    Centos5 64位: rpm -Uvh http://mirrors.ustc.edu.cn/fedora/epel/5/x86_64/epel-release-5-4.noarch.rpm
    Centos6 32位: rpm -Uvh http://mirrors.ustc.edu.cn/fedora/epel/6/i386/epel-release-6-8.noarch.rpm
    Centos6 64位: rpm -Uvh http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
本例使用的是64为虚拟机下安装的centos6 64位系统,所以使用以下连接下载第三方yum源:网络

rpm -Uvh http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm

实际操做时须要根据本身系统需求来决定第三方yum源的连接。dom

2.检验是否安装成功

yum list|grep -E "^epel"

当出现如下内容,则表示安装成功,不然,须要检查上述步骤是否出错。ssh

 epel-release.noarch                        6-8                          installed
 epel-rpm-macros.noarch                     6-2                          epel

或者使用如下命令检验是否安装成功:工具

rpm -qa |grep -i epel

出现相似的输出则表示安装成功:

rpm -qa |grep -i epel

5、安装python 2.7+(centOS跳过此步)

1.下载python

 在linux中使用下述命令下载python

wget https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz

 能够根据需求自主选择相应版本的python

2.编译并安装python

 首先解压并进入python

 tar xzf Python-2.7.9.tgz
 cd Python-2.7.9

而后编译并安装python

./configure --prefix=/usr/local/python 
make
make install

若是系统中已经存在了python,那么在编译安装后就要替换掉原来的python,判断是否已经存在旧的python,须要前往/usr/bin目录下查看是否有python文件,若是有,则执行如下命令来备份旧的python,不然不须要备份,跳过此步。

 mv /usr/bin/python /usr/bin/python-2.4.3

对刚刚安装的python创建连接:

ln -s /usr/local/python/bin/python /usr/bin/python

上面两行命令执行完后,能够分别用“python -V”和“/usr/bin/python-2.4.3 -V”来验证部署是否成功,正确的结果应该是2.7.9和2.4.3.

注:若是用户后续想继续使用旧的python版本,只需执行如下操做

vi /usr/bin/yum

将第一行中的“#!/usr/bin/python”修改成“#!/usr/bin/python-2.4.3”,保存便可;或者直接删除新版本,而后将备份的旧版本恢复至python文件名称便可。

6、关闭防火墙和selinux

1.关闭SELINUX,并当即生效

sed -i '/^SELINUX=/ s/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
setenforce 0

重启系统

reboot

检查关闭状态

sestatus
SELinux status: disabled

当为disabled时证实已经成功关闭。

2.关闭防火墙

Cobbler会使用到好几个端口,为了简化,直接把iptables关闭

chkconfig ip6tables off
chkconfig iptables off
/etc/init.d/ip6tables stop
/etc/init.d/iptables stop

 重启系统

reboot

 7、安装配置Cobbler

1.下载安装Cobbler及运行依赖包

使用yum 命令安装Cobbler包

yum -y install cobbler

检验是否安装成功

rpm -qa |grep -i cobbler

当显示以下信息,表示安装成功

 cobbler-2.6.11-1.el6.x86_64

安装和Cobbler运行相关的包,首先须要安装httpd rsync tftp-server xinetd服务,若是本机没有此服务,须要使用如下命令安装:

 yum install tftp-server xinetd dhcp httpd rsync

安装运行Cobbler须要的依赖包:

yum install pykickstart debmirror python-ctypes cman ru

如需其余服务,请自行按照须要安装,例如电源管理功能或者想要安装其余系统例如ubuntu,则须要下载对应的包。

2.配置Cobbler

2.1设置http服务

修改httpd配置文件

vi /etc/httpd/conf/httpd.conf

将serverName 的值改成本机ip

ServerName 192.168.40.128:80

因为须要启动wsgi模块,所以须要确认mod_wsgi是否已经安装,如没有,则须要使用下面的命令安装

yum -y install mod_wsgi

 安装完成后,启用wsgi模块,启用方法为:取消 /etc/httpd/conf.d/wsgi.conf 文件中LoadModule wsgi_module modules/mod_wsgi.so 行的注释。

sed -i 's*#LoadModule*LoadModule*g' /etc/httpd/conf.d/wsgi.conf
2.2配置tftp与rsync

修改 rsync 和 tftp 这两个服务的 xinetd 配置,只需修改 rsync 和tftp的配置文件,将 disable = yes 修改成 disable = no来开启tftp与rsync服务的开机启动.

sed -i '/disable/c disable = no' /etc/xinetd.d/tftp
sed -i -e 's/= yes/= no/g' /etc/xinetd.d/rsync
service xinetd restart
2.3修改Cobbler主配置文件

在启动Cobbler服务以前,你须要修改一些配置文件。在修改每个文件以前最好先备份下当前的文件。Cobblerd的配置文件为/etc/cobbler/settings ,这个文件是YAML信息的格式文件。根据须要修改 cobbler主配置文件: /etc/cobbler/settings

 1> server 选项设置IP用于为cobbler 服务器指定地址,请不要使用0.0.0.0,设置一个你但愿和cobbler服务器经过http和tftp等协议连接的IP

sed -i 's/server: 127.0.0.1/server: 192.168.63.133/g' /etc/cobbler/settings

 2> next_server选项是DHCP/PXE网络引导文件被下载的TFTP服务器的IP,它将和server设置为同一个IP

sed -i 's/next_server: 127.0.0.1/next_server: 192.168.63.133 /g' /etc/cobbler/settings

 3> pxe安装 只容许一次,防止误操做 ( 在正式环境有用。实际测试来看,这个功能能够屏蔽掉 )

sed -i 's/pxe_just_once: 0/pxe_just_once: 1/g' /etc/cobbler/settings

 4> rsync默认为0,不对rsync进行管理,能够修改成1 进行管理

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

5> 配置批量装机时的初始密码

    生成装机初始密码

    openssl passwd -1 -salt 'random-phrase-here' '111111'
$1$random-p$WbZ3JxhRzCS/1Ne4S9g4Z.       #生成的密码密文,注意带着后面的小数点

    将生成的密码密文放入setting中

    vi /etc/cobbler/settings

    将default_password_crypted值修改成上面生成的密码密文

default_password_crypted: "上面生成的密码,注意有点号"

 6> 重启和Cobbler有关的全部服务

chkconfig httpd on
chkconfig xinetd on
chkconfig cobblerd on
chkconfig dhcpd on
/etc/init.d/httpd restart
/etc/init.d/xinetd restart
/etc/init.d/cobblerd restart
cobbler sync
cobbler get-loaders
cobbler check
/etc/init.d/dhcpd restart

7> 为了pxe的启动,须要一个DHCP服务器地址,并直接引导系统,它能够在网络中下载引导文件到TFTP的服务器,cobbler能够经过manage_dhcp的设置来进行管理
    首先修改cobbler配置,让cobbler来管理dhcp服务,在作自定义配置时,须要修改dhcp相关配置,以配合PXE启动用。设置manage_dhcp: 1 (注:默认为0 ,表示不进行管理dhcp服务,能够修改成1,对其进行管理。此为使cobbler管理dhcp也就是后面用于同步更新配置信息[cobbler sync])

sed -i 's/manage_dhcp: 0/manage_dhcp: 1/g' /etc/cobbler/settings

    而后修改/etc/cobbler/dhcp.template,此文件是cobbler管理dhcp的模板,确保DHCP分配的地址和Cobbler在同一网段。

cp /etc/cobbler/dhcp.template  /etc/cobbler/dhcp.template.bakk   #备份
vi /etc/cobbler/dhcp.template

    按照下方格式修改上述dhcp.template文件,具体如何知道应该填入哪些内容,请在本身的linux系统中敲ifconfig和cat /etc/resolv.conf命令来获取填入下方内容的IP等信息。

  # 须要修改192.168.0.0为本身网段,例如,我主机的ip为192.168.40.128,则修改成以下
subnet 192.168.40.0 netmask 255.255.255.0 {
  # 修改本身的路由,比subnet后ip大一便可
     option routers             192.168.40.1;
  # 域名服务器地址,本身去网上随便找一个域名服务器,我在这里使用谷歌的域名服务器
     option domain-name-servers 8.8.8.8;
  # 子网掩码
     option subnet-mask         255.255.255.0;
  # 设置dhcp服务器IP地址租用的范围,这个范围能够本身决定
     range dynamic-bootp        192.168.40.160 192.168.40.200;
     filename                   "/pxelinux.0";
     default-lease-time         21600; #缺省租约时间
     max-lease-time             43200; #最大租约时间  
     next-server                $next_server; #指定引导服务器  
}

若是linux系统有多个网卡,则须要指定DHCP服务的网络接口

#vi /etc/sysconfig/dhcpd

修改如下内容的值为:

#Command line options here DHCPDARGS=eth0
DHCPDARGS=eth0

 设置debmirror(没有就不设置)

sed -i -e 's|@dists=.*|#@dists=|' /etc/debmirror.conf 
sed -i -e 's|@arches=.*|#@arches=|' /etc/debmirror.conf
相关文章
相关标签/搜索