それなりに適当にやってます

なんとなくそれっぽいメモとか備忘録とか適当に。 2018年5月にブログ移転しました。 古い記事は未整理です。

test-kitchen + kitchen-ec2 のインストールと使い方

Chefのお勉強の続きで、test-kitchen を試してみた。

参考URL

事前準備

  • AWS CLIの環境は事前に設定しておく(~/.aws/credentials)
  • Chefのレシピは作成済み

"rbenv"によるRuby環境の作成

$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv$ git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build$ git clone git://github.com/jf/rbenv-gemset.git ~/.rbenv/plugins/rbenv-gemset$ cd ~/.rbenv && src/configure && make -C src$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile$ exit...$ which rbenv  ->rbenv is a function 〜の出力を確認$ rbenv install -l  ->インストールできるRubyのバージョンを確認$ rbenv install 2.3.3$ rbenv gemset create 2.3.3 test-kitchen

test-kitchen

"rbenv"の設定

Chefのレシピが置いてある場所で、rbenv/gemsetの環境を適用する。

$ cd /path/to/chefdir$ rbenv local 2.3.3$ rbenv gemset init test-kitchen$ ruby --versionruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-linux]  

インストール

gemを用いてインストールを行う。

$ gem install test-kitchen$ gem install kitchen-ec2

環境構築

Chefのcookbookが存在するディレクトリへ移動して、test-kitchenを使うための準備をする。

$ kitchen init --driver=kitchen-ec2

設定

.kitchen.yml に必要な情報を記述していく。 詳細は kitchen-ec2(GitHub) を参照

以下、設定してみた例

---driver:    name: ec2  shared_credentials_profile: default  aws_ssh_key_id: default  instance_type: t2.micro  security_group_ids: ["sg-xxxxxxxx"]  region: ap-northeast-1  availability_zone: ap-northeast-1a  tags:      Name: test-kitchen-oppaioppaitransport:    username: centos  ssh_key: ~/.ssh/id_rsaprovisioner:    name: chef_soloplatforms:    - name: centos-7suites:    - name: default    run_list:      - recipe[os_base::setup]      - recipe[sshd::setup]      - recipe[postfix::setup]      - recipe[gitlab::setup]    attributes:

実行

$ kitchen create default-centos-7     #<-EC2インスタンスの作成$ kitchen converge default-centos-7   #<-Chefの導入とレシピの実行$ kitchen destroy defalt-centos-7     #<-EC2インスタンスの削除(terminated)

以上、適当に。