LoginSignup
1
1

More than 5 years have passed since last update.

Chef+Vagrantで環境構築(基本コマンド)

Last updated at Posted at 2016-04-23

Vagrantで仮想サーバーを立ち上げ

Vagrantの初期化

ターミナル
$ vagrant init <Box名>

Vagrantfileが作成される

SSHの設定

ターミナル
$ vagrant ssh-config --host <ホスト名> >> ~/.ssh/config

vagrant ssh-configコマンドでssh config向けの設定が出力されるので、それを~/.ssh/configにリダイレクト
それにより、ssh <ホスト名>でログインできるようになる

仮想サーバーのネットワーク設定

Vagrantfile
Vagrant.configure(VAGRANT_API_VERSION) do |config|
    config.vm.network "private_network", ip: "192.168.33.10"
end

プライベートネットワークを記述することにより、192.168.33.10で接続できるようになる

Vagrantの起動

ターミナル
$ vagrant up

knife-soloでchef-soloをリモート実行

knife-soloを使うことでホストOSでクックブックを作成してリモートサーバーに転送しchef soloコマンドを実行する一連の作業を自動化できる

knife-soloのインストール

ターミナル
$ gem install knife-solo

インストールされるもの
・Chef
・knifeコマンド

Berkshelfのインストール

knife-soloは、他のgemのインストール有無によってデフォルトのオプションが変化するので、事前にBerkshelfのインストールも行う

ターミナル
$ gem install berkshelf

Berkshelfは、クックブックの依存関係を管理するもの
(Gemfileのようなもの)

knife-soloリポジトリを作る

ターミナル
$ knife solo init .

このコマンドによりローカル側にChefに必要な各種ファイルとディレクトリが展開される

ホストOSからゲストOSにChef Soloをインストールする

ターミナル
$ knife solo prepare <ホスト名 or IPアドレス>

ホストOSからゲストOSでchef soloコマンドを実行

ターミナル
$ knife solo cook <ホスト名 or IPアドレス>

(補足)ホストOSからChef soloのインストールと実行を同時に行う

ターミナル
$ knife solo bootstrap <ホスト名 or IPアドレス>

クックブックの作成

knifeコマンドでクックブックの作成

ターミナル
$ knife cookbook create <クックブック名> -o site-cookbooks

自作のクックブックはsite-cookbooksに置く

レシピの編集

(例)site-cookbooks/dstat(クックブック名)/resipes/default.rb(例)
package "dstat" do
    action :install
end

Nodeオブジェクトでサーバーの状態を記述

Nodeオブジェクトは任意のノードの状態を記述するためのJSON形式の設定ファイル
knife solo prepare(knife solo bootstrap)の際にnodesディレクトリに<ホスト名.json>という名前で作成されている

Nodeオブジェクトに設定を記述

(例)nodes/ホスト名.json
{
    "run_list":[
        "recipe[dstat]"
    ]
}

上記の例はノード(ホスト名)にdstatのレシピが適用されるという状態を定義している

(注)このrun_listへの追加をせずにchef soloコマンドを実行するとレシピが実行されないので忘れないようにする必要がある

ホストOSからゲストOSでchef soloコマンドを実行

ターミナル
$ knife solo cook <ホスト名 or IPアドレス>

これによりレシピがノード(ホスト名)に適用される
実際にはrsyncでローカルからリモートにクックブックが転送され、SSH経由でsudo付きでchef soloコマンドが実行されている

参考

Chef実践入門2章

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