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

HOME'; $txt2 = '
  • サーバサービス
  • '; $txt3 = '
  • サポート
  • '; $txt4 = '
  • ホームページ制作
  • '; $txt5 = '
  • 技術情報
  • '; if($dir == "") $txt1 = ''; if($dir == "server_service") $txt2 = ''; if($dir == "support") $txt3 = ''; if($dir == "hp_service") $txt4 = ''; if($dir == "technology") $txt5 = ''; ?>

    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にkitchen-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.yml」に変数として定義も可能です。「.kitchen.yml」で定義しない場合でも、test-kitchenで利用されます。

    6. .kitchen.ymlの記載例

    vi .kitchen.yml
    ----------[以下の通り設定]----------
    ---
    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: kitchen_blog_demo
    provisioner:
      name: chef_solo
    
    platforms:
      - name: blog_demo
        driver:
          image_id: AMIのID
        transport:
          ssh_key: "秘密鍵の保存先"
    
    suites:
      - name: default
        run_list:
          - recipe[blog_demo::default]
        attributes:
    -------------[ここまで]-------------
    

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

    7. kitchen convergeの実行

    $ bundle exec kitchen converge

    [補足]今回の設定例では以下のようにタグのNameに「kitchen_blog_demo」が設定されたインスタンスが起動されます。 20180521.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