LoginSignup
0
0

More than 5 years have passed since last update.

chef-zero + knife-zero + vagrantで開発環境と本番環境を構築

Last updated at Posted at 2015-07-27

開発環境構築(vagrant + chef-zero)

参考情報

本番環境構築(knife-zero)

参考情報

前提条件

  • プロジェクトがchef-repo構造になっていること
  • 本番環境のサーバが用意されていること

インストール

Gemfileに以下を追加

# Gemfile:

gem 'chef'
gem 'chef-zero'
gem 'knife-zero'

インストール

bundle install --path vendor/bundle --binstubs

chefのenvironmentを作成

$ ./bin/knife environment create staging
Created staging
$ ./bin/knife environment create production
Created production

knife zero実行

以下のコマンドを実行します

./bin/knife zero bootstrap your-site.example.com --identity-file ~/.ssh/xxx.pem --ssh-user xxx --sudo --use-sudo-password

(注意: ~/.ssh/configに設定を記述していたとしても、オプションでidentity-fileとssh-userを指定する必要があります)

コマンドを実行すると対象のサーバにchefがインストールされ、ローカルにnode/your-site.example.com.jsonが作成されます

nodeファイル修正

chef_environmentやrun_listを設定します。

# nodes/your-site.example.com.json: 

{
  "name": "your-site.example.com",
  "default": {
    "fqdn": "your-site.example.com"
  },
  "normal": {
  },
  "chef_environment": "production",
  "run_list":[
    "role[common]"
  ]
}

chef_client実行

chef_clientを実行して、run_listで指定されたライブラリをインストールします。

./bin/knife zero chef_client "fqdn:your-site.example.com"

注意事項

現時点では、knife-zeroはsite-cookbooks以下のCookbookを参照することができない。

Knife-ZeroでCookbookの作成/実行/削除&git cloneコマンドでCookbookの取得 (1/2)

 本来のChefの作法では、個人で作成したCookbookは「chef-repo/site-cookbooks」に格納し、Chef社が公開しているCookbookや第三者が作成したCookbookを「chef-repo/cookbooks」に格納することが推奨されています。
 しかし2015年3月現在、Chef-Zeroの仕様で、「site-cookbooks」配下を参照しないため、個人作成のCookbookを「chef-repo/cookbooks」に作成するような手順としています。

0
0
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
0
0