アプリなどを開発するブログ

React Native / Swift / Ruby on Railsなどの学習メモ。


chef + Vagrantを使ってみる手順

以下を前提とします。 - chef - knife-solo をMacに導入済。
Vagrantで仮想環境を作成済

なお、chef用語として、
ローカルMac = ワークステーション VM = Node
と呼ぶ。

Vagrant仮想環境ホスト名をsshに追加しておく

vagrant ssh-config --host ホスト名 >> ~/.ssh/config

ローカルにchef用レポジトリを作成

knife solo init レポジトリ名
こんなリポジトリができます。
  • cookbooks <= ネット上に共有されているものを入れる
  • environments
  • roles
  • data_bags
  • nodes
  • site-cookbooks <= 自分で作成/編集したものを入れる

Nodeをchef対応にする

knife solo prepare ホスト名

cookbookを作成

knife cookbook create dir名 -o site-cookbooks/

こんな感じの構成のディレクトリができる。
- CHANGELOG.md
- attributes
- files
- metadata.rb
- recipes
-templates
-README.md
-definitions
-libraries
-providers
-resources

recipes/default.rbを編集

以下を追加します。

log "hello world"

cookbookをnodeに反映

chef-repository/nodes/ホスト名.jsonに以下を追加

{
    "run_list":[
        "recipe[レシピ名]"
    ]
}