Vagrant + Chef soloで仮想環境構築

  • Vagrantを使いVirtualBoxで仮想マシンをサクッと建てられる様に
  • Chefを使い、環境構築をサクッとできるように

全体像

VagrantとChefの役割は以下の通り。

  • Vagrant:仮想マシンの構築(OSインストール・初期設定)に使用
  • Chef:構築したマシンの内部の設定(パッケージインストール・設定)に使用

Vagrantでマシンを建てて、それぞれのマシンの内部の設定をChefが行う感じ。

なぜVagrantを使うのか?

Chefスクリプトを作るためにはテスト環境が必要。
ChefではRollbackができないので、毎回マシンを建て直してテストする必要がある。
これは本当に面倒くさそう。。。

そこで、仮想マシンをサクッと建てられるVagrantを使用する。

Vagrantを使用すると、Vagrantfileというファイルを作成し、あとはvagrant upコマンド1発で新しい仮想マシンを構築することができる。
Chefでテストするために使うだけであれば、サードパーティー(Vagrantboxes)が用意している仮想マシンのイメージを使えば、これだけで作業が済む。

Vagrantで仮想マシンを構築

Vagrantboxesの以下のイメージを使って構築する。

vagrant box add base http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130731.box

mkdir /path/to/hello
cd /path/to/hello

vagrant init base
vagrant up

chef-solo, knife-soloの導入

作業マシンからの作業

gem install chef
# もしくはこちら
# curl -L http://www.opscode.com/chef/install.sh | sudo bash
gem install knife-solo

# サーバにChefを導入
knife solo prepare <host>

Chefレポジトリの作成・Cookbookの作成

knife solo init <name>
cd <name>
git init .
git add .
git commit -m 'initial commit'

knife cookbook create hello -o site-cookbooks

Scientific Linuxにtmuxを導入する

かなり久しぶりの更新になります.
ここのところ,ここにメモを取るクセが無くなってましたね.
最近はメモをMarkdownでローカルに取ることが多いので,Markdownで書いた物をそのままアップすれば書き込めるブログサイトを探そうかな...

Scientific Linux(以下SL)にtmuxをインストールしようとしたら,なんとリポジトリに存在しない!

ググってみたところリポジトリの追加方法を見つけました.
http://tegetegekibaru.blogspot.jp/2012/08/tmux.html

# yum install yum-conf-epel

でEPELリポジトリを追加すればtmuxのパッケージも含まれるようです.

 

MongoDBが起動しない

MongoDBをUbuntuでインストールして、起動したのですがどうも起動しない。。。
/var/log/mongodb/mongodb.logのログを確認してみたら、HDDの容量が足りないという様なエラーメッセージが。
3.5GBほどJournalファイルというファイルを予め生成するようで、このファイル分の容量がないとサービスが起動しません。

とりあえずまだ試験段階で使うので、Journalファイルの生成を無効にしました。
/etc/monodb.confに

nojournal = true

という行を追加して、サービスを再起動すればOKです。

Cygwinのインストール方法

学科のCygwinインストールページが学内のみのアクセスで困っている人がいるということで書いてみました.

インストール手順

  1. http://cygwin.com/setup.exe にアクセスしてsetup.exeをダウンロード
  2. setup.exeを起動
  3. 「Cygwin Net Release Setup Program」画面で「次へ」をクリック
  4. 「Install from Internet」を選択し「次へ」
  5. 「Select Root Install Directory」画面では,特にインストール場所にこだわりが無ければ「次へ」
  6. 「Local Package Directory」はCygwinに必要なファイルをダウンロードしてくる場所です.邪魔にならない場所を選択します
  7. 普通の環境であれば「Direct Connection」で次へ
  8. 「Choose A Download Site」画面では「**.jp」というURLを適当に選択し次へ
  9. 「Select Packages」画面では,一覧の「All」のところをクリックし「Install」に変えて次へ(下記画像参照)
    1. この時,ダイアログボックスがいくつか出るがOKなどをクリックすれば次に進める

  • この後画面が出る場合と出ない場合があるが,もし出た場合は「次へ」をクリック

ここからおおよそダウンロードに2時間,インストールに2時間近くかかります.(回線速度によって左右される)

完了すると以下の画面になるので,完了をクリック

※4~5時間以上経っても進まない場合は,キャンセルして最初からやり直してください(インストールできたところから始めてくれます)
インストールの確認
例えば授業で使うgcc(GNU C Complier)のインストール確認は「Cygwin Terminal」を起動して,

gcc -v

と入力し以下のような出力が得られればOK

ざっと書いたので雑でしたね...