環境構築手順 を Ruby でシーケンシャルに記述できる chef-solo 、ローカルで作成した chef-solo の cookbook を remote に同期してくれてなおかつ実行してくれる knife-solo 。
その knife-solo のコマンドを SublimeText の Command Palette から叩ける Plugin が SublimeKnifeSolo を 書きました!
導入メリット
- cookbook 編集後に SublimeText から離れることなく kife solo コマンドが実行できる。
- remote へのログイン情報を ~/.ssh/config ではなく SublimeText に保存できる。
- もちろん複数の host, user に対応可能(ドヤッ
仕様
- 使い方はこんな感じ
-
cookbook 編集後に
⌘ + shift + p
で Command Palette を起動し "knife solo" などで絞り込むと "SublimeKnifeSolo: cook", "SublimeKnifeSolo: prepare" コマンドが見える。 - コマンドを選択すると、登録した remote の一覧が表示される。
- remote を選択すると その remote に対して knife solo コマンドが実行されます。
- Command Palette を起動した時に開いていたファイルのディレクトリから solo.rb を探す。見つからなければ上の階層で探し最初に見つかった solo.rb を実行!
- solo.rb が見つからなければエラー
- remote の設定項目は knife-solo に準拠。
- host
- user
- identity information
- port
- password
- サポートしているコマンド。
- knife solo prepare
- knife solo cook
- bootstrap と clean もあった方がいいと思いつつ、まだ使ったことないので保留。
- init は SublimeText から実行したい欲求はないかな、と思っている。
- 対応OS
- OSXのみ
インストール
以下のコマンドを実行
git clone https://github.com/amazedkoumei/SublimeKnifeSolo.git ~/Library/Application\ Support/Sublime\ Text 2/Packages/SublimeKnifeSolo
PackageControllChannel には現在申請中です。通るかな(ドキドキ
2013/03/15 追記:
PackageControllに登録されました。冒頭に Sublime とつけるのは非推奨だそうなので 名称は KnifeSolo となっています。
SublimeText から PackageControll を起動し ( command + shift + p ) 検索窓に "knifesolo" と入力し、Enter を押すことでインストールできます。
申請のための手続きは、下記のページの "Submitting a Package" セクションと "Custom packages.json on GitHub" セクションにまとまっています。
設定
⌘ + shift + p
で Command Palette を起動し "knife solo" などで絞り込むと次のメニューが見えます。
- Preferences: SublimeKnifeSolo Settings – Default
- Preferences: SublimeKnifeSolo Settings – User
Default を参考に User に設定を記述してください。
設定ファイルは Json 形式。上のリンクからも内容確認できます。
- path = knife コマンドのPATH
- parameters = remote へのログイン情報のリスト
最後に
enjoy! って書いて締めたかったけど実はちょっと心配事があってだな・・・
Pacage Controll 申請の注意書きに「パッケージ名の冒頭にSublimeという文字列がある場合は間引いて申請しましょう」と書いてあったので素直に間引いて申請したんですけど
- KnifeSolo という名前になってしまうけど、いいんですか? そんな他人様のプロジェクト名そのまんまのパッケージ名でいいんですか?
- Plugin 内で使ってるコマンド名が全部 SublimeKnifeSolo になってるんですけど・・・
というあたり。。
後者はまぁ自分が直せばそれでいいんでしょうけど、前者ってどうやねんと。
そのようなケースよく見かけますけど、いざ自分がするとなると気になって気になって。
どうなんですか?マナー的に?そのままいってしまおうとは思っているのですが。