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

Kuchitama Tech Note

はてな記法がいつまでたっても覚えられないので、はてなダイアリーからマークダウンが使えるこっちに引っ越してきました。

NeoBundle のChef Cookbookを公開しました

お久しぶりです。kuchitamaです。

最近は、会社のブログ書いたり、会社のブログ書いたり、関Javaで発表したり、会社のブログ書いたりしてて、こっちの方は全く更新していませんでした。

久々の更新で緊張してますが、今日は会社のブログネタを転用して、ここでもChefネタです。 今回は、NeoBundleのCookbookを作って公開したので、ちょっと宣伝してみます。

NeoBundle Cookbook

NeoBundleは言わずと知れた、暗黒美夢王こと@ShougoMatsuさんが作られたVimプラグインですね。 こいつがいてくれるだけで、僕のVim環境は無限の広がりを見せるので、新しくサーバを立てた時に利用できる状態になっていて欲しいわけです。 インストール手順は自分でまとめたのですが、やはりVagrantなどでサクッと仮想マシンを立ち上げていろいろ試してみる時にいちいちインストール手順を踏むのは面倒なので、自動構築するためにCookbook化してみました。 そのため、現状のNeoBundle Cookbookはkuchitama的においしい設定になっていて、ちょっと汎用的でない部分がありますが、そのうち調整していくつもりです。

使い方

NeoBundle Cookbookはgithubで公開しています。

基本的にはChefリポジトリgit clone して、設定を書いてやるだけです。

]$ cd <chef-repository>/cookbooks
]$ git clone https://github.com/Kuchitama/neobundle.git
]$ cd ..
]$ vim localhost.json

{
  "run_list" : [
    "recipe[neobundle]"
  ],
  "neobundle" : {
    "user" : "vagrant",
    "group" : "vagrant",
    "vim_home" : "/home/vagrant/.vim"
  }
}

これで、準備が整いました。あとは、Chefを実行するだけです。

Attribute

NeoBundle CookbookのAttributeは下記の3つがあります。 * user * group * vim_home

userとgroup

vimを利用する権限を設定します。 例えば、vagrantで作成した仮想マシンを使用しているのであれば、userもgroupもvagrantを指定します。 userもgroupも初期値が設定されていませんので、設定する必要があります。

vim_home

vim_homeには、vimホームフォルダを作成するパスを設定します。 大体の場合に、ユーザのホームフォルダ直下に.vimを作成する事になると思います。

knife-soloとBerkshelfを使う

knife-soloとBerkshelfを使うとかなりお手軽にリモートサーバにNeoBundleをインストールする事が出来ます。 それぞれのインストールについてはこちらを参照して頂ければいいと思います。

まず、knife solo init <repository> でknife solo リポジトリを作ります。

つぎに、作成したリポジトリ直下にあるBerksfileを以下のように編集します。

cookbook "neobundle", git: "https://github.com/Kuchitama/neobundle.git"

そして、knife solo prepare <user>@<remotehost>で、作成されたjsonファイルを編集して、knife solo cook <user>@<remotehost>を実行すればOKです。

まとめ

以上、簡単にNeoBundle Cookbookの使いかたについて解説してみました。 最初に書いた通り、とりあえず自分が楽をするために書いたので、かなり汎用化されていない部分があります。 ちょこちょこといじって、 - ブログネタ - もっといいCookbookを作って行こうと思います。 課題としては以下の感じでしょうか。

  • テストを書く test-kitchen serverspec
  • Resourceに切り出せそうな処理を切り出す ** フォルダ権限の変更とか
  • vim_homeの設定が冗長な気がする ** ohaiとかでなんとかならんかなー

この辺、ちまちまと直して行きたいと思います。

入門Chef Solo - Infrastructure as Code

入門Chef Solo - Infrastructure as Code