UNIX的なアレ

UNIX的なこととかいろいろ

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して対処しました。