Cobbler によるシステム・インストールの自動化と管理

Cobbler を使用して簡単にネットワーク・インストール環境をセットアップして管理する

Cobbler はインストール・サーバーのセットアップと管理に必要なタスクを一元化することで、システムのプロビジョニングを容易に行えるようにします。この記事では、Cobbler に備わっている機能の一部を取り上げて紹介するとともに、Cobbler をインストールする方法、複数のクライアント・マシンを自動的にインストールするのに適した構成を作成する方法を説明します。

Paulo de Rezende Pinatti, Staff Software Engineer, IBM

Photo of Paulo de Rezende PinattiPaulo de Rezende Pinatti は、IT 分野で 10 年間の経験を積み、現在は IBM Brazil でスタッフ・ソフトウェア・エンジニアとして仮想化システム (KVM、oVirt、Openstack) に取り組んでいます。以前は、Linux インストールおよび構成ツール・キットや、仮想化ツールの開発に携わっており、システム管理者を務めていました。



2013年 7月 04日

ネットワーク環境を構築する場合、インストールを開始できる状態にするまでに、多くのステップが必要になることがあります。例えば以下のステップが挙げられます。

  • DHCP、TFTP、DNS、HTTP、FTP、および NFS などのサービスを構成する
  • 個々のクライアント・マシンのエントリーを DHCP および TFTP 構成ファイルに入力する
  • 自動デプロイメント・ファイル (kickstart や autoinst など) を作成する
  • インストール・メディアを HTTP/FTP/NFS リポジトリーに展開する

このプロセスは決して単純なものではありません。また、プロビジョニングしなければならない個々のクライアント・マシンを手動で登録するのは面倒な作業です。マシンのプロビジョニングに対してパラメーターの変更を加えるとなると (例えば、別のオペレーティング・システムを使用するなど)、構成だけでなく、場合によっては自動デプロイメント・ファイルにも手動による介入が必要です。また、マシンの数を増やす場合には、ファイルの編成に十分な注意を払わない限り、TFTP ディレクトリーなどの構成要素が混沌とした状態になってしまいます。

このような欠点に対処するために、マシン・プロビジョングのあらゆる側面を一元管理できるようにするのが Cobbler です。Cobbler は、サービスの再構成、リポジトリーの作成、オペレーティング・システム・メディアの展開、構成管理システムとの連携または統合、電源管理の制御など、さまざまな機能を備えています。Cobbler は、「新規リポジトリーの追加」や「クライアント・マシンのオペレーティング・システムの変更」などのコマンドを実行可能な抽象化層を作成し、構成ファイルの作成または更新、サービスの再起動、新しく作成したディレクトリーへのメディアの展開など、あらゆる作業を引き受けてくれます。Cobbler がこれらの作業を行うことで目的としているのは、システム関連のあらゆる事項をユーザーから隠し、ユーザーが重要な作業に専念できるようにすることです。

この記事では、Cobbler の設計、主な機能、そしてこれらの機能を使用してマシンを簡単かつ迅速にプロビジョニングする方法を説明します。最初に説明するのは、Cobbler の機能についてです。

Tivoli Configuration Manager

IBM Tivoli Configuration Manager は、Software Distribution および Inventory という 2 つの主要コンポーネントと各種のサービスで構成された、統合ソフトウェア・ディストリビューションおよび資産管理スイートです。Tivoli Configuration Manager は、マルチプラットフォーム環境における構成、配布、変更、バージョン、資産を管理します。

このツールが提供する機能

Cobbler を使用すると、マシンのインストール時に手作業で介入する必要がなくなります。Cobbler は PXE ブート環境をセットアップして (yaboot を使用することによって、PowerPC もサポートします)、インストール関連のあらゆる側面 (ネットワーク・ブート・サービス (DHCP および TFTP) やリポジトリー・ミラーリングなど) を制御します。新しいマシンをインストールするときには、Cobbler が以下の処理を行います。

  • あらかじめ定義されたテンプレートを使用して、DHCP サービスを構成します (DHCP 管理機能が有効にされている場合)。
  • リポジトリーをミラーリングするか (yum または rsync)、メディアを展開して新しいオペレーティング・システムを登録します。
  • インストールするマシンの DHCP 構成ファイルにエントリーを作成し、ユーザー指定のパラメーター (IP アドレスと MAC アドレス) を設定します。
  • TFTP サービス・ディレクトリー内に適切な PXE ファイルを作成します。
  • DHCP サービスを再起動して変更内容を反映させます。
  • マシンを再起動してインストールを開始します (電源管理が有効にされている場合)。

