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
相關文章
相關標籤/搜索