新刊ピックアップ

構成管理ツールを使ってみよう

この記事を読むのに必要な時間:およそ 1 分

Puppetとは

Puppetはサーバ構築や管理の自動化を行う構成管理ツールの1つです。2005年に最初のバージョンがリリースされたこの種の中でも歴史があるツールです。2017年9月現在の最新バージョンはバージョン5で,現在もPuppet社を中心に開発が続けられています。

Puppet社のWebページ

Puppet社のWebページ

構成管理ツールとは

構成管理ツールとは具体的などのようなものでしょうか。

先ほど「サーバ構築や管理の自動化を行うためのツール」と述べましたが,それは一般的によく言われているメリットであって,本来的には「サーバーを意図した状態にする」ためのツールと言うことができます。

「意図した状態にする」とは,⁠あるアプリケーションのバージョンをすべ同じものにする」などを指します。例えば,あるサーバーがまだバージョン2.2だった場合はバージョン3.0にするが,別のサーバーがすでにバージョン3.0だった場合は,特に作業は行われません。また,すべてのサーバーがすでにバージョン3.0になっていたら,そのときは何も作業が行われません。

このように,ある操作を何回行っても結果が同じになるという概念を冪等性(べきとうせい)と呼びます。構成管理ツールはこの冪等性を実現することで,サーバーの構築・管理を効率化しようとするツールです。

Infrastructure as Code

これまでサーバーの構築・管理を行う際は,1台1台サーバーを確認し,手動で作業する必要がありました。しかし,構成管理ツールを導入すると,⁠意図した状態」をコードという形で記述し,すべての対象サーバーにそれを反映することが可能になります。

このように,ソフトウェア開発と同様にコードを書くことで,インフラを構築したり,管理を自動化する仕組みを「Infrastructure as Code」と呼びます。Puppetもこの「Infrastructure as Code」を実現するツールの1つと言えます。

マニフェストとは

Puppetでは独自言語を用いて,⁠サーバーの意図した状態」をマニフェストというコードに記述していきます。以下の例を見てみましょう。

package {'ntp':
  ensure => installed,
}
service {'ntpd':
  ensure => running,
  enable => true,
  require => Package['ntp'],
}

この部分では,packageリソースによってntpパッケージをインストールし,serviceリソースによってntpdサービスの設定を行っています。これを実行すると,Puppetエージェントをあらかじめ導入しておいたサーバーをマニフェストに記述された状態に設定できます。

構成管理ツール導入のススメ

Puppetをはじめとする構成管理ツールは,簡単に導入できるものではありません。特にPuppetの場合は独自言語でマニフェストを記述するため,その習得コストがかかります。また得体の知れないツールをサーバーに導入することに抵抗がある人がいるかもしれません。導入に困難がつきまとうツールではありますが,実際に導入できると,そのメリットは計り知れないツールとも言えます。

もし興味を持たれた方がいれば,まず自分でツールに触れてみてどのようなツールなのかを実感し,もし自分にメリットを与えるツールだと思えたら導入を検討してみてはいかがでしょうか。