Cobbler は広範なディストリビューション (Red Hat、Fedora、CentOS、Debian、Ubuntu、および SuSE) をサポートしています。Cobbler は、ユーザーがオペレーティング・システム (通常は ISO ファイルを使用しています) を追加する場合に、該当するファイルをどのように展開するのか、そしてどのようにネットワーク・サービスを調整すればマシンを正しくブートできるのかを把握しています。

Cobbler はキックスタート・テンプレート機能と連動することが可能です。Red Hat または Fedora をベースにしたシステムは、キックスタート・ファイルを使用してインストール・プロセスを自動化します。テンプレートを使用することにより、ベースとなるキックスタート・テンプレートを用意しておいた上で後からそのテンプレートの変数をプロファイルやマシン構成に応じてどのように置き換えるかを定義することができます。例えば、テンプレートには $domain と $machine_name という 2 つの変数を含めることができます。Cobbler の構成では、プロファイルに domain=mydomain.com という内容を指定し、このプロファイルを使用するそれぞれのマシンの名前を machine_name 変数に指定します。そのプロファイルに含まれるすべてのマシンは、同じキックスタートでインストールされ、domain=mydomain.com に応じて構成されますが、マシンごとに独自のマシン名が割り当てられます。キックスタート・テンプレートは、異なるドメインに別のマシンを別のマシン名でインストールするためにも使用することができます。

システムの管理を支援するために、Cobbler はフェンス・スクリプトによって各種の電源管理環境に接続することができます。Cobbler は、apc_snmp、bladecenter、bullpap、drac、ether_wake、ilo、integrity、ipmilan、ipmitool、lpar、rsa、virsh、wti をサポートしています。マシンを再インストールする場合は、reboot system foo コマンドを実行します。すると、Cobbler が自動的に必要なクレデンシャルとマシン・スロット番号などの情報を使用して、適切なフェンス・スクリプトを実行します。

これらの機能に加え、構成管理システム (CMS) を使用することもできます。この場合、ツール内部のシステムを使用するか、既存の外部 CMS (Chef や Puppet など) を統合するかの 2 つの選択肢があります。内部システムを使用する場合、ファイル・テンプレートを指定することができます。ファイル・テンプレートは (キックスタート・テンプレートを処理する場合と同様の方法で) 構成パラメーターに従って処理され、ユーザーが決定した場所にコピーされます。この機能は、特定のマシンに構成ファイルを自動的にデプロイしなければならない場合に重宝します。

Cobbler は koan クライアントを使用して仮想マシンをプロビジョニングし、クライアント・サイドからシステムを再インストールすることができます。構成管理と koan の機能については、この記事では説明しませんが、詳しく調べるに値する有用な機能です (詳しくは、「参考文献」を参照)。


Cobbler の設計

Cobbler の構成の構造は、一連の登録済みオブジェクトがベースになっています。各オブジェクトが 1 つのエンティティーを表し、それぞれのエンティティーは別のエンティティーに関連付けられています (つまり、そのオブジェクトが別のオブジェクトを指しているか、別のオブジェクトがそのオブジェクトを指しています)。あるオブジェクトが別のオブジェクトを指している場合、そのオブジェクトはその別のオブジェクトのデータを継承し、オーバーライドすることや、より具体的な情報を追加することができます。定義されているオブジェクトには、以下のタイプがあります。

  • ディストリビューション (Distribution): オペレーティング・システムを表します。カーネルと initrd に関する情報に加え、カーネル・パラメーターなどのデータを格納します。
  • プロファイル (Profile): ディストリビューション、キックスタート・ファイル、そして場合によってはリポジトリーを指します。また、さらに具体的なカーネル・パラメーターなどのデータも指します。
  • システム (System): プロビジョニング対象のマシンを表します。このオブジェクトはプロファイルまたはイメージを指し、IP アドレスと MAC アドレス、電源管理 (アドレス、クレデンシャル、タイプ)、および特化されたデータを格納します。
  • リポジトリー (Repository): yum または rsync リポジトリー用のミラーリング情報を保持します。
  • イメージ (Image): 上記ディストリビューション・カテゴリーに当てはまらないファイル構成 (例えば、カーネルと initrd に分割できないファイル構成) のディストリビューション・オブジェクトを (イメージ・オブジェクトに) 置き換えることができます。

登録されているオブジェクトと、それらのオブジェクト間の関連を基にして、Cobbler はファイルシステムを変更して構成を反映させる方法を認識します。このようにシステム構成の内部構造が抽象化されるため、ユーザーはその他の必要な作業に専念することができます。

