サーバの構築を簡単にするためのステップ (その5:Cobber編 Part1 )
2007/08/09 01:58 posted by kunkichi
ちょっと間が空いたけど前回の続き。
ステップ3とステップ4で、OSの自動インストールの仕組みについて説明した。それぞれの設定はそんなに難しくはないと思うんだけど、kickstart、dhcp、tftp、ファイルサーバと設定箇所が多岐にわたっていてかつ手動で設定するのは、ちょっと規模が大きくなると厳しい感じもする。
ということで上で一通りあげたツールを全部まとめて簡単にインストール・設定・管理ができる、Cobbler というツールがあることを知ったのでちょっと脱線するけど試してみる。
参考にしたのは以下のサイト。
1. Cobbler とは?
Cobblerのサイトによると
Cobbler は ネットワークインストール環境を迅速に構築する為の Linux プロビジョニングツールです。シンプルな一連のコマンドで、PXE、再インストール、仮想インストールのためのネットワークインストール設定を可能にします。
ということで、上にも書いたけど、kickstart、dhcp、tftp、ファイルサーバとネットワークインストールに必要なもの全てを簡単にインストール・設定・管理ができるツール。
また、上記以外にも
- ・仮想化環境にも対応。
- 独自yumリポジトリの構築。
- 障害時のレスキュー用の設定も可能。
といったこともできるらしい。
なお、公式に対応している OS は Red Hat、CentOS、Fedora。
2. 前提条件
では早速インストールの方へ、といきたいところだけど、まずは環境の想定。一応こんな感じで。

