Itamaeが構成管理を仕込みます! ~新進気鋭の国産・構成管理ツール~

第1回 シンプル・軽量な構成管理ツールItamae

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

はじめに

はじめまして。クックパッド株式会社の荒井@ryot_a_raiと申します。

今回から全5回,構成管理ツールであるItamaeの入門から実際の活用例までを解説していきます。今まで構成管理ツールを使ったことがなかった方から,Itamaeをすでに使っている方まで,ぜひご覧ください。

Itamaeとは

Itamaeは筆者が中心となって開発を進めているオープンソースの構成管理ツールです。同様のツールとしてはPuppet,Chef,Ansibleなどが有名ですが,ItamaeはChefに影響を受けています。Chefの記述性・柔軟性を持ちながら,シンプルで導入しやすい構成管理ツールを目指して開発が進んでいます。

構成管理ツールの必要性

Itamaeの解説を始める前に,構成管理ツールを使う理由について軽く考えてみたいと思います。

  • サーバ構築の自動化
    • 手動構築の手間と時間を減らす
    • 手動構築による人為的ミスの防止
  • サーバの状態のコード化
    • GitHub上でのPull Requestベースワークフローでのレビュー
    • サーバの設定変更履歴の管理
    • Serverspecなどのテストフレームワークによるテスト・継続的インテグレーション

構成管理ツールを導入し,サーバ管理を自動化することによって以上のようなメリットを得られます。Itamaeは低コストで導入できるので,いままで構成管理ツールを使っていなかった方もこの機会に導入するのはいかがでしょうか。

Itamaeと他の構成管理ツール

Itamaeと他の構成管理ツールの違いを見てみましょう。まず,サーバの状態をどのような言語で記述するかです。Puppetは独自言語,AnsibleはYAML,ChefはRubyです。Puppetの独自言語は柔軟ですが構成管理ツールを使うために学習する必要があります。YAMLはシンプルでわかりやすいですが,少し複雑なことや動的な設定を行うとなると独自の記法を学ぶ必要が出てきます。このため,個人的にはChefのRuby DSLを気に入っていました。

Chefは柔軟で簡潔にサーバの状態を記述できますが,一方,覚えるべき概念が多かったり,周辺のツールのインストールで手間取ったりなど,構成管理を自動化したいだけなのに超えるべきハードルが多かったりしました(個人の感想です)。これはChefが非常に高機能で,巨大なエコシステムを持っているためで,メリットでもありますが,逆にデメリットにもなりえます。

このような背景で,Ruby DSLで記述できるシンプルな構成管理ツールを開発することにしました。

このようにItamaeは特別新しい概念・機能を持っているものではありませんが,できるだけツールの学習コストを下げ,構成管理の自動化を最短距離で実現するために開発されています。

インストール

では,早速Itamaeを使ってみたいと思います。本連載ではUbuntuの仮想マシンをVagrant(VirtualBox)上で動かし,実際にItamaeを使っていきます。本連載の手順はMac上で動作確認していますが,VirtualBoxとVagrantが動く環境であればどのプラットフォームでも動くと思います。

VirtualBox,Vagrantのインストール

Downloads – Oracle VM VirtualBoxからVirtualBoxをダウンロードしインストールします。その後,Installing Vagrant - Vagrant Documentationに従ってVagrantをインストールします。

Ruby,Itamaeのインストール

まずVagrantを利用して仮想マシンを起動します。

$ mkdir itamae-gihyo
$ cd itamae-gihyo
$ vagrant init ubuntu/trusty64
$ vagrant up

その後,Rubyをインストールします。ItamaeはRubyで書かれているため,動作にはRubyが必要です。Rubyのインストール方法についてはRubyの公式ページをご覧ください。以下ではBrightboxのレポジトリを使ってRuby 2.2.2をインストールします。

$ vagrant ssh
vagrant@vagrant-ubuntu-trusty-64:~$ sudo apt-add-repository ppa:brightbox/ruby-ng
vagrant@vagrant-ubuntu-trusty-64:~$ sudo apt-get update
vagrant@vagrant-ubuntu-trusty-64:~$ sudo apt-get install ruby2.2
vagrant@vagrant-ubuntu-trusty-64:~$ ruby -v
ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-linux-gnu]

Rubyがインストールできたらgemコマンドを使ってItamaeをインストールします。

vagrant@vagrant-ubuntu-trusty-64:~$ sudo gem install itamae
vagrant@vagrant-ubuntu-trusty-64:~$ itamae version
Itamae v1.4.2
パッケージ管理システムによるItamaeのインストール

Itamaeをインストールするためのもう一つの方法はパッケージ管理システムによるインストールです。このパッケージを使うことで独立したRubyがインストールされ,一発でItamaeが使えるようになります。

Chef社が開発してるOmnibusというツールを利用して作成されたItamaeのパッケージを利用することができます。現在,ビルド済みのパッケージはUbuntu 14.04(Trusty)用のもののみ提供していますパッケージレポジトリ)。未検証ではありますが,omnibus-itamaeを自分でビルドすればDebian,Ubuntuの他バージョン用のdebパッケージや,RHELやCentOS用のrpmパッケージも作成できるはずです。ぜひご活用ください。

著者プロフィール

荒井良太(あらいりょうた)

クックパッド株式会社 インフラエンジニア。ソフトウェアでのインフラの改善,運用の自動化に興味があり,オペレーションのない世界を夢見ている。休日はOSS活動をしていることが多い。ItamaeInfratasterの開発者。

URL:http://ryotarai.info

コメント

コメントの記入