図 1. Cobbler オブジェクト間の関係
Cobbler の構成の構造を示すアーキテクチャー図

Cobbler の使用方法

Cobbler を構成および使用する手段としては、コマンドライン、API、XML-RPC、Web UI があります。ここでは主に、コマンドラインを使用する方法に焦点を当てます。

EPEL パッケージ

RHEL および CentOS 用の Cobbler パッケージは、Fedora コミュニティーの特別利益団体である EPEL (Extra Packages for Enterprise Linux) から配布されます。EPEL では、RHEL (Red Hat Enterprise Linux)、CentOS、SL (Scientific Linux) の各ディストリビューションを含む Enterprise Linux 用の一連の追加パッケージを保守しています。詳細は、Fedora Project の Wiki で調べてください。

Cobbler には、Fedora、RHEL、CentOS、Ubuntu、および OpenSuse の各ディストリビューション用のパッケージが用意されています (「EPEL パッケージ」を参照)。この記事では、Fedora システムで Cobbler を使用する方法を説明しますが、その方法を別のシステムに適用するのは簡単です。

まず、Cobbler が電源管理に使用するツールとフェンス・エージェント・パッケージをインストールします。root ユーザーとして、ディストリビューションに含まれるパッケージ・マネージャーの install コマンドを実行してください。

yum -y install cobbler fence-agents

パッケージのインストールが完了したら、必要なサービスを起動します。

service cobblerd start
service httpd start

Cobbler が正常に動作しているかどうかをテストするには、「cobbler check」と入力します。このコマンドは、調整を必要とするかもしれない構成ポイントをレポートしますが、心配には及びません。このコマンドはユーザーを支援するガイドラインに過ぎません。以降のステップで、該当する部分を構成します (ただし、SELinux 警告がレポートされた場合は、Cobbler の指示に従って調整してください)。接続エラー・メッセージを受け取ったとしたら、サービス (および、有効にされている場合は SELinux のログ) が正常に起動されたことを確認します。この場合、SELinux のブール値 httpd_can_network_connect_cobbler を true に設定する必要があるかもしれません (setsebool -P httpd_can_network_connect_cobbler 1)。その場合は、設定した後で忘れずにサービスを再起動してください。

Cobbler を構成する

主要な Cobbler 構成ファイルは /etc/cobbler/settings です。このファイルをテキスト・エディターで開いて、以下のオプションを設定します。

  • manage_dhcp: 1
  • manage_dns: 1
  • manage_tftpd: 1
  • restart_dhcp: 1
  • restart_dns: 1
  • pxe_just_once: 1
  • next_server:<サーバーの IP アドレス>
  • server:<サーバーの IP アドレス>

manage_* および restart_* は、読んで字のごとくのオプションです。オプション next_server は、ブート・ファイルを提供するサーバーのアドレスをマシンに伝えるために DHCP 構成ファイル内で使用されます。オプション server は、マシンのインストール中に Cobbler サーバー・アドレスを参照するために使用されます。pxe_just_once は、常にネットワークからブートするように構成されているマシンで、インストール・ループを防ぐためのオプションです。このオプションがアクティブになっている場合、マシンは Cobbler にインストールが完了したことを通知します。すると、Cobbler はシステム・オブジェクトの netboot フラグを false に変更して、マシンをローカル・ディスクからブートさせます。この例では、後ほどこのオプションを使用します。

一部のサービスだけを構成する場合

必要な場合には、特定のサービスだけを管理するように Cobbler を構成することも可能です。例えば、ファイル・サーバーの管理者に、ネットワーク内で DHCP サービスを提供している別のマシンへのアクセス権がないとします。この場合、DHCP 管理者がブート・ファイル (x86 の場合は pxelinux.0、PowerPC の場合は yaboot) を要求するようにファイル名オプションを設定し、next_server オプションをファイル・サーバーの IP アドレスに設定すると、ネットワーク内でブートされるマシンは、ファイル・サーバーのブート・ファイルを要求するようになります。このように設定した上で、TFTP サービスを管理してマシンをツールに登録するように Cobbler を構成すれば、Cobbler は該当するファイルをこれらのマシンに提供するようになります。

一部のオプションをアクティブにしない場合もありますが (「一部のサービスだけを構成する場合」を参照)、この例ではすべてのサービスを管理するように Cobbler を構成します。これが一般的なシナリオであり、これらのサービスの構成方法を具体的に示すためです。

