15
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Vagrant+Chef-Soloで、Play Frameworkが実行できる環境を作る

Posted at

Amazon.co.jp: 入門Chef Solo - Infrastructure as Code eBook: 伊藤直也: Kindleストア

をひと通り読んだので、Vagrant上のCentOSにPlay Frameworkが実行可能な環境を構築するレシピを作ってみました。

レシピ

実行手順はリンク先のREADMEに書いたので、軽く概要をまとめる程度にしたいと思います。(こうして書いてみると意外とやること多いのと、レシピを書く、人のレシピを使う際に色々用語が出てきて、一気にやると混乱すると思うので。)

VM and Vagrant

CentOSな仮想環境を構築するために使用。

設定はVagrantfileに書く。

Vagrantfileにシェルを書いて実行も出来るみたいだが、ここに色々書くのは無理があると思うので、Chef-Soloを使った次第。

Vagrantfileの設定項目

・box(仮想イメージ)の名前およびDL先

・プライベートネットワークの設定

・ホストとリモートの間で共有するディレクトリの設定

chefで操作できるようにする

sshでvagrant upしたCentOSにログイン出来るようにしておく

$ vagrant ssh-config --host hostname >> ~/.ssh/config

Chef-Solo側でレシピ作成および転送

knife solo

実際は殆どこのコマンド操作を行う。

// chefのレシピ集を置く雛形作成
$ knife solo init chef-repo
// リモートにchefを入れる
$ knife solo prepare hostname
// レシピ実行
$ knife solo cook hostname

レシピ作成

ここまでが準備で、ようやくレシピ作成に取り掛かれます。

Berkfileで、人が作ったレシピを使う

gemに対するbundler的な感じで、取得してきたいレシピを記述しておいてBerksコマンドで取得出来る。が、取ってきたやつを使うのにちょっと学習コストがあるかも。これはまた次の機会に解説したいと思います。

// Berksfileに追加
cookbook 'simple_iptables', git:"git://github.com/dcrosta/cookbook-simple-iptables.git"
// 直接gitを指定することも出来る
// このコマンドで取得する。pathは慣習的にcookbooksに入れる模様。
$ berks install --path cookbooks

自前のレシピを書く

// 自前はsite-cookbooksに置く模様
$ knife cookbook create play-install -o site-cookbooks

実行して欲しいリストを書く

今までの手順でやってるとchef-repo/nodes配下にhostname.jsonが出来ていると思うのですが、ここに記述されているレシピが実行されます。(つまり取得してきただけじゃ何も実行されない。)

// 基本的には自前、人の関係なく書ける。
{
  "run_list":[
    "recipe[simple_iptables]",
    "recipe[iptables]"
  ]
}

で、"knife solo cook hostname"を実行すれば…

まとめ

VM, VagrantをDL

chefをインストール

knifeの設定

レシピを書く、取ってくる

実行

意外とめんどくさいかもしれませんが、一度自分で動かして、レシピを自分で書く、人のレシピを取ってくるあたりまでやると大体概要がつかめてくるんじゃないかなと思います。

次回以降のネタ

・レシピ書く際にchef側に用意されてるコマンド(関数?)の使い方

・人のレシピ取ってきて使う際に設定するの意外とわかりづらいんだよなぁ…英語ばっかだし、の解説

15
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?