LoginSignup
10
11

More than 5 years have passed since last update.

Windows環境のVagrant上のChefDKでBerkshelf・chef-solo実行

Last updated at Posted at 2015-01-29

Windows上でBekrshelf × Vagrantの環境を構築しようと思ったら、意外と面倒だったので直接Vagrant上にChefDK(Chef Development Kit)で構築した手順をメモ。

Vagrantを準備

vagrant init #{Your Box}
# 好みに応じて
vagrant plugin install sahara
# Vagrant起動
vagrant up
# sandbox実行(saharaインストール時のみ)
vagrant sandbox on

ターゲットOSにChefDKの準備

Provisioning設定

ターゲットとなるOSにGitChefDKを準備する
provisioningに関する項目をVagrantfileに追記

ChefDK

ChefDKに関しては、各OS用のChefDKを公式サイトからダウンロード。

Git

Gitに関しては、yumでインストールするとバージョンが古いので、ソースからインストールすることとしている。

config.vm.provision "shell", inline: <<-EOT
  yum -y install zlib-devel perl-ExtUtils-MakeMaker gettext
  cd ~/
  wget https://www.kernel.org/pub/software/scm/git/git-2.1.0.tar.gz
  tar xvzf git-2.1.0.tar.gz
  cd git-2.1.0
  ./configure
  make & install
  wget https://opscode-omnibus-packages.s3.amazonaws.com/el/6/x86_64/chefdk-0.3.6-1.x86_64.rpm
  rpm -Uvh chefdk-0.3.6-1.x86_64.rpm
EOT

Vagrant reload & provisioningの実行

vagrant reload
vagrant provision

構築した環境の確認

vagrant ssh
git --version
#
bekrs -v
#
chef-solo -v
#

それぞれが無事にインストールされていることが分かる。

Berkshelfの準備・実行〜chef-soloの実行まで(おまけ)

Berkshelfの準備

Berkshelfを利用できるようにする
berks init
Berksfileを編集

※今回はrbenvをお試してでインストールする。

site :opscode

cookbook "git"

Cookbookの準備

berkshelfを用いて、Cookbookを外部から取得する。

Cookbookの取得
berks vender

nodeファイルの準備

nodes/localhost.rb

# recipe
{
  "run_list": [
    "recipe[git]"
  ]
}

solo.rbの準備

solo.rb

cookbook_path ["./cookbooks"]
log_level :info

必要に応じて、記述を追加
参考:solo.rb

Chef-Soloを実行

準備が整ったところで、chef-soloを実行

chef-solo -c solo.rb -j nodes/localhost.json
10
11
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
10
11