cloudpack の かっぱこと 川原 洋平 (@inokara) です。
はじめに
Chef Development Kit というツールが既に公開されていたので Amazon Linux にインストールしてみたのでメモ。
ChefDK って?
Cookbook 開発に必要なツールをまとめたもののようです。以下のようなツールが一気にインストールされます。
- Chef
- Kitchen
- ChefSpec
- Foodcritic
- Berkshelf
詳しくは以下の記事を御覧ください。
インストール
インストールした環境は下記の通りです。
Amazon Linux AMI release 2014.03
そして…インストールはとても簡単です。
wget https://opscode-omnibus-packages.s3.amazonaws.com/el/6/x86_64/chefdk-0.2.0-2.el6.x86_64.rpm sudo rpm --test -Uvh chefdk-0.2.0-2.el6.x86_64.rpm sudo rpm -Uvh chefdk-0.2.0-2.el6.x86_64.rpm
Amazon Linux には正式にサポートされていないかもしれませんが Red Hat Enterprise Linux 6 用のバイナリを利用しています。
何がインストールされた?
sudo find / -name chef -o -name kitchen -o -name berks | grep bin
とりあえず chef と kitchen と berks コマンドを確認。
/opt/chefdk/bin/berks /opt/chefdk/bin/kitchen /opt/chefdk/bin/chef /opt/chefdk/embedded/apps/test-kitchen/bin/kitchen /opt/chefdk/embedded/apps/berkshelf/bin/berks /opt/chefdk/embedded/apps/chef-dk/bin/chef /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/bin/kitchen /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-dk-0.2.0/bin/chef /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.2.dev/bin/kitchen /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/berkshelf-3.1.3/bin/berks /opt/chefdk/embedded/lib/ruby/gems/2.1.0/bin/berks /opt/chefdk/embedded/lib/ruby/gems/2.1.0/bin/kitchen /opt/chefdk/embedded/lib/ruby/gems/2.1.0/bin/chef /opt/chefdk/embedded/bin/berks /opt/chefdk/embedded/bin/kitchen /opt/chefdk/embedded/bin/chef /usr/bin/berks /usr/bin/kitchen /usr/bin/chef
おお。/usr/bin/ 配下のコマンドは漏れ無く /opt/chefdk/bin/ 以下にリンクが張られているようです。
lrwxrwxrwx 1 root root 20 Jul 26 03:48 /usr/bin/chef -> /opt/chefdk/bin/chef lrwxrwxrwx 1 root root 21 Jul 26 03:48 /usr/bin/berks -> /opt/chefdk/bin/berks lrwxrwxrwx 1 root root 23 Jul 26 03:48 /usr/bin/kitchen -> /opt/chefdk/bin/kitchen
knife container のインストール
chef コマンドを使えば knife プラグイン等のインストール出来るようです。尚、chef コマンドは以下のようなオプションがあります。
exec Runs the command in context of the embedded ruby
gem Runs the MARKDOWN_HASH9855b7f5d316820428a3e475d37ff14eMARKDOWN_HASH
command in context of the embedded ruby
generate Generate a new app, cookbook, or component
shell-init Initialize your shell to use ChefDK as your primary ruby
verify Test the embedded ChefDK applications
早速、gem オプションを使って knife-container をインストールしてみます。
chef gem install knife-container --no-ri --no-rdoc -V
以下のように Warning が出ますが…
WARNING: You don't have /home/ec2-user/.chefdk/gem/ruby/2.1.0/bin in your PATH, gem executables will not run.
以下のようにインストールが完了しました。
...(snip) /home/ec2-user/.chefdk/gem/ruby/2.1.0/gems/knife-container-0.2.0/spec/unit/fixtures/cookbooks/nginx/metadata.rb /home/ec2-user/.chefdk/gem/ruby/2.1.0/gems/knife-container-0.2.0/spec/unit/fixtures/environments/dev.json /home/ec2-user/.chefdk/gem/ruby/2.1.0/gems/knife-container-0.2.0/spec/unit/fixtures/nodes/demo.json /home/ec2-user/.chefdk/gem/ruby/2.1.0/gems/knife-container-0.2.0/spec/unit/fixtures/roles/base.json /home/ec2-user/.chefdk/gem/ruby/2.1.0/gems/knife-container-0.2.0/spec/unit/fixtures/site-cookbooks/apt/metadata.rb Successfully installed knife-container-0.2.0 1 gem installed
ほうほう、各ユーザーのホームディレクトリ以下に .chefdk ってディレクトリが出来るんですな。その下に knife プラグインがインストールされるのか。
さひごに
あっと言う間に Chef が使える環境が整う!…意外にも test-kitchen 等のテストツールが一緒にインストールされるのも嬉しいなあ。
元記事は、こちらです。