blog/content/post/2013-03-31-setting-up-infra...

5.6 KiB
Raw Blame History

title author date excerpt url has_been_twittered tmac_last_id categories
Chefを用いたインフラの自動構築 kazu634 2013-03-31 Chefをインストールし、レシピを作成できるようになるまでを扱っています。 /2013/03/31/setting-up-infrastructure-by-chef/
yes
358571152655921155
chef
インフラ

今年の夏にかけて Windows サーバ 200 台ぐらいと Solaris サーバ 40 台ぐらいのセットアップを控えています。「OSの構築などはスクリプトで自動化」という方針でこれまで準備を重ねてきているのですが、スクリプトから読み込む設定ファイルのバージョン管理が。。。というありがちな状態です。これなら手動でやったほうが…といういけてない状態だったりします。

前書きはこのへんにして、各所でインフラ自動構築を行う Chef が流行っているので、使ってみました。お仕事でスクリプトを書いて実施していることがかなり簡単に実現できて感激しています。

何がそんなにいいわけさ

特にChefの概念で言う「冪等性」が素晴らしい。OSやその上で導入するパッケージの設定項目が同一であることを監視できると言えばいいのでしょうか。何台も同じ設定のサーバを構築していると、手動作業ではミスがありえますが、自動化をすることで同一であること、あるべき姿から外れていないことが、簡単に担保できるようになります。入門Chef Solo Infrastructure as Codeには次のように記載されています:

「ソフトウェアのインストールやサーバーの設定変更を自動化する」というのがChefの機能のわかりやすい説明ですが、より本質的に捉えるならそれは「サーバーの状態を管理して、それをあるべき状態に収束させるフレームワーク」ということです。

これって、すごいことです!!!

前提条件

検証した環境は Ubuntu 12.04 です。Chefのレシピを作成する環境を作るまでを扱います。

使ってみる!

こんな順番で進んでいきます:

  1. Rubyのインストール
  2. knifeのインストール
  3. knife-soloのインストール

Rubyのインストール

rbenvでRubyを自前で導入してみます。

aptitude install libreadline-dev libssl-dev zlib1g-dev libssl1.0.0

git clone git://github.com/sstephenson/rbenv.git ~/.rbenv

git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile

echo 'eval "$(rbenv init -)"' >> ~/.bash_profile

exec $SHELL -l

rbenv install 1.9.3-p392

rbenv rehash

rbenv global 1.9.3-p392

chefのインストール

次のコマンドを実行します:

gem install chef

rbenv rehash

knife-soloのインストール

次のコマンドを実行します:

gem install knife-solo

rbenv rehash

以上です。


入門Chef Solo - Infrastructure as Code
伊藤直也 (2013-03-11)
売り上げランキング: 15