OSの設定やミドルウエアのインストールなどサーバー環境の構築を自動化するChef。ただし、実際に設定通りに環境が構築されたかどうかのテストは対象外で、これには手作業が必要だった。Serverspecは、この課題の解決策となる。

NTTデータの錦織真介氏
NTTデータの錦織真介氏

 「サーバーのOSやミドルウエアを設定してテストする環境構築の作業を、複数のツールを組み合わせることで自動化した。数十台のサーバーでも、数分で終えられる」。NTTデータの錦織(にしごり)真介氏(第三法人事業本部 交通・流通事業部 サービスインテグレーション担当 課長)はこう言って胸を張る。

 錦織氏らのチームは当初、Chefを単体で使い始めた。2013年春のことである(図1上)。

図1●ChefとServerspecを組み合わせてサーバー設定、テストを効率化
図1●ChefとServerspecを組み合わせてサーバー設定、テストを効率化
NTTデータの流通業向けシステム構築チームは、ChefとServerspecを組み合わせて用い、環境構築作業を自動化した
[画像のクリックで拡大表示]

 Chefは、「クックブック」や「レシピ」と呼ぶ設定コードの記述通りにサーバー環境を構築するが、実際に設定通りの環境が構築されたかどうかをテストする機能は備えていない。そのため錦織氏らは手作業で確認した。「パラメーターシートを用意し、項目を一つずつ目視で確認すると、1台当たり数時間を要した」(錦織氏)。

 そこで同年夏に、Chefと組み合わせてServerspecの利用を開始した。Serverspecは、インストールされたミドルウエアの有無、OSやミドルウエアの設定内容、起動しているプロセスなどを自動的にテストするツールだ。

 錦織氏らのチームは、Chefによるサーバー環境構築と、Serverspecによるテストを、一連の作業として自動化するため、Jenkins、Chef用のリモートコマンド実行ツール「knife」も組み合わせた仕組みを作った(図1下)。Jenkinsが司令塔になってChefとServerspecに作業を指示する形態であり、knifeはJenkinsからChefへの指示を仲介する。

 インフラ担当者がJenkinsでジョブを実行すると、Jenkinsがknifeを介してChefに指示。Chefは設定コードを実行し、サーバーに対してミドルウエアのインストールや設定を行う。Jenkinsは、Chefから作業完了のメッセージを受け取ると、Serverspecに指示。Serverspecはテストコードを実行する。Serverspecによるテストも完了すると、Jenkinsは作業完了をインフラ担当者にメールで伝える。

 錦織氏らのチームは、この一連の流れを、Jenkinsのプラグイン「Build Pipeline Plugin」を使って可視化した。作業の進行状況やエラーの有無をブラウザーで確認できる。

 錦織氏は「Serverspecによって、サーバー環境構築のテストの7~8割は自動化できた。ただ、サーバーの電源を落とした場合の挙動など、ハードウエアがかかわるところは自動化できておらず、手動でテストしている」と説明する。

この先は日経クロステック Active会員の登録が必要です

日経クロステック Activeは、IT/製造/建設各分野にかかわる企業向け製品・サービスについて、選択や導入を支援する情報サイトです。製品・サービス情報、導入事例などのコンテンツを多数掲載しています。初めてご覧になる際には、会員登録(無料)をお願いいたします。