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