Cobbler が管理対象のサービスを認識したので、次は、どのプログラムを使用するかを Cobbler に指示します。選択肢としては、以下のものがあります。

  • DHCP: ISC dhcpd または dnsmasq
  • DNS: BIND または dnsmasq
  • TFTP: in.tftpd または Cobbler の内部 TFTP

DHCP と DNS には、簡単に構成できる dnsmasq を使用するのが賢明です。TFTP には、システムのデフォルトとなっている in.tftpd を使用します。リスト 1 の設定を使用するように /etc/cobbler/modules.conf ファイルを編集してください。

リスト 1. 構成設定
[dns]
module = manage_dnsmasq

[dhcp]
module = manage_dnsmasq

[tftpd]
module = manage_in_tftpd

Cobbler は、テンプレートを使用してサービスの構成ファイルを作成します。したがって、使用するゲートウェイ・アドレスや IP アドレスの範囲といったネットワーク情報を調整するには、/etc/cobbler/dnsmasq.template にある dnsmasq テンプレートの編集が必要になります。例えば、Cobbler を実行するサーバーがゲートウェイを兼ねていて、IP アドレスの範囲が 192.168.122.5 から 192.168.122.254 までの場合は、このファイルに以下の行を入力します。

dhcp-range=192.168.122.5,192.168.122.254,255.255.255.0

