読者です 読者をやめる 読者になる 読者になる

knife-solo-0.3.0.pre2からknife-solo-0.3.0.pre3にアップデートした時の注意点

knife-solo-0.3.0.pre2を普段使っているのですが、別のサーバーにknife-soloをインストールしたら、0.3.0.pre3が入ってしまい今までpre2を使っていたときとknife-soloの挙動が変わってしまったのでメモ。

ここに書いてある通りで、 https://github.com/matschaffer/knife-solo/wiki/Upgrading-to-0.3.0

  • デフォルトで~/chef-soloにアップロードされるようになった。
  • 自分でアップロード先を指定する場合は、knife.rb.のknife[:provisioning_path]にパスを指定する。
knife[:solo_path] = "/tmp/chef-solo"
↓
knife[:provisioning_path] = "/home/user/solo"
  • knife.rbのencrypted_data_bag_secret "#{ENV['HOME']}/.chef/data_bag_key"の内容がknife[:provisioning_path]で指定したパスの直下の data_bag_key というファイルに書き込まれていた。pre2だとローカルで指定したencrypted_data_bag_secretのディレクトリごとコピーされていたが、pre3だとファイル名固定でこのdata_bag_keyというファイルに書き込まれる様になったので注意が必要。

  • cookbook_pathを複数指定するようにした。

cookbook_path "./site-cookbooks"
↓
cookbook_path ["../common-cookbooks", "site-cookbooks"]

この用に指定すると転送先のディレクトリのsolo.rbで以下のように順に展開され、cookbooks-1やcookbooks-2といったディレクトリ名になる。指定できるのは多分3つまでかと思います。

cookbook_path []
cookbook_path << File.join(base, 'cookbooks-1')
cookbook_path << File.join(base, 'cookbooks-2')

今まで設定していたknife[:solo_path] = "/tmp/chef-solo"が効かなくなったので、いきなり動かなくなった部分もありましたが、無事設定方法もわかったのでこれからはknife-solo-0.3.0.pre3を使おうと思います。