Chef・knife-solo・Berkshelf・Vagrantでローカル環境構築メモ

2014/05/21 | Linux , ,

  • Pocket
  • このエントリーをはてなブックマークに追加
  • 173 follow us in feedly

まえがき

Chef入門!とういうことでローカル環境でknife-solo・Berkshelfを使ってVagrantで環境を作ってみたのでメモ。

長々とやっていたので、忘れれてしまったところとかも多々あるかもしれないけれど、残しておく。

開発環境

  • 作業環境Mac(レシピ作って、knife soloを叩く)
  • 仮想環境 CentOS6.5 Vagrant
  • Vagrantはインストール済・仮想環境もとりあえず作成済み。『vagrant ssh』で仮想環境にログインできる状態にしておく
  • Chef 11.12.4

SSHで仮想環境にログイン出来る状態を作る

Vagrantに関しては以前に記事を書いたのでそちら参照

Vagrantはじめました。

Vagrantはじめました。

『~/.ssh/config』ファイルに以下の様な感じで追記

Host 192.168.33.*
  User vagrant
  IdentityFile ~/.vagrant.d/insecure_private_key
  IdentitiesOnly yes

これでIPアドレスが192.168.33.*のローカル環境に構築したVagrantの仮想環境にログインできるようになるはず。

ssh 192.168.33.10

みたいな感じでログインができればよろしい。

Chef・knife-solo・Berkshelfのインストール

以下の様な感じでとりあえず揃うはず。gem でインストールができるのは嬉しい

gem install chef
knife configure
# なんかきかれてもデフォルトでOK

gem install knife-solo
gem install berkshelf

chefのレポジトリを作成

knife solo initで簡単にひな形をつくることができる。

knife solo init chef-development-repo
cd chef-development-repo

git init

Berkshelfでレシピをダウンロード

Berkshelfとは

簡単にいえば、サードパーティのcookbookを簡単にダウンロードできるツール。

Berkshelfをつかってみる

レポジトリのディレクトリ直下に『Berksfile』を作成。そこにつらつらと、ダウンロードしてきたいレシピを書いていく。

source "https://api.berkshelf.com/"

cookbook 'zsh'
cookbook 'vim'
cookbook 'htop'
cookbook 'git'
cookbook 'ant'
cookbook 'mysql'
cookbook 'nginx'

githubのURLを入力したり、バージョンを指定することもできる。gemでいうGemfile的な動きをしてくれる。

後は、『berks vendor cookbooks』コマンドを実行すればダウンロードできる。ただ、cookbooksフォルダが存在する場合は一度フォルダを削除しないといけない。これは、以後Berksfileを更新して、再ダウンロードしたい時も同じでかなり面倒くさい仕様になっている。

なんか他のやり方があれば教えて下さい。

っで、cookbooks内にはこーんなかんじでレシピがいっぱい集まりました。

chef-knife-solo-berkshelf-1

chef-soloを実行する

ノードにchefをインストール

まず、仮想マシンのホストにもchefをインストールする必要がある。わざわざログインしてインストールする必要もなく、『knife solo prepare』コマンドを使うことでリモートでインストールすることができる

knife solo prepare 192.168.33.10

実行したいcookbookを書いてchef-solo実行!

さて、上記で『knife solo prepare』することでノードに対する設定ファイルが『nodes/192.168.33.10.json』として作成されました。

こいつの『run_list』の項目を編集して実行するcookbookを指定します

{
    "run_list":[
		"zsh",
		"vim",
		"git"
    ]
}

Chef Soloの実行

では最後にchef-soloを実行して、パッケージをダウンロード!

knife solo cook 192.168.33.10

以上、こんなかんじでやってみました。

あとがき

Vagrantでchefを実行するにはそれ用の設定をVagrantfile内に記述することができるようですが、今回はVagrant以外の環境でもうまくやれるようにと考えて以上のようなやり方にしました。

おすすめ書籍

Chef実践入門 ~コードによるインフラ構成の自動化 (WEB+DB PRESS plus)
吉羽 龍太郎 安藤 祐介 伊藤 直也 菅井 祐太朗 並河 祐貴
技術評論社
売り上げランキング: 305

2014/05/21 | Linux , ,

関連記事

Vagrantの仮想マシン内のRubyバージョンを2.0にした時のメモ

まえがき 結構久しぶりのめも。ここ1周間モンハン4で忙しかったためブ...

記事を読む

no image

PostgreSQLをインストールしたときのメモ

まえがき ちょっとPostgressを触りたくなったのでインストールし...

記事を読む

VagrantでSaharaプラグインを使ってサンドボックモードをやってみる。

まえがき 最新vagrant・chefなどのモダンなインフラ周りの技術...

記事を読む

no image

VagrantでIPアドレスの割り当てに失敗したときの解決策

まえがき 自分で新しいパッケージを作成して、ボックスに追加し、そこから...

記事を読む

HelloVagrant_2HelloVagrant_1.png

Vagrantはじめました。

まえがき Vargrantを色々触ってみたので導入メモを残しておきま...

記事を読む

新着記事

no image

PHPでRubyのirbっぽいインタラクティブなスクリプトが実行できる「boris」

まえがき PHPでもRubyのirbみたいなことがしたくて探してみたと...

記事を読む

2015年の抱負と去年の振り返り〜よちよちWEB業界1年経験して〜

まえがき あけましておめでとうございます。今年もどうぞよろしくお願いし...

記事を読む

Java SE 7 Bronze試験(1Z0-802)を受けてきました

まえがき 以前から少し受けてみたかった試験『Java SE 7 Bro...

記事を読む

HubotでJenkinsのジョブを実行する

まえがき HubotをつかってJenkinsのジョブをじっこうしてみた...

記事を読む

no image

Hubotをforeverでデーモン化する

まえがき 今回はHubotをforeverを使ってデーモン化してみた時...

記事を読む

スポンサーリンク

PAGE TOP ↑