補足しておくと、
- ネットワークインストールに必要なもの(DHCP、TFTP、インストーライメージ・キックスタートファイル・OSのCD/DVDのツリー)は、全て Cobbler サーバが担当する。
- ネットワークインストールで提供する OS は、CentOS5、Fedora 7 の二つとする。
- インストール対象の各サーバは用途を分ける。用途の違うのでもちろんパッケージ構成が異なる。
というのが想定。というのは、業務で使うことを考えると、
- OSは一つに統一するところが多いかなという気もするけど、Cobbler で管理できるという点を確かめる為に CentOS5と Fedora 7 の二つを用意。
- 同じOSのサーバでも用途が違えばパッケージ構成とか設定も変わるだろうということで、ここも二つのパターンを用意。
あたりができないと運用が難しくなるのではないかということでこんな感じにしてみました。
あと、Cobbler サーバ の OS は CentOS5 で、最小構成でインストールした状態から始めます。
3. Cobbler のインストール
ではいよいよインストール開始。Cobbler のパッケージは CentOS5 のデフォルトのyumレポジトリにはまだない(testing にはあるみたいです。)ので、DAG(rpmforge)というサードパーティのレポジトリを使います。
# wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm/etc/yum.repos.d の下に rpmforge.repo というファイルが作成されます。これが DAG レポジトリの設定ファイルで設定を見てみると、
# rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.i386.rpm
# cat /etc/yum.repos.d/rpmforge.repoenabledという項目が1になっている。これはこのレポジトリが有効という意味なんだけど、この状態で yum update とかしちゃうと本家のレポジトリだけでなくDAGのレポジトリも参照してupdateしようとする。
name = Red Hat Enterprise $releasever - RPMforge.net - dag
#baseurl = http://apt.sw.be/redhat/el5/en/$basearch/dag
mirrorlist = http://apt.sw.be/redhat/el5/en/mirrors-rpmforge
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge
enabled = 1
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1
別にこのままでもあまり問題になるケースはないみたいなんだけど、やはりサードパーティのレポジトリは本家のリポジトリと切り離しておきたい。特に同じパッケージ名のものがあったりすると本家のパッケージがDAGのパッケージで上書きされちゃったりするし。ということで、通常はOFF、必要なときだけONにするようにします。vi で開いて
# vi /etc/yum.repos.d/rpmforge.repoenabled を 0 にします。
enabled = 0有効にするときは# yum --enablerepo=rpmforge install fooという風にオプションで渡します。
次に Cobbler で必要なパッケージを追加していきます。必要なパッケージは以下。
- bind、caching-nameserver
IPアドレスからホスト名を引っ張ってくるために内部DNSとして構築する。ただし、必須ではないかも。
- dhcp
ネットワークインストールでブート時にIPアドレスを自動取得する。Cobbler で管理できる。
- tftp-server
ネットワークインストールでインストーライメージの取得に必要。なお、xinetd 経由で起動するので、xinetd も併せてインストールされる。
- httpd
OSイメージの取得で必要。
- python
Cobbler は python で書かれているので必須。ただし最初からインストールされてると思う。
- python-cheetah
python のテンプレートエンジン。kickstart ファイルや dhcpd.conf の生成に使用されていると思われる。
- createrepo、yum-utils、yum-metadata-parse
yum のレポジトリ構築時に必要、だと思われる。
- cobbler
Cobbler 本体。
これ以外にも依存関係でインストールされるものがいくつかあるけど、あんまり気にしなくてよいと思う。それが yum の良さだと思うし。
ということで たくさん書いたけど結局のところ以下の yum コマンドで依存関係含めて必要なパッケージが全て入ります。
# yum --enablerepo=rpmforge install cobbler dhcp bind caching-nameserver
4. DNS の設定
一応 Cobbler 自体は DNS を必須とはしてないようだけど、内部DNSを構築しておいた方が便利なので設定しておく。ここでは内部DNSの構築手順については省略。ググってください(爆)。
一応設定としては、
| IPアドレス | ホスト名 |
|---|---|
| 192.168.0.254 | cobbler.example.com |
| 192.168.0.101 | www.example.com |
| 192.168.0.102 | db.example.com |
| 192.168.0.103 | test.example.com |
というところの対応が取れてればよいかと。あと、設定できたら起動してresolv.confで参照できるようにしておくこと。
3. Cobbler の基本設定
やっとCobblerの設定にいきます。まずは Cobbler を動かすのに最低限必要な基本設定。
Cobbler には 設定箇所をチェックするコマンドがあるのでそれを実行する。
# cobbler checkまだ何も設定していないのでいろいろとエラーが出るのだけどこれをひとつづつ潰していく。
#0: The 'server' field in /var/lib/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.
#1: For PXE to be functional, the 'next_server' field in /var/lib/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.
#2: change 'disable' to 'no' in /etc/xinetd.d/tftp
まず、#0 と #1。/var/lib/cobbler/settings というのが Cobbler の設定ファイルなのだけど、この中の ’server’ と ‘next-server’ の項目が localhost になってるのはよろしくないということで、Cobbler サーバの IP アドレスに置き換える。
# vi /var/lib/cobbler/settings以下のように書き換える。
manage_dhcp: 1
next_server: 192.168.0.254
server: 192.168.0.254
各項目の意味は
- manage_dhcp
Cobbler で DHCPの管理も行うか?行うので “1″ にする。
- next_server
PXEブートでDHCP から IP アドレスが割り当てられた時にブートイメージを提供するサーバのIPアドレス。今回はCobblerサーバ1台でDHCPもファイルの提供も行うので、CobblerサーバのIPを指定。
- server
ファイル(kickstartファイル、OSのCDイメージも?)の提供するサーバのIPアドレスに使われている様子。上記と同じで理由で、CobblerサーバのIPを指定。
あと、上記でDHCPの管理をCobblerで行うように設定したので、Cobbler が使う dhcpd.conf の テンプレート、/etc/var/cobbler/dhcp.template も修正する。
# vi /etc/cobbler/dhcp.template
subnet 192.168.0.0 netmask 255.255.255.0 {
option routers 192.168.0.1;
option subnet-mask 255.255.255.0;
option domain-name "example.com";
option domain-name-servers 192.168.0.254;
range dynamic-bootp 192.168.0.100 192.168.0.253;
filename "/pxelinux.0";
default-lease-time 21600;
max-lease-time 43200;
next-server $next_server;
}
修正した箇所は以下。
- デフォルトの設定では、DHCP のサブネットが 192.168.1,0/24 になっていたのを 192.168.0.0/24 に修正。(1行目)
- 併せて、デフォルトゲートウェイのIPアドレスを修正。(2行目)
- DNSで解決するために、DNSで解決するドメインとDNSサーバのIPアドレスを追加。今回はDNSもCobblerサーバで提供するのでCobblerサーバのIPアドレスを指定。(4、5行目)
- 上記を踏まえて、DHCPで割り当てるIPアドレスの範囲を指定。今回は192.168.0.101〜253までとした。(6行目)
これで #0 と #1 は完了。もっかい、cobbler check コマンドを実行してみる。
# cobbler checkということでさっき残っていた #2 の問題だけになっている(番号は変わってるけどね)のでこっちも直す。これは xinetd の tftp に関する設定で tftp が有効になっていないということ。従って単に有効化してあげれば OK。
The following potential problems were detected:
#0: change 'disable' to 'no' in /etc/xinetd.d/tftp
# chkconfig tftp onでは最後にもっかいcobbler checkコマンドを実行。
# service xinetd restart
# cobbler check
No setup problems found
Manual review and editing of /var/lib/cobbler/settings is recommended to tailor cobbler to your particular configuration.
Good luck.
/var/lib/cobbler/settings を直接見てチェックしろとは言われてるけど、エラーがなくなったようなのでこれで一応OK。
これで Cobbler の基本設定は一通りできたのだけれど、実はまだ登録しないといけない以下の情報がある。
- どのOSをインストールする?
- どんな設定でOSをインストールする?
- どのサーバにOSをインストールする?
つまり、ここからがCobbler の実際の運用におけるキモの部分になってくるのだけど長くなったのでここからは次回また。





コメント&トラックバック
トラックバックURL: