Mitamaeでdotfilesの管理をやるようにした

Mitamaeでdotfilesの管理をするようにした。

Mitamaeとは

プロビジョニングツールのitameのmruby実装である。mruby実装にすることで何がうれしいかというとRuby や gem に依存しなくなるというのがある。Mitamaeのバイナリがあれば動くので、curlで引っ張ってきてシュッと使うことができる。ちなみに読みは「見給え」ではなく「えむいたまえ」らしい。

k0kubun.hatenablog.com

これを使うと環境構築のための環境構築を最小限の手間にすることができる。 dotfilesのデプロイにいままで自前シェルスクリプトを使っていたが、やはりitamaeを使うほうが便利であった。 dotfilesのデプロイだけではなく、ソフトウェアのインストールまで簡単にできる。

構成

ぼくのdotfilesはtkmru/dotfilesで、k0kubun/dotfilesakito19/dotfiles をかなり参考にしている。

$ tree -aL 2
.
├── .git
│   ├── FETCH_HEAD
│   ├── HEAD
│   ├── ORIG_HEAD
│   ├── config
│   ├── description
│   ├── hooks
│   ├── index
│   ├── info
│   ├── logs
│   ├── objects
│   ├── packed-refs
│   └── refs
├── .gitignore
├── README.md
├── bin
│   └── setup_mitamae.sh
├── config
│   ├── .bash_aliases
│   ├── .bash_profile
│   ├── .bashrc
│   ├── .gdbinit
│   ├── .gitconfig
│   ├── .profile
│   ├── .tmux.conf
│   └── .vimrc
├── cookbooks
│   ├── gdb
│   ├── git
│   ├── symboliclinks
│   ├── tmux
│   └── vim
├── deploy.sh
├── init.sh
├── lib
│   └── bootstrap.rb
└── roles
    ├── darwin
    └── ubuntu

最初に実行するのはinit.shで、OSがmacだった場合、Xcode Command Line Toolsのインストールやhomebrewのインストールを行い、Mitamaeをcurlでダウンロードする。そして最後にホームディレクトリからdotfilesへのシンボリックリンクを貼るdeploy.shを実行している。deploy.shからMitameを用いてlib/bootstrap.rbを実行し、roles.rbからcookbook以下のレシピを実行している。 また、OSごとに使うdotfilesが違う(ubuntuの.profileとか)ので、deploy.sh内でunameを使ってOSを判定し、roles以下で異なる処理をさせている。

参考資料