knife solo の -o オプションでちょいハマり
みんな大好きなchefですが、knife-soloなんてものもありリモートにあるサーバに対してローカルにあるcookbookをつかってchef-soloを走らせることができます。 これが便利で開発環境の構築などによく使っていたりします。 http://matschaffer.github.io/knife-solo/
こんな感じで日々cookbookを増やしているわけですが、cookbookを単発で流したい時なんかには-oオプションが便利です。こんな感じでjsonファイルを書かずに、cookbookを直接指定できます。ちょろっと流したいときには便利です。
kinife solo cook 127.0.0.1 -o apache,php
こんな感じで設定してるのですが、僕が作っているcookbookにはsudo周りを設定するsudoというcookbookを用意しています。
ここで問題があって、実は-oオプションにsudoという名前のcookbookを渡すと使えないです。悲しい。
どういうことかというと、原因はこのたりっぽい。なるほどーという感じです。 https://github.com/matschaffer/knife-solo/blob/master/lib/knife-solo/ssh_command.rb#L195
直してもいいのですがちょっと面倒なので、usersというunixユーザーを作成するcookbookにincludeして対処しました。