ぼっちエンジニアのリーンなブログ

リーン・スタートアップ、プログラミングなどについてまとめます

Chefのセットアップ

Chefのセットアップ方法についてのメモ

インストール

  • rubyのインストール
    省略します
  • chefのインストール
gem install chef --no-ri --no-rdoc # chefの本体
  • knife-soloのインストール
gem install knife-solo --no-ri --no-rdoc # chef(knife)のプラグイン
  • knife-solo_data_bagのインストール
gem install knife-solo_data_bag --no-ri --no-rdoc # knife-soloのdata bag用プラグイン
  • berkshelfのインストール
gem install berkshelf --no-ri --no-rdoc # サードパーティのクックブックを管理しやすくするgem

初期設定

ディレクトリの作成

knife solo init chef-directory

## 下記のようなフォルダができるはず
$ tree chef-directory/
chef-directory/
├── cookbooks
├── data_bags
├── environments
├── nodes
├── roles
└── site-cookbooks

Chefの初期設定を行う

knife configure # knifeはchefのインストールで一緒に入るコマンド。色々聞かれるが全てEnterで良い

自分のクックブックの作成

上で作成したディレクトリにて下記を実行

knife cookbook create <COOKBOOK NAME> -o site-cookbooks/

サードパーティ製のクックブックを利用する

サードパーティ製のクックブックはここで探しましょう
Berkshelfを利用します。ディレクトリのルートにBerksfileを作成する

vim Berksfile

Berksfileは下記のようになります

source "https://supermarket.chef.io"
cookbook 'yum' # 探してきたクックブックを貼る(バージョン指定は cookbook 'yum', '~> 3.8.2'のようにやる)
cookbook 'mysql'

次のコマンドでサードパーティのクックブックがcookbooksディレクトリに入ります

berks install

実行前のサーバの登録

IPアドレス指定+鍵でもいけますが、個人的には~/.ssh/configにサーバを登録することをおすすめします。簡単なので

vim ~/.ssh/config

# 下記を記述
Host server-name
  HostName <IP Address> # IPアドレスを記述
  User <username> # ログインするユーザ名を記述
  Port 22
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile <SSH key path> # SSH鍵へのパスを記述
  IdentitiesOnly yes
  LogLevel FATAL

サーバへのインストール

knife solo prepare server-name # 最初に一回だけ必要
knife solo cook server-name