LoginSignup
75
73

More than 5 years have passed since last update.

Chef を使ってみた

  • Chef を使用するとサーバの環境構築が自動化できると聞いて、初歩的なパッケージインストールまでをやってみた
  • AWS EC2(Ubuntu) に Apache をインストールする

簡単な用語説明

  • node : 環境設定をしたい対象となるサーバ
  • workstation : 設定内容を記載するファイルの作成や管理をするクライアント
  • Recipe : 設定内容を記載するファイル、Ruby で書く

事前準備

workstation

$ curl -L https://www.opscode.com/chef/install.sh | sudo bash
  • knife-solo のインストール
$ sudo gem install knife-solo
  • $ gem list で 2 つがインストールされていることを確認
  • knife コマンドの初期設定を行う
$ knife configure

node

  • AWS EC2 の Ubuntu Server を対象とする
    • インスタンスは作成済みとする

準備

Chef レポジトリの作成

  • Workstation 側で作業
  • 任意のレポジトリを下記コマンドで作成する(今回は testchef というリポジトリにする)
$ knife solo init “作成するレポジトリ名”
  • 実行後に、testchef ディレクトリが出来る
  • ディレクトリ構成

testchef/
├── cookbooks
├── data_bags
├── environments
├── nodes
├── roles
└── site-cookbooks

workstation の chef solo を使用し、node に Chef をインストール

  • 作成した Chef レポジトリに入り、下記コマンドを実行
$ knife solo prepare -i ~/.ssh/xxx.pem ubuntu@xx.xxx.xxx.xx
  • 下記ログが表示されれば、OK

Thank you for installing Chef!

Cookbook の作成、Recipe の記載

  • Chef レポジトリ(testchef)に移動し、下記コマンド入力
$ knife cookbook create test -o site-cookbooks
  • 実行後、site-cookbooks/test/recipes/default.rb ができるので、これを編集する
    • 今回は apache をインストールするように編集
default.rb
package "apache2" do
    action :install
end
  • 編集後、testchef/nodes/xx.xxx.xxx.xx.json を編集し、recipe を呼ぶようにする
xx.xxx.xxx.xx.json
{
    "run_list":[
        "recipe[test]"
        ]
}

chef の実行

  • 下記コマンドで実行する
$ knife solo cook -i ~/.ssh/xxx.pem ubuntu@xx.xxx.xxx.xx
  • 以下のログが出力される

Running Chef on xx.xxx.xxx.xx...
Checking Chef version...
Uploading the kitchen...
Generating solo config...
Running Chef...
Starting Chef Client, version 11.10.4
Compiling Cookbooks...
Converging 1 resources
Recipe: test::default
* package[apache2] action install
- install version 2.2.22-1ubuntu1.4 of package apache2

Running handlers:
Running handlers complete

Chef Client finished, 1/1 resources updated in 18.333540242 seconds

まとめ

  • AWS の EC2(Ubuntu) を対象に chef を使用してみた。
    • 一度 recipe を作成すると使い回しが効く
    • EC2 などと組み合わせると同じ環境を作成しやすくなる
    • Vagrant などとも相性は良さそう
75
73
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
75
73