centos 6-5 cobbler-2-6自動化無人値守ネットワーク一括インストールを実現

9722 ワード

Cobblerはシステム起動サービス(boot server)であり、ネットワーク起動(PXE)によって物理サーバと仮想マシンを迅速にインストール、再インストールし、異なるLinuxリリース版とWindowsのインストールをサポートすることができる.このツールはpythonを使用して開発され、小型で軽量(15 k行コードのみ)で、簡単なコマンドでPXEネットワークインストール環境の構成を完了し、DHCP、DNS、yumパッケージミラーを管理することができます.
一、テスト環境及び基本ツール
1. centOS6.iso86_64;2.仮想マシン12 64ビット;3.Windows 10 64ビット;4.ネットワーク5.Sshクライアント(必須ではない)
二、テスト環境の配置
1.    Windowsの下に仮想マシンをインストールします.2.    仮想マシンにcentOS 6_をインストールする86_64.iso;3.    sshクライアントを使用して仮想マシンに接続されたlinuxシステム(linuxで直接操作可能)
三、yumソースの定義
centos自体のソースについては、mirrors.163.comやmirrors.sohu.comやdocs.linuxtone.orgなど、自分の場所に応じて自分に近いミラーソースを選択できます.この例ではdocs.linuxtone.orgソースを使用します.
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ソースをダウンロードする.本システムはcentOS 6 64ビットのシステムを使用しているので、ここでは以下のリンクを参照する.
wget -c –O rhel-debuginfo.repo http://docs.linuxtone.org/soft/lemp/CentOS-Base.repo

5.ダウンロードに成功したかどうかを確認する
yum list

なお、自分の実際のシステムと本例のテストシステムのバージョンが一致しない場合、第4ステップの操作では、自分の実際のバージョンに基づいてyumソースを選択する必要があります.例えば、自分の実際のシステムがcentOS 5である場合、wget-c–O rhel-debuginfo.repoは次のリンクを使用します.http://mirrors.163.com/.help/CentOS5-Base-163.repo
四、epelサードパーティyumソースのインストール
1.サードパーティyumソースのインストール
サードパーティyumソースの主な役割は、システムのインストール時に対応するサードパーティソフトウェアを自動的にインストールすることです.以下にcentOSのさまざまなバージョンのサードパーティyumソースへのリンクを提供します.    Centos 5 32ビット:rpm-Uvhhttp://mirrors.ustc.edu.cn/fedora/epel/5/i386/epel-release-5-4.noarch.rpm    Centos 5 64ビット:rpm-Uvhhttp://mirrors.ustc.edu.cn/fedora/epel/5/x86_64/epel-release-5-4.noarch.rpm    Centos 6 32ビット:rpm-Uvhhttp://mirrors.ustc.edu.cn/fedora/epel/6/i386/epel-release-6-8.noarch.rpm    Centos 6 64ビット:rpm-Uvhhttp://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpmこの例では、64が仮想マシンの下にインストールされたcentos 6 64ビットシステムを使用するため、次のリンクを使用してサードパーティyumソースをダウンロードします.
rpm -Uvh http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm

実際の操作では,自分のシステムのニーズに応じてサードパーティyumソースのリンクを決定する必要がある.
2.インストールに成功したかどうかを確認する
yum list|grep -E "^epel"

以下の内容が表示されると、インストールに成功したことを示します.そうでない場合は、上記の手順でエラーが発生していないかどうかを確認する必要があります.
 epel-release.noarch                        6-8                          installed
 epel-rpm-macros.noarch                     6-2                          epel

または、次のコマンドを使用してインストールに成功したかどうかを確認します.
rpm -qa |grep -i epel

同様の出力が表示されると、インストールに成功しました.
rpm -qa |grep -i epel

五、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

上記の2行のコマンドの実行後、「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ファイル名に復元すればいいです.
六、ファイアウォールと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

 七、インストール構成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サービスの設定
httpプロファイルの変更
vi /etc/httpd/conf/httpd.conf

serverNameの値をネイティブipに変更
ServerName 192.168.40.128:80

wsgiモジュールを起動する必要があるため、mod_wsgiがインストールされているかどうかを確認する必要があります.ない場合は、次のコマンドを使用してインストールする必要があります.
yum -y install mod_wsgi

 インストールが完了したら、wsgiモジュールを有効にします.有効にする方法は、/etc/http/conf.d/wsgi.confファイルのLoadModule wsgi_module modules/modules_wsgi.so行のコメントをキャンセルすることです.
sed -i 's*#LoadModule*LoadModule*g' /etc/httpd/conf.d/wsgi.conf

2.2 tftpとrsyncの構成
rsyncとtftpの2つのサービスの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サービスを開始する前に、いくつかのプロファイルを変更する必要があります.各ファイルを変更する前に、現在のファイルをバックアップしたほうがいいです.Cobbledのプロファイルは、YAML情報のフォーマットファイルである/etc/cobbler/settingsです.必要に応じて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ネットワークブートファイルがダウンロードされたTFT Pサーバの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サーバーのアドレスが必要で、直接システムを起動して、それはネットワークの中でブートファイルをTFT Pのサーバーにダウンロードすることができて、cobblerはmanage_dhcpの設定を通じて管理することができます    まずcobbler構成を変更し、cobblerにdhcpサービスを管理させる.カスタム構成をする場合、PXE起動用にdhcp関連構成を変更する必要がある.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システムに複数のNICがある場合は、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