通常、未登録のクライアントは、サーバーからブートしないようにブロックする必要があります。それには、パラメーター dhcp-ignore=tag:!known を追加します (古いバージョンでは、dhcp-ignore=#known という別の構文を使用する場合があります。不明な場合は、両方の構文を挿入しても構いません)。このテンプレート・ファイルの内容は、リスト 2 に記載するコードのようになります。

リスト 2. dnsmasq テンプレート・ファイル
# Cobbler generated configuration file for dnsmasq
# $date
#

# resolve.conf .. ?
#no-poll
#enable-dbus
read-ethers
addn-hosts = /var/lib/cobbler/cobbler_hosts

dhcp-range=192.168.122.5,192.168.122.254,255.255.255.0
dhcp-ignore=tag:!known
dhcp-option=3,$next_server
dhcp-lease-max=1000
dhcp-authoritative
dhcp-boot=pxelinux.0
dhcp-boot=net:normalarch,pxelinux.0
dhcp-boot=net:ia64,$elilo

$insert_cobbler_system_definitions

Cobbler が使用できるようになるまで、あと一息です。サービスを再起動して変更内容をファイルシステムに同期させ、変更を有効にします。また、TFTP を使用可能にするために、xinetd サービスも再起動することを忘れないでください。以下のコマンドを実行します。

service cobblerd restart
cobbler sync
service xinetd restart

これで、ディストリビューションとリポジトリーの追加や、プロファイルの作成、システムの登録ができるようになりました。ファイアウォールの構成で、TFTP、DHCP、HTTP/HTTPS の各ネットワーク・サービスが使用するポートのトラフィックが許可されるようになっていることを忘れずに確認してください。

Fedora 17 システムをインストールする

2 つの選択可能なオプション (Xfce または GNOME デスクトップ) で Fedora 17 システムをインストールするように Cobbler を準備します。Fedora インストール・ツリーを追加するには、ISO メディアをダウンロードしてから、以下のコマンドを実行します。これらのコマンドにより、メディアがマウントされて、その中身が展開されます (一部のシステムでは、マウントされたディレクトリーの中身が Cobbler から見えないために、メディアのインポートに失敗する場合があります。この問題が発生した場合は、mount コマンドを実行した後に、Cobbler サービスを再起動してください)。

mount -o loop /Fedora-17-x86_64-DVD.iso /mnt/iso
cobbler import --arch=x86_64 --path=/mnt/iso --name=Fedora17

上記コマンドによって、Cobbler はメディアの中身をファイルシステムにコピーしているはずです。この処理が完了するまでには時間がかかるので、辛抱強く待ってください。cobbler import コマンドは、自動的にディストリビューションとプロファイル・オブジェクトを作成してくれるので、重宝します。Cobbler を直接ネットワーク・リポジトリーに向けることもできます。コマンドの実行結果は、リスト 3 のようになります。

リスト 3. cobbler import コマンドの実行結果
cobbler distro report
Name                           : Fedora17-x86_64
Architecture                   : x86_64
TFTP Boot Files                : {}
Breed                          : redhat
Comment                        :
Fetchable Files                : {}
Initrd                         : /var/www/cobbler/ks_mirror/Fedora17-x86_64/images/
                                  pxeboot/initrd.img
Kernel                         : /var/www/cobbler/ks_mirror/Fedora17-x86_64/images/
                                  pxeboot/vmlinuz
Kernel Options                 : {}
Kernel Options (Post Install)  : {}
Kickstart Metadata             : {'tree': 'http://@@http_server@@/cblr/links/
                                  Fedora17-x86_64'}
Management Classes             : []
OS Version                     : generic26
Owners                         : ['admin']
Red Hat Management Key         : <<inherit>>
Red Hat Management Server      : <<inherit>>
Template Files                 : {}

cobbler profile report

Name                           : Fedora17-x86_64
TFTP Boot Files                : {}
Comment                        :
DHCP Tag                       : default
Distribution                   : Fedora17-x86_64
Enable gPXE?                   : 0
Enable PXE Menu?               : 1
Fetchable Files                : {}
Kernel Options                 : {}
Kernel Options (Post Install)  : {}
Kickstart                      :
Kickstart Metadata             : {}
Management Classes             : []
Management Parameters          : <<inherit>>
Name Servers                   : []
Name Servers Search Path       : []
Owners                         : ['admin']
Parent Profile                 :
Proxy                          :
Red Hat Management Key         : <<inherit>>
Red Hat Management Server      : <<inherit>>
Repos                          : []
Server Override                : <<inherit>>
Template Files                 : {}
Virt Auto Boot                 : 1
Virt Bridge                    : xenbr0
Virt CPUs                      : 1
Virt Disk Driver Type          : raw
Virt File Size(GB)             : 5
Virt Path                      :
Virt RAM (MB)                  : 512
Virt Type                      : qemu

このプロファイルは、インストールするデスクトップごとに作成する 2 つのプロファイルの親になります。

プロファイルを作成する前に、インストールで使用するパッケージを、より多く yum リポジトリーに格納することを検討してください。その場合、以下のようにしてリポジトリー・オブジェクトを作成します。

cobbler repo add --arch=x86_64 --name=Flash-plugin \
  --mirror=http://linuxdownload.adobe.com/linux/x86_64/
cobbler reposync
cobbler repo report

Cobbler では、yum リポジトリーの URL に http://、ftp://、rsync://、ファイルシステムのパス、および ssh ロケーション (秘密鍵による認証を使用) を使用することができます。ここで重要な操作は、reposync です。この操作によって、リモート・リポジトリーからファイルがコピーされます。リポジトリー・オブジェクトを作成しても reposync を実行しなければ、リポジトリーは空になり、おそらくインストールは失敗するはずです。

リポジトリーをアクティブにする作業を完了するには、リポジトリーをプロファイルに関連付けます。リポジトリーを Fedora プロファイルに関連付けるには、以下のコマンドを使用します。

cobbler profile edit --name=Fedora17-x86_64 --repos=Flash-plugin

プロファイルの作成

次のステップは、プロファイルを作成することです。自動インストールの場合には、キックスタート・テンプレート機能を使用してキックスタート・ファイルを指定します。/var/lib/cobbler/kickstarts に用意されているファイルをベースに、単純なキックスタートを作成し、%packages セクションに変数 $desktop_pkg_group を定義します。この変数には後で値が代入され、どのデスクトップ・パッケージがインストールされるかが決定されます。リスト 4 に、キックスタート・ファイルの内容を記載します。

リスト 4. キックスタート・ファイルの内容
# System bootloader configuration
bootloader --location=mbr
# Partition clearing information
clearpart --all --initlabel
# Run the Setup Agent on first boot
firstboot --disable
# Activate X
xconfig --startxonboot
# Use network installation
url --url=$tree
# additional repostories get added here
$yum_repo_stanza
# Reboot after installation
reboot
# System keyboard
keyboard us
# System language
lang en_US
# System timezone
timezone  America/New_York
# Root password
rootpw --iscrypted $default_password_crypted
# Install OS instead of upgrade
install
# Clear the Master Boot Record
zerombr
# Allow anaconda to partition the system as needed
autopart

%packages
@base
@base-x
firefox
flash-plugin
$desktop_pkg_group
%end

%post
# create a default user to log in X
useradd desktop-user
passwd -d desktop-user

# adds the yum repositories to the installed system
$yum_config_stanza
# cobbler final steps
$SNIPPET('kickstart_done')
%end

$ で始まる変数は、Cobbler がテンプレートを処理するために使用する Cheetah プログラム (「参考文献」を参照) によって適切な値に置き換えられます。Cheetah テンプレートを使い慣れている方は、それと同じルールをここでも使用できます。Cobbler の内部変数 ($yum_config_stanza など) について詳細を学ぶには、/var/lib/cobbler/kickstarts に用意されているキックスタートを調べてください。

キックスタート・ファイルを作成したら、それを /var/lib/cobbler/kickstarts にコピーします (ここにコピーしないと、Cobbler がそのキックスタート・ファイルを使用できない場合があります)。Cobbler が $desktop_pkg_group の値を認識している理由は、プロファイルを作成するときに --ksmeta オプションを使用してその値を定義しているからです。このオプションを使用して、キックスタート・テンプレート内の変数を置き換えるときに使用する値を決定します。リスト 5 のコマンドは、Xfce プロファイルと GNOME プロファイルを作成します。

リスト 5. Xfce プロファイルと GNOME プロファイルを作成するコマンド
cobbler profile add --name=Fedora17-xfce \
                    --ksmeta='desktop_pkg_group=@xfce-desktop' \
                    --kickstart=/var/lib/cobbler/kickstarts/example.ks \
                    --parent=Fedora17-x86_64
cobbler profile add --name=Fedora17-gnome \
                    --ksmeta='desktop_pkg_group=@gnome-desktop' \
                    --kickstart=/var/lib/cobbler/kickstarts/example.ks \
                    --parent=Fedora17-x86_64
cobbler profile report

--parent パラメーターは、これらのプロファイルに対して Fedora プロファイルを継承することを指示しています。この 2 つのプロファイルは、Fedora ディストリビューションと追加の Flash-plugin リポジトリーを使用します。すべてが適切であることを確かめるには、Cobbler が処理をした後にキックスタートの内容を確認することができます。結果は、リスト 6 のようになります。

リスト 6. キックスタートの内容を確認する
cobbler profile getks --name=Fedora17-xfce

# System bootloader configuration
bootloader --location=mbr
# Partition clearing information
clearpart --all --initlabel
# Run the Setup Agent on first boot
firstboot --disable
# Activate X
xconfig --startxonboot
# Use network installation
url --url=http://192.168.122.1/cblr/links/Fedora17-x86_64
# additional repostories get added here
repo --name=Flash-plugin --baseurl=http://192.168.122.1/cobbler/repo_mirror/Flash-plugin
repo --name=source-1 --baseurl=http://192.168.122.1/cobbler/ks_mirror/Fedora17-x86_64

# Reboot after installation
reboot
# System keyboard
keyboard us
# System language
lang en_US
# System timezone
timezone  America/New_York
# Root password
rootpw --iscrypted $1$mF86/UHC$WvcIcX2t6crBz2onWxyac.
# Install OS instead of upgrade
install
# Clear the Master Boot Record
zerombr
# Allow anaconda to partition the system as needed
autopart

%packages
@base
@base-x
firefox
flash-plugin
@xfce-desktop
%end

%post
# create a user we can use to log on X
useradd desktop-user
passwd -d desktop-user

# adds the yum repositories to the installed system
wget "http://192.168.122.1/cblr/svc/op/yum/profile/Fedora17-xfce" \
   --output-document=/etc/yum.repos.d/cobbler-config.repo

# cobbler final steps


wget "http://192.168.122.1/cblr/svc/op/ks/profile/Fedora17-xfce" -O /root/cobbler.ks
wget "http://192.168.122.1/cblr/svc/op/trig/mode/post/profile/Fedora17-xfce" -O /dev/null
%end

変数 $dekstop_pkg_group は @xfce-desktop で適切に置き換えられ、これにより、Anaconda インストーラーは Xfce デスクトップ・パッケージ・グループをインストールするよう指示されます。

マシンにプロファイルを関連付ける

インストールを開始する準備はほぼ整いました。最後のステップは、マシン (デスクトップごとに 1 つ) のインストールで使用するプロファイルをマシンに関連付けることです。そのためのコマンドをリスト 7 に記載します。

リスト 7. マシンにプロファイルを関連付ける
cobbler system add --name=desktop-xfce-1 \
                   --profile=Fedora17-xfce \
                   --mac=52:54:00:b8:5e:8f \
                   --ip-address=192.168.122.10
cobbler system add --name=desktop-gnome-1 \
                   --profile=Fedora17-gnome \
                   --mac=52:54:00:88:f3:44 \
                   --ip-address=192.168.122.11
cobbler system report

Cobbler の電源管理機能は、マシンの電源投入、電源切断、およびリブートを自動的に処理することができます。マシンが数多くあり、マシンごとにユーザー名やパスワードなどの電源管理情報を整理しなければならない場合にも、この電源管理機能は役に立ちます。それは、Cobbler がそのベースにそれらのマシンの情報を登録するためです。例えば、desktop-xfce-1 マシンがベイ 2 の IBM Bladecenter にあり、desktop-gnome-1 が RSA ボードで管理されるマシンだとします。その場合、リスト 8 に記載するようにシステムをセットアップすることができます。

リスト 8. 電源管理情報を追加する
cobbler system edit --name=desktop-xfce-1 \
                    --power-type=bladecenter \
                    --power-id=2 \
                    --power-user=admin_user \
                    --power-pass=admin_password \
                    --power-address=192.168.122.2
cobbler system edit --name=desktop-gnome-1 \
                    --power-type=rsa \
                    --power-user=rsa_user \
                    --power-pass=rsa_password \
                    --power-address=192.168.122.3

すべての変更をファイルシステムに適用することを忘れないでください。

cobbler sync

これで、マシンをインストールする用意ができました。


インストールの開始

マシンをブートしてインストールする準備が整いました。マシンは、ネットワークからブートするように構成する必要があります。そのように構成しないと、マシンがハード・ディスクからブートされることになり、インストールは開始されません。電源管理をアクティブにしている場合、Cobbler は自動的にマシンをリブートするので、以下の単純なコマンドでインストールを開始することができます。

cobbler system reboot --name=desktop-xfce-1

このコマンドにより、Cobbler は指定されたクレデンシャルを使用して Bladecenter に接続し、ブレード 2 のリブート・コマンドを発行します。ネットワークのブートによってブレードが再起動すると、ブレードは Cobbler からブート・ファイルを受け取ります。インストールは自動的に行われ、Fedora ログイン画面が表示された時点でプロセスが終了します。


Cobbler をさらに容易に使えるようにする Web インターフェース

簡単に Cobbler オブジェクトを見えるようにして、日常的に繰り返されるタスクにオブジェクトの値を再利用したい場合、Cobbler にはそれを可能にする有用な Web インターフェースが用意されています。この Web インターフェースを使用するには、まず、以下のコマンドでパッケージをインストールします。

yum -y install cobbler-web

パッケージをインストールした後、Cobbler の許可および認証システムを構成してログインできるようにします。このシステムの構成は、/etc/cobbler/modules.conf ファイル内にあり、リスト 9 のようなコードになっています。

リスト 9. デフォルトの Cobbler 許可および認証システム構成
# authentication:
# what users can log into the WebUI and Read-Write XMLRPC?
# choices:
#    authn_denyall    -- no one (default)
#    authn_configfile -- use /etc/cobbler/users.digest (for basic setups)
#    authn_passthru   -- ask Apache to handle it (used for kerberos)
#    authn_ldap       -- authenticate against LDAP
#    authn_spacewalk  -- ask Spacewalk/Satellite (experimental)
#    authn_pam        -- use PAM facilities
#    authn_testing    -- username/password is always testing/testing (debug)
#    (user supplied)  -- you may write your own module
# WARNING: this is a security setting,  do not choose an option blindly.
# for more information:
# https://github.com/cobbler/cobbler/wiki/Cobbler-web-interface
# https://github.com/cobbler/cobbler/wiki/Security-overview
# https://github.com/cobbler/cobbler/wiki/Kerberos
# https://github.com/cobbler/cobbler/wiki/Ldap

[authentication]

module = authn_denyall

# authorization:
# once a user has been cleared by the WebUI/XMLRPC, what can they do?
# choices:
#    authz_allowall   -- full access for all authneticated users (default)
#    authz_ownership  -- use users.conf, but add object ownership semantics
#    (user supplied)  -- you may write your own module
# WARNING: this is a security setting  do not choose an option blindly.
# If you want to further restrict cobbler with ACLs for various groups,
# pick authz_ownership.  authz_allowall does not support ACLs.  configfile
# does but does not support object ownership which is useful as an additional
# layer of control.

# for more information:
# https://github.com/cobbler/cobbler/wiki/Cobbler-web-interface
# https://github.com/cobbler/cobbler/wiki/Security-overview
# https://github.com/cobbler/cobbler/wiki/Web-authorization

[authorization]

module = authz_allowall

リスト 9 のヘルプ・コメントは、LDAP、PAM、構成ファイルなどの認証オプションが使用可能であることを示しています。PAM はかなり一般的なので、これを認証に使用します。authorization セクションには、ツールの使用を認可するユーザーを定義します。module の値を authz_ownership に設定することで、users.conf ファイルに Web インターフェースへのアクセスを許可するユーザーを指定することができます。その場合の構成は、リスト 10 のようになります。

リスト 10. Cobbler Web インターフェースの認証および許可の構成
[authentication]

module = authn_pam

[authorization]
module = authz_ownership

このファイルを保存してください。次に必要なのは myuser という名前のシステム・ユーザーです (このシステム・ユーザーがない場合は、useradd myuser && passwd myuser によって作成します)。/etc/cobbler/users.conf を開いて、リスト 11 に示すように myuser を admins グループに追加します (このグループには、オブジェクトに対するフルアクセス権があります)。

リスト 11. 許可ファイルで myuser を admins グループに追加する
# Cobbler WebUI / Web Services authorization config file
#
# NOTICE:
# this file is only used when /etc/cobbler/modules.conf
# specifies an authorization mode of either:
#
#   (A) authz_configfile
#   (B) authz_ownership
#
# For (A), any user in this file, in any group, are allowed
# full access to any object in cobbler configuration.
#
# For (B), users in the "admins" group are allowed full access
# to any object, otherwise users can only edit an object if
# their username/group is listed as an owner of that object. If a
# user is not listed in this file they will have no access.
#
#     cobbler command line example:
#
#     cobbler system edit --name=server1 --owner=dbas,mac,pete,jack
#
# NOTE:  yes, you do need the equal sign after the names.
# don't remove that part.  It's reserved for future use.

[admins]

myuser = ""

構成作業はこれで終わりです。Cobbler と Apache サービスを再起動して、変更を適用してください。

service cobblerd restart
service httpd restart

この Web インターフェースは理解しやすいものになっています (図 2 を参照)。左側のメニューに、構成クラス (リポジトリー、システム、ディストリビューション、プロファイルなど)、リソース (構成管理用)、およびアクション (インポート、同期) が表示されます。構成クラスをクリックすると、画面の右側にすべてのオブジェクトが一覧表示されます。リストにフィルターを適用し、各項目の隣にあるボタン (「Edit (編集)」、「Copy (コピー)」、「Rename (名前変更)」、「Delete (削除)」) を使用して、さまざまなアクションを実行することができます。

図 2. Cobbler Webインターフェース
fhs 構成クラスおよびオブジェクトを表示する Cobbler Webインターフェースのスクリーン・キャプチャー

まとめ

システムのインストールを自動化して容易にするためのツールである Cobbler は、ネットワーク・ブートを使用してインストールを制御および開始します。Cobbler に備わっているその他の機能には、リポジトリー・ミラーリング、キックスタート・テンプレート機能、そして電源管理システムとの接続などがあります。

このツールの構成オブジェクト、およびこれらのオブジェクトの相互関係の説明から、Cobbler の内部設計が明らかになります。相互に関連付けられたオブジェクトと、オブジェクト間での継承の両方を基にした構造は、十分な抽象化をもたらして再利用を可能にし、それによってシステムのインストール環境を構成するタスクを容易にします。

この記事では、Cobbler をインストールして構成する方法に加え、Cobbler のコマンドを使用してマシンの自動インストールに適した構成を作成する方法を説明しました。そして最後に、日常的な作業を実行するための実用的な代替手段となる Web インターフェースをインストールし、構成する方法についても説明しました。

Cobbler によって、システム管理者の作業は単純なものになります。この記事では説明していない XML-RPC API、構成管理、そして koan クライアントなど、Cobbler をさらに強力なツールにしている機能についても詳しく調べてください。

参考文献

学ぶために

製品や技術を入手するために

  • Cobbler: ネットワーク・インストール環境の迅速なセットアップと、関連する多くの Linux タスクの自動化を可能にする、この Linux インストール・サーバーについて調べてください。
  • Cheetah: 主に Web 開発で使用される、このオープンソースのテンプレート・エンジン兼コード生成ツールの詳細を調べてください。
  • IBM ソフトウェア評価版を試し、次のオープンソース開発プロジェクトには開発者専用ソフトウェアを使って革新してください。IBM ソフトウェア評価版は、ダウンロードまたは DVD で入手できます。
  • IBM developer kits のダウンロード: システムを更新して、最新のツールとテクノロジーを入手してください。

議論するために

  • developerWorks コミュニティー: ここでは他の developerWorks ユーザーとのつながりを持てる他、開発者によるブログ、フォーラム、グループ、Wiki を調べることができます。

コメント

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Linux, Open source
ArticleID=935406
ArticleTitle=Cobbler によるシステム・インストールの自動化と管理
publish-date=07042013