LoginSignup
8
9

More than 5 years have passed since last update.

knife-zeroの導入と簡単な使い方

Posted at

knife-zeroのインストールと簡単な使い方。
AWSのEC2内のインスタンスが前提。

chefDKインストール

chefの構成要素を一通り含まれているchefDKをインストール。
chefDKをインストールすればchef-zeroを使用することが可能。
chefDKを公開しているサイトからrpmを取得してインストール。

wget https://packages.chef.io/stable/el/6/chefdk-0.12.0-1.el6.x86_64.rpm
rpm -Uvh chefdk-0.12.0-1.el6.x86_64.rpm

knife-zeroインストール

kinfe-zeroはchefDKに含まれていないのでchefコマンドでインストール。

chef gem install knife-zero --no-document

リポジトリ作成

リポジトリを作成したいディレクトリでコマンドを実行。

chef generate repo chef-repo

kinfe-zeroを使用するための設定

ローカルモードを有効とする設定ファイルを作成。

cd chef-repo
mkdir .chef
echo 'local_mode true' > .chef/knife.rb

リモートサーバに対してbootstrap実行

リモートサーバをノードに追加。
追加されたノードをnode listコマンドで確認可能。

knife zero bootstrap infra -x ec2-user --hint ec2 --sudo
knife node list

bootstrapが完了するとnodeディレクトリ以下にjsonファイルが生成される。
ノード追加時に-Nオプションをつけるとノード名を指定することが可能。

クックブックの作成

サーバを構築するためのクックブックを作成。

knife cookbook create {クックブック名}

完了するとcookbook以下にクックブック名のディレクトリが作成される。

レシピの作成

例としてnginxインストールのレシピを作成。
cookbook/recipes/default.rbのファイルを次のように修正する。

default.rb
package 'nginx' do
    action :install
end

ノードにクックブックを登録

レシピを実行するためにノードにクックブックを登録する。

knife node run_list add {ノード名} {クックブック名}

レシピの実行

レシピを実行する。

knife zero converge '{ノード名}' --attribute ec2.local_ipv4 -x ec2-user --sudo -i {鍵のパス}

正常終了するとリモート先のサーバにnginxがインストールされる。

8
9
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
8
9