2008/08/23

CobblerでOSネットワークインストール

ノートPCにCentOSをインストールしようとしたら、CDドライブしかついてなかった。
CDイメージを落としてインストールすればいいんだけど、CDが何枚にもなるし、ダウンロードするのもめんどくさい。
だから、ネットワークインストールを試してみることにした。

ネットワークインストールの環境を整えることができるのが、Cobbler(http://cobbler.et.redhat.com/)というもの。
Cobblerを使えば、様々なディストリビューションをネットワークインストールすることが可能になる。
CobblerをインストールしてCentOS5.2をノートPCに導入する。

  1. Cobblerに必要なパッケージをインストール

  2. 今回は、CentOS5.2がインストールされているPCにCobblerをインストールする。Cobblerで必要なパッケージのうち下記のものはyumでインストールすることができる。

    ・yum-utils
    ・createrepo
    ・python-setuptools
    ・tftp-server
    ・httpd
    ・dhcp

    他にpython-cheetahというテンプレートエンジン(?)をインストールする必要がある。
    EPELというyumリポジトリを有効にすればpython-cheetahもcobblerもyumでインストールできるが、僕がやったときは503とか返されてうまくいかなかった。
    もしかして安定してないのだろうか。
    結局はrpmをダウンロードしてインストールすることにした。
    ダウンロードするrpmは結局EPELのものを利用することになったみたいだ。

    # wget ftp://rpmfind.net/linux/EPEL/5Client/i386/python-cheetah-2.0.1-1.el5.i386.rpm
    # rpm -ivh python-cheetah-2.0.1-1.el5.i386.rpm


  3. Cobblerのインストール

  4. ここまできたらCobblerをインストールする。
    ここからCobblerのtar.gzもしくはsrc.rpmをダウンロードできる。
    rpmの方が何かと楽なのでsrc.rpmからリビルドしてrpmを作成してインストール。
    # wget http://cobbler.et.redhat.com/download/cobbler-1.0.3-1.src.rpm
    # rpmbuild --rebuild cobbler-1.0.3-1.src.rpm
    # mv /usr/src/redhat/RPMS/noarch/cobbler-1.0.3-1.noarch.rpm .
    # rpm -ivh cobbler-1.0.3-1.noarch.rpm


  5. 設定ファイルの編集

  6. まず、tftpサーバを有効にする。
    有効にするためには/etc/xinet.d/tftpのdisableを削除する。
    編集後は下記のようになる。
    service tftp
    {
    socket_type = dgram
    protocol = udp
    wait = yes
    user = root
    server = /usr/sbin/in.tftpd
    server_args = -s /tftpboot
    per_source = 11
    cps = 100 2
    flags = IPv4
    }

    編集したら/etc/init.d/xinetd restartでxinetdを再起動する。

    DHCPサーバの設定ファイルはCobblerで編集されるため今の時点でバックアップをとっておく。
    # cp /etc/dhcpd.conf /etc/dhcpd.conf.default


    次にCobblerの設定を行う。
    /etc/cobbler/settingを以下のとおりに編集する。
    ・text:~を削除:グラフィカルモードを使用
    ・next_server <IPアドレス>:TFTPサーバのIPアドレスを指定。今回の場合は自分のIPアドレス
    ・server <IPアドレス>:イメージ配布サーバーのIPアドレス
    ・manage_dhcp 1:DHCPサーバをCobblerで管理


    次にDHCPサーバの設定を行う。
    DHCPサーバの設定ファイルを直接編集するのではなく、CobblerのDHCPサーバ設定ファイルのテンプレートの/etc/cobller/dhcp.templateを編集する。
    subnet 192.168.100.0 netmask 255.255.255.0 {
    option routers 192.168.100.1;
    option subnet-mask 255.255.255.0;
    range dynamic-bootp 192.168.100.101 192.168.100.254;
    filename "/pxelinux.0";
    default-lease-time 21600;
    max-lease-time 43200;
    next-server $next_server;
    }


  7. デーモンの起動

  8. Cobblerデーモン、DHCP、HTTPの起動を行う。
    その際にDHCPサーバの設定ファイルを生成する必要がある。
    # /etc/init.d/cobblerd start
    # cobller sync
    # /etc/init.d/httpd start
    # /etc/init.d/dhcpd start


  9. ISOイメージのコピーとインポート

  10. まず、ISOイメージを任意のディレクトリにコピーする。
    コピーするときにISOイメージの2倍以上の容量がないと作業できない。
    ISOイメージから直接インポートすると失敗した。
    何か書き込んでるのかもしれない。
    # mount /dev/cdrom /media/cdrom
    # mkdir /tmp/centos5
    # shopt -s dotglob
    # unalias cp
    # cp -rf /media/cdrom/* /tmp/centos5/
    # umount /media/cdrom

    ディレクトリにコピーをしたら、Cobblerでインポートを行う。
    これは結構時間がかかった。
    # cobbler import --path /tmp/centos5 --name=centos5

    インポートが終了したらデフォルトで配信するイメージの設定などを行う。
    cobbler reportコマンドで表示されたプロファイル名を使用する。
    # cobbler report
    # cobbler system add --name=default --profile=centos5-i386



あとはインストールしたいPCからPXEブートすればインストールが始まる。
何か他に設定があるようで、勝手にインストールが進んでいつの間にか終了してた。
どういう設定を行うかも設定することができるようだ。

これでPXEブートさえできれば、どんなPCにでもインストールできる。
とりあえず家にあるThinkpad R40e、Thinkpad X20にインストールしてみた。
すごく便利。

0 件のコメント: