24時間365日フルマネージドホスティングサービスのデイーネット

test-kitchenでAWS上にインスタンスを作成

Nオガワです。今回は、test-kitchenでAWS上にインスタンスを立てるとこまでをご紹介したいと思います。 次回以降、実際に簡単なテストコードを利用して、test-kitchenの使い方を説明できたらなと考えています。

[補足]ruby環境が必要となりますが、rubyの導入は割愛しています。 rubyの導入に関しては、私が利用している環境はCentOS7の環境を利用しておりこちらの記事 を参考にさせていただいています。 rbenvを利用することで、バージョンの切り替えが容易になります。

1. bundlerのインストール

$ gem install bundler

2. 必要なgemのインストール

$ vi ~/Gemfile
----------[以下の通り設定]----------
source "https://rubygems.org"
gem 'chef'
gem 'chef-dk'
gem 'test-kitchen'
gem 'kitchen-ec2'
gem 'berkshelf'
-------------[ここまで]-------------

$ bundle install

[補足]バージョンを指定していませんが、2018/03/31現在インストールされるバージョンは以下。 chef (13.8.5)
chef-dk (2.5.3)
test-kitchen (1.20.0)
kitchen-ec2 (2.2.1)
berkshelf (6.3.1)

3. cookbookの作成(blog_demoという名前のcookbook)

$ bundle exec chef generate cookbook blog_demo

4. driverにkitchne-ec2を指定

$ cd blog_demo
$ bundle exec kitchen init --driver=kitchen-ec2

5. OSの環境変数設定

$ export AWS_ACCESS_KEY_ID="アクセスキー"
$ export AWS_SECRET_ACCESS_KEY="シークレットアクセスキー"
$ export AWS_SSH_KEY_ID="キーペア"

[補足]アクセスキー、シークレットアクセスキー、キーぺアは環境に合わせて適宜修正。
上記のパラメータは、「.kitchen.yaml」に変数として定義も可能です。「.kitchen.yaml」で定義しない場合でも、test-kitchenで利用されます。

6. .kitchen.yamlの記載例

vi .kitchen.yaml
----------[以下の通り設定]----------
---
driver:
  name: ec2
  region: ap-northeast-1
  availability_zone: ap-northeast-1a
  require_chef_omnibus: true
  security_group_ids: セキュリティグループID
  subnet_id: サブネットID
  tags:
   Name: kichen_blog_demo
provisioner:
  name: chef_solo

platforms:
  - name: blog_demo
    driver:
      image_id: AMIのID

suites:
  - name: default
    run_list:
      - recipe[blog_demo::default]
    attributes:
-------------[ここまで]-------------

[補足]セキュリティグループ、サブネット、AMIは環境に合わせて適宜修正。

7. kitchen convergeの実行

$ bundle exec kitchen converge

[補足]今回の設定例では以下のようにタグのNameに「kichen_blog_demo」が設定されたインスタンスが起動されます。

作成イメージ.png

最後に

空のcookbookを利用してtest-kitchenでインスタンスを起動するところまで記載しました。 次回は、何かテストコードや構築コードを一例にあげて、test-kitchenをまったく知らない聞いたことがない というような方に、すこしでもどういったものかを知っていただけるようにと思っております。 ありがとうございました。

  • このページの先頭へ

  • 東京本社
    〒105-0001東京都港区虎ノ門2-3-22 第一秋山ビル5F
    TEL:03-3591-8887 FAX:03-3591-8886
  • 大阪本社
    〒541-0041 大阪市中央区北浜2-6-11北浜エクセルビル5F
    TEL:06-6231-8887 FAX:06-6231-8897

  • 認証範囲はこちらをご覧ください。

Denet logo

クラウドサービス・データセンタ・高機能専有サーバ・共有サーバホスティングサービス 株式会社ディーネット
dot_bar