cobblerトップへ戻る

Cobblerでyumのレポジトリを管理する

このページは本家サイトの"Cobbler's DHCP management features"を、作者である Michael DeHaan 氏に許可を得て、個人的に翻訳したものを公開しています。
あくまでも個人的な訳となっており、意訳・超訳的なところも多々ありますので、翻訳・記述の内容に不備やご意見等あればご指摘・ご連絡頂けると助かります。(翻訳日:2007/10/2)


概要

cobblerはオプションでDHCPのセットアップを行うことができ、特定のシステム(MACアドレスで特定される)に特定のIPが割り当てるような設定が可能です。


サポート対象

現在のところ、cobblerはISC DHCP(パッケージ名: dhcpd)の設定を生成することが出来ます。cobbler のバージョン0.5.0(リリース保留中)では、dnsmasqも使用可能となっています。DNSmasqは、IPと同じように、特定のシステムにホスト名を割り当てることができます。


DHCP管理機能をいつ有効にするべきか?

もし大きなネットワークを運用しているのであれば、DHCPが既に存在している可能性が高いでしょう。しかし、cobblerのDHCP管理機能は、研究所や、管理者が既にDHCPを運用しているようなシチュエーションに、まさにふさわしい機能です。


必要としない場合は?

敢えてcobblerでDHCPのインフラを管理しなくてもかまいません。実際、それがデフォルトの挙動になっていますし。こういったケースでPXEを使用したいのであれば、dhcp.confのnext-serverのエントリとそのファイル名の情報を確認して、PXEで使用したいマシンにpxelinux.0が配布されるように適切に設定してください。

cobblerでDHCPの管理を行うとアイデアは、それがPXEインストールと密接に関連しているからということと、どんなシステムがあるのか?それらがどのように動作するか?ということについてのデータベースを管理するのであれば、ホスト名とIPアドレスも併せて管理するのが理にかなっていると思ったからです。つまり、cobblerでDHCPを管理することはこれらを可能にするということなのです — そしてこれで管理者が設定しないといけないことが一つ減るということです。


DHCP管理を有効化する

/var/lib/cobbler/settings の manage_dhcp の値を1に変更してください。

そして、/var/lib/cobbler/dhcp.template をお好みで編集してください — 基本的には、DHCP情報を正確に設定するということです。このファイルは、例えば既存の環境での設定している情報など、を含めることが出来ます。

cobbler 0.5.0以降ではオプションとして、'manage_dhcp_mode'を'dnsmasq'に変更することで、ISC dhcpdの代わりにdnsmasqを使用することも出来ます。詳細についてはcobblerのmanページで説明しています。これを使うと、プロビジョニング対象のマシンに対して、IPアドレスだけでなくホスト名も割り当てることが出来ます。


どのように動作するか?

以下のコマンドが実行されたと思ってください:

# cobbler system add --name=AA:BB:CC:DD:EE:FF --pxe-address=192.168.1.1

#cobbler system add --name=AA:BB:CC:DD:EE:FF --ip=192.168.1.1 (新しいバージョンの場合)

/etc/cobbler/dhcp.templateのテンプレート情報が読み込まれ、テンプレートのフィールドが適切な値が置き換えられ、設定ファイルが生成されます。この場合は、AA:BB:CC:DD:EE:FFがIPアドレスの割当を要求してきた場合、192.168.1.1が配布されます。ただし必ずアドレスを指定する必要があるというわけではなく、指定がない場合DHCPは設定されているIPアドレスのレンジ内でIPアドレス割当を行います。


Itaniumの場合

これは少し複雑です。Itaniumuマシンに対してPXEを正常に動作させるには、"filename"の値は、pxelinuxではなくeliloを参照するように配布する必要があります。ありがたいことにcobblerはこれを実行する術を知っています。ディストリビューションにエントリを作成した場合に、--arch=ia64が指定されていることを確認できれば正しく設定されています。また、pxe-addressパラメータが必須であることにも注意してください。これはLILOにおいて、エンコードされたIPアドレスは要求するが、MACアドレスに基づいたPXE設定は要求しないという不具合によるものです。詳細についてはcobblerのmanページでも記載しているので、繰り返しになりますが我慢してください。

また、Itaniumマシンはネットワークインストールの時に時々ハングしやすいという傾向が有るようです、、、なぜそうなるのかは私たちもわかりません:)


ダイナミックDNS

もしcobbler0.5.0以上を使用しており、'manage_dhcp_mode' を dnsmasq に変更しているのであれば、MACアドレスを指定して"cobbler system add"コマンドを実行する時に --hostnameパラメータを指定することが出来ます。変更を反映させる為に、プロビジョニングの前にdnsmasqを再起動してください。

もしdnsmasqを使用していない場合でも、cobbler wikiにもドキュメントが有る、cobblerのトリガー機能を使って、インストールされているDNSと連携するようなスクリプトを自分で作成することも出来ます。


固定IP

DHCPはあまり好きではないですか?

PXEを設定しない場合は、キックスタートファイル上や、cobblerが存在するネットワーク上で、固定IPを使用することが出来ます。これを実行するには、キックスタートのテンプレートのカスタマイズについてmanページで記載されているように、--ksmetaオプションを利用してください — つまり、--ksmetaで割り当てたいIPアドレスなどの値をそれぞれ指定して、cobblerのシステムのレコードを作成してください。そうすれば、個々のシステムごとに、それらの値が置き換えられた固有のキックスタートファイルが作成されるので、複数のシステム間で共有する一つのキックスタートファイルのテンプレートだけをメンテナンスするだけで済みます。

これは koan を使用する場合もで"--system"を指定するだけで機能します。しかしながら、PXEにおいては、少なくとも最低限のDHCP設定が必要となります。