Chef Serverの特徴

Chef Serverには、次の特徴があります。

  1. システム構成・状態管理の一元化
  2. セキュアなノード管理
  3. グラフィカルなインターフェース

こちらも順にご紹介しましょう。

1. システム構成・状態管理の一元化

Chef Serverは、レシピとノードの関連付け設定を一元管理することができます。第2回でご紹介した各ノードのランリストや個別設定を行うJSONファイルはChef Serverで管理されます。Chef Serverを使用して、ランリスト設定の他、ノードの一覧表示や各ノードの設定確認を行うことができます。

次の例は、Knifeを使用して既に設定してある“chefclient01”ノードの設定値を表示したものです。設定済みのレシピは“Run List:”の行で確認します。

$ knife node show chefclient01
Node Name:    chefclient01
Environment: _default
FQDN:         chefclient01
IP:           192.168.5.72
Run List:     recipe[resolver], recipe[ntp], recipe[yum], recipe[apache]
Roles:
Recipes:
Platform:     centos 6.4
Tags:
$

また、Chef Serverを使用して各ノードのOSやネットワーク等、ノードの状態に関するデータを収集して確認することもできます。収集されるデータには、カーネルやCPUに関する詳細なデータの他、ネットワークやメモリの使用率も含まれます。以下の例は、Knifeを使用してノード関連データの詳細を一覧表示したものです。

$ knife node show chefclient01 –l
・・・省略・・・ 
os:               linux
os_version:       2.6.32-358.el6.x86_64
platform:         centos
platform_family:  rhel
platform_version: 6.4
・・・省略・・・ 
$

2. セキュアなノード管理

Chef Serverはシステム構成や状態を管理しているため、悪意を持った者に操作されると危険です。そのため、Chef Serverは、Workstationやノードと通信を行う際に認証を行い、認証登録されたユーザーやノードからのみリクエストを受け付けます。

認証登録は、chef-validatorと呼ばれているクライアントの認証キーを仮使用することで容易に行えます。認証登録を行っていない状態でも、chef-clientをはじめて実行する時にchef-validatorの鍵を配布しておくと、chef-clientはその鍵を使用して自動で認証登録を行います。なお、chef-validatorの鍵は、認証登録が済んだら削除することが奨励されています。chef-validatorについては、下記のページが参考になります。

> About the chef-client

3. グラフィカルなインターフェース

Chef Serverのインターフェースは、CUIのKnifeの他にWebUIも提供されています。WebUIを使用すると、視覚的な操作が可能になります。例えば、第2回でご紹介した、ランリストなどのノード設定も視覚的に設定・確認することができます。次の図は、chefclient01ノードのランリスト設定をドラッグ&ドロップで設定しているものです。

図5:Web UIによるランリストの設定(クリックで拡大)

ベアメタルマシンに対する構築

Chef Serverを使用してシステム構築・運用を行うためには、各ノードにchef-clientがインストール・設定されている必要があります。しかし、構築対象マシンの台数が多い場合、chef-clientの利用環境を人手で構築するのは大変です。そこで、この構築作業の自動化が重要になってきます。

図6:Chef Serverを使用した自動構築の流れ(クリックで拡大)

特に構築対象がベアメタルマシンであれば、OSのインストールやネットワークの設定も行う必要があります。

これらの作業を手動で行うと、OSのインストールをインストーラのGUIで対話的に行い、その後コマンド操作でアプリケーションのインストールや設定を行うことになります(図7の上部)。そこで、サイレントインストールやシェルスクリプトを使用して自動化します。

以下では、Red Hat系OSを対象としたネットワークブートとKickstartを組み合わせた方法をご紹介します(図7の下部)。

図7:chef-clientインストールの自動化(クリックで拡大)

まず、ネットワークブートとKickstartによるOSインストールに必要な全てのサービスやファイル等を格納したインストール用のサーバを用意します(下図のインストール用サーバ)。

図8:インストール用のサーバ(クリックで拡大)

次に、ネットワークブートやKickstartの設定を行い、OSやchef-clientを自動的にインストールするようにします。ネットワークブートとKickstartによるOSインストールの大まかな動きは下図の通りです。

OSインストールの細かな設定については、Chefからはなれてしまうため割愛し、参考資料をご紹介しておきます。

Red Hat Enterprise Linux 6 インストールガイド

図9:自動構築の流れ(クリックで拡大)

ここでは、OSインストール後のKickstartオプションであるShellスクリプトについて説明します。

(1)chef-clientのインストール

インストールサーバにchef-clientのRPMパッケージを格納したリポジトリを用意しておき、Yumコマンドを使用してchef-clientのインストールを行います。

(2)chef-clientの設定(認証登録、設定ファイルの配布)

インストールサーバのWebディレクトリにchef-clientの設定ファイル(client.rb)とchef-validatorの鍵(validation.pem)を格納しておき、Wgetコマンドを使用して所定の場所(上の例では、/etc/chef)に格納します。
chef-clientの設定ファイルでノード名を設定できるため、上の例ではechoコマンドを使用してホスト名を設定しています。(デフォルトはFQDN)

(3)chef-clientの実行

chef-clientコマンドを実行します。chef-clientが設定ファイルに記載されているChef ServerのURLにリクエストを行い、レシピを取得して構築を行います。

(4)chef-validator鍵の削除

認証登録用に取得したchef-validatorの鍵を削除します。

このようにして、ベアメタルマシンに対するchef-clientの利用環境を含めた自動構築ができるようになります。

Chef Server のインストールも簡単!

第2回でchef-solo/chef-clientのオムニバスインストーラをご紹介しましたが、Chef Serverも同様のインストーラが提供されています。例えばRed Hat系Linuxの場合、コマンド3行でインストールできます。簡単ですので、是非試してみて下さい。

# rpm -vih chef-server-11.0.8-1.el6.x86_64.rpm
# chef-server-ctl reconfigure
# chef-server-ctl test

Chef Serverのインストール要件は、以下のページが参考になります。
> System Requirements

この記事のキーワード :

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30