chefをつかってみる ~インストール編~
最近社内でもっぱらサーバ設定がらみの障害が出ており、構成もマシンごとに異なっていてちゃんと管理されておらず、これは自動構成管理ツールを導入しなきゃいけないなと感じたので、軽くchefについて調べてみました。
・ソフトウェアのインストール状況や設定ファイルを定義した状態に収束させる(冪等性)
・類似ソフトとして"Puppet"がある
・クライアント-サーバ型の構成(クライアント:管理されるコンピュータ)
・2つの動作モードがある。
chef-server ⇒ 上記で示したクライアント-サーバ型の構成動作モード
chef-solo ⇒ 単体でChefを動作させるモード
参考
http://jp.rubyist.net/magazine/?0035-ChefInDECOLOG#l8
chefマシンを作ってしまえば自動&遠隔でサーバ構築ができる、構築スクリプト(ruby&jsonで記述)をコードとして管理できるという部分が魅力的だと思います。
(chef-severは構築で軽く死ねるらしいので...)
VMWarePlayerでUbuntu13.0.4を動かして、そこにインストールしてみました。
chefを動作させるのにrubyも必要なので、まずそこから構築を...
※rbenvでrubyを入れるので、rvmを使っていれば先に削除してください。
chef(シェフ)とは
・ruby製のサーバ構成管理ツール・ソフトウェアのインストール状況や設定ファイルを定義した状態に収束させる(冪等性)
・類似ソフトとして"Puppet"がある
・クライアント-サーバ型の構成(クライアント:管理されるコンピュータ)
・2つの動作モードがある。
chef-server ⇒ 上記で示したクライアント-サーバ型の構成動作モード
chef-solo ⇒ 単体でChefを動作させるモード
参考
http://jp.rubyist.net/magazine/?0035-ChefInDECOLOG#l8
chefマシンを作ってしまえば自動&遠隔でサーバ構築ができる、構築スクリプト(ruby&jsonで記述)をコードとして管理できるという部分が魅力的だと思います。
早速いれてみる
chefの動きを体験するだけならchef-soloで十分みたいなので、今回はchef-solo導入用です。(chef-severは構築で軽く死ねるらしいので...)
VMWarePlayerでUbuntu13.0.4を動かして、そこにインストールしてみました。
chefを動作させるのにrubyも必要なので、まずそこから構築を...
※rbenvでrubyを入れるので、rvmを使っていれば先に削除してください。
①rbenvでrubyをインストール
# rubyに必要な開発パッケージ
# sqliteはrailsに必要なやつだけどついでに
sudo apt-get install curl g++
sudo apt-get install zlib1g-dev libssl-dev libreadline-dev
sudo apt-get install libyaml-dev libxml2-dev libxslt-dev
sudo apt-get install sqlite3 libsqlite3-dev
# gitをインストール
sudo apt-get install git
# githubからrbenv、ruby-buildを取得してインストール
git clone git://github.com/sstephenson/rbenv.git ~/.rbenv
git clone git://github.com/sstephenson/ruby-build.git ~/plugins/ruby-build
mv ~/plugins ~/.rbenv
cd ~/.rbenv/plugins/ruby-build
sudo ./install.sh
# rbenvをPATHに
# ついでにsudoをユーザのPATHで実行できるようにする
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
echo 'alias sudo="sudo env PATH=$PATH"' >> ~/.bashrc
source ~/.bashrc
# インストールできるruby一覧
rbenv install -l
# rubyをインストール
rbenv install 1.9.3-p429rbenv rehashrbenv global 1.9.3-p429ruby -v
# 便利gem# 今回はchefに触れるだけなのでbundlerは入れないgem install rbenv-rehashrbenv rehash
②chefをインストール
# chefをインストールgem install chef# knifeの初期化(knifeはchefリポジトリを操作するツール)# 質問は全てデフォルト(入力せずにエンター)knife configure
はい、見てのとおりほとんどrubyのインストール手順になりました。
まぁchefがgemで提供されている以上、しょうがないと思いますが。
(パッケージ版のchefもあるようで、chef-severはそちらのほうが楽だとか。。)
ちなみに上記手順を実行した結果、現時点(2013/05/29)では下記のバージョンのchefがインストールされました。
chef (11.4.4)
実行編では上記のバージョンを前提にします。
また、下記の書籍が大変参考になったので、興味のある方は是非。