Chef Cookbook開発環境として本当に使えるWorkstation環境

過去3回にわたり、Chef Workstationの構築方法を書きました。(CentOS7編Windows編Bash on Ubuntu on Windows10編)これらの環境でCookbookを開発してみようとしたところ、使い勝手に差が出ましたので、今回は本当に使える環境はどれかについて書きます。

スポンサーリンク

1. Windows環境はあまり使えない

Windows上にChef DKをインストールした環境は、Chef Clientインストールを実行する(bootstrap)ことや、ChefのWeb管理画面を見ることには使いやすいのですが、Cookbookの開発となると、問題が発生しました。それは、Chef Client導入手順にあったknife cookbook site installコマンドが正常に動かないことです。

C:\Users\aniku\chef-repo>knife cookbook site install chef-client
Installing chef-client to C:/Users/aniku/chef-repo/cookbooks
Checking out the master branch.
Pristine copy branch (chef-vendor-chef-client) exists, switching to it.
Downloading chef-client from Supermarket at version 5.0.0 to C:/Users/aniku/chef-repo/cookbooks/chef-client.tar.gz
Cookbook saved: C:/Users/aniku/chef-repo/cookbooks/chef-client.tar.gz
Removing pre-existing version.
Uncompressing chef-client version 5.0.0.
ERROR: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '1'
---- Begin output of tar zxvf "C:/Users/aniku/chef-repo/cookbooks/chef-client.tar.gz" --force-local ----
STDOUT:
STDERR: tar: Option --force-local is not supported
Usage:
  List:    tar -tf <archive-filename>
  Extract: tar -xf <archive-filename>
  Create:  tar -cf <archive-filename> [filenames...]
  Help:    tar --help
---- End output of tar zxvf "C:/Users/aniku/chef-repo/cookbooks/chef-client.tar.gz" --force-local ----
Ran tar zxvf "C:/Users/aniku/chef-repo/cookbooks/chef-client.tar.gz" --force-local returned 1

Chef DKをインストールする際に付属していたtarコマンドが一部のオプションに非対応であることが原因のようです。Cookbookをコミュニティサイトからインストールできないと、開発が非効率になってしまうので、「あまり使えない」と判断しました。

2. CentOS 7環境は当然の使い勝手

もともとChefはLinux系OSで使われ始めただけのことはあり、CentOS 7環境で開発する分には特に不自由はありません。knifeコマンドはちゃんと動きますし、Chef Serverとの接続で苦労することもないです。

ただ、ChefのWeb管理画面を閲覧する際には、X Windowを立ち上げるか別のWindows端末から閲覧する必要があります。コマンドラインやChefに慣れている方はWeb管理画面を見て何かすることは必須ではないですが、Chefを触り始めたばかりの時期は、Web画面があるとわかりやすい場合が時々あります。学習効率という点ではちょっと手間がかかります。

3. Bash on Ubuntu on Windows10は良いとこ取り

Bash on Ubuntu on Windows10の環境では、knife cookbook site installコマンドを含めコマンドは正常に動く(ようになりました)し、WebブラウザもWindowsで起動できます。ただ、Bash内でのファイルデータをWindows側でも編集したりするためには、ちょっと工夫が必要でした。

以前のセットアップ手順では、Bash内の/home/chef-admin/chef-repo以下にWorkstation環境を作りました。しかし、このディレクトリはWindowsからは参照できません。そのため、Windows側でもファイルを編集できるようにするためには、/mnt/c/Users/(ユーザー名)/以下の場所にchef-repoディレクトリをコピーする必要があります。こうすることで、WindowsとBash on Ubuntuの間でシームレスにデータを扱うことができるようになります。

ここまで書いてきませんでしたが、「じゃあMacOS X上で環境を作ればいいじゃないか」という突込みは無しでお願いいたします。自宅に環境がないもので・・・

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする