環境構築自動化の手順と評価検証、Puppetの基礎知識:新人インフラ技術者のためのサーバー構築/運用自動化入門(1)(2/2 ページ)
サーバー構築の自動化で利用される技術、自動化ツールとして「Kickstart」「Puppet」を紹介し、構築から運用まで、システムライフサイクル全体にわたる運用管理の自動化についても解説する連載。
自動化ツール「Puppet」
PuppetはRubyで実装、Apache Licenseの元で配布(2.7.0以降)されています。Puppet Labsによって開発が推進されており、商用の「Puppet Enterprise」とOSS版とがあります(本連載ではOSS版を用います)。
PuppetはUNIX系OSのシステム管理を自動化します(Windowsでも動作しますが、UNIX系と一部違いがあります)。パッケージのインストール/アンインストール、設定ファイルやアプリケーションデータなどの配布や修正、サービスの起動設定や再起動処理、特定コマンドの実行といった、システム管理で必要な作業を人間の代わりに実行します。
これらの作業を「Puppet言語」と呼ばれる、独自の宣言型言語によって記述します。このPuppet言語で記述されたファイルを「マニフェスト」と呼びます。特定の作業を実行するマニフェストを汎用化してモジュール化し、汎用の開発言語のライブラリのような感覚で呼び出すこともできます。
Puppet言語ではPuppetの機能を「リソース」という概念で管理しています。例を挙げるとユーザー作成と管理をしたい場合には「ユーザーリソース」を呼び出して適切な情報を定義するといった具合です。
Puppetについては、次回以降に詳しく説明します。
自動構築の評価検証
では、実際にここで紹介した自動化技術を利用すると、どの程度サーバーの環境構築を効率化できるのでしょうか? 筆者の所属するNTT OSSセンタでは、PXE、Kickstart、Puppetを組み合わせた仕組みを使い、Web3層(LB/Webサーバー×2台、アプリケーションサーバー×2台、DBサーバー×1台)を手作業と自動構築のニ通りで構築し、それぞれかかった時間を計測する検証を実施しましたので、ここで紹介します。
評価は公平を期すため、自動構築の場合は1台目構築時に自動構築で必要なサーバーを準備する時間を加算して計測し、2台目以降は1台目で準備したサーバーを流用する前提で計測しました。
また作業者のスキルによる差をなくす目的で、手動と自動の双方の作業を1人の同じ作業者が実施しました。
検証の結果、同じシステムを構築する場合、手動構築と比較して自動構築では3分の1の時間で作業が完了しました。作業者が不慣れであった場合はさらに差が広がると予想できます。また作業ミスによる中断も発生するかもしれません。これらの結果から、自動構築は満足できる結果をもたらせると判断しています。
次回は、サーバーの準備とPXE+Kickstart
今回は自動構築の概要説明でした。次回からは自動構築に必要なサーバーを構築して、実際にサーバーを自動構築します。次回はPXEブートに必要なサーバーとKickstartについてお話します。お楽しみに。
K男 自動化ってどういうものか想像できたかな?
R子 う〜ん、何となく分かったような分からないような……。
K男 まあ、話だけ聞いても理解しにくいのは分かるよ。それじゃ実際にサーバー構築して実感してみよっか。体験するのが一番! とりあえず明日までに手作業で10台作っておいてね。はい、これ手順書。
R子 えっ? えええええっ!?(泣)
著者プロフィール
菅原亮(すがはら りょう)
所属:NTT OSSセンタ シニア・エキスパート
1973年生まれ。10歳の時プログラミングに目覚める。
1994年にFM-TOWNS上でLinuxを使い始めて以来、仕事趣味問わずOSSシステムを構築するようになる。
2012年よりOSSシステムの構築自動化に取り組み始め、昔の苦労を懐かしみつつ自動化の普及促進に取り組んでいる。
個人ではNTSyslog日本語対応版など主にWindows用アプリを手掛ける。
趣味は家庭菜園と料理の手動構築で愛車はシルビア。
関連記事
- CloudStackによるプライベートクラウド構築術(8):ChefのKnifeでCloudStackを操作する方法
knife-cloudstackを用意してコマンドラインでCloudStackを操作してみよう。基本コマンドのリファレンスも紹介する - PowerShell DSCで始めるWindowsインフラストラクチャ自動化の基本:PowerShell Desired State Configuration(DSC)とは(前)
Windows OSの設定や構成を変更する場合、GUIの管理ツールを使うのが一般的である。だが台数が多かったり、構成変更や以前の構成への復旧などが頻繁だったりするとGUIでは非常に面倒だし、間違いもしやすくなる。こんな場合はPowerShell DSCを使ってインフラ構築作業を自動化するとよい。 - OSS「JobScheduler」で実現するこれからの運用自動化(1):JobSchedulerの機能と設定〜基礎編
本連載では運用管理の一要素である「バッチジョブ管理」に着目し、より効率よいバッチジョブ管理を実現するためのツールであるオープンソースの「JobScheduler」について解説します。 - クラウド&DevOps時代の運用をZabbixで(3):DevOps実践に有用なZabbixの機能〜自動化機能で運用負荷削減
ますますクラウド化が進む環境において、システムにはより迅速な対応が求められるようになっています。変化の早いシステムを適切に運用していくためにはどうすればいいのでしょうか? この記事では、クラウドやDevOpsを前提としたITシステムの「運用」に求められることを整理し、そういった運用に対して、オープンソースの統合監視ツール「Zabbix」がどのように有効活用できるかを紹介します。 - 運用自動化ツールまとめ(国内ベンダ編):工数削減だけじゃない、自動化ツールの真のメリット
運用自動化というと「人員削減」「コストが掛かる」といったネガティブな見方をする向きも多い。だが仮想化、クラウド時代において運用自動化とはそれほど単純なものではない。国内ベンダ4社のツールに真の意義を探る。 - 運用自動化ツールまとめ(外資ベンダー編):運用自動化ツールは経営の武器へ
運用自動化というと「コスト削減」「効率化」といったイメージが強いが、攻めの経営を支える武器となるものでもある。後編では外資ベンダー3社の運用自動化ツールを紹介する。
Copyright © ITmedia, Inc. All Rights Reserved.