ページ

ラベル Boxen の投稿を表示しています。 すべての投稿を表示
ラベル Boxen の投稿を表示しています。 すべての投稿を表示

2015年1月31日土曜日

山に来てBoxenやめてAnsibleにしました

気がついたら前回の退職エントリーから10ヶ月ぐらい何も書いてなかった。よくない。
最近あんまりネットにいませんね、とか(元々そんなにいなかったのに)言われるようになってた。よくない。

初心に立ち返って、環境構築のこと書く。
具体的には、boxenをやめてansibleにした話。

boxenを使ってきたけど、結論としては個人の環境構築に使うにはtoo much。使い始めた時点でうすうす感じてはいたことだった。
なんか一個brew upgradeしたいだけなのにpuppet moduleに手を入れなきゃならないのはコストがかかりすぎだし、boxen自体をour-boxenからfetchしてmergeしてアップデートしていくのもダルいし、それを他のところ(チームとか)でも使うならまだしも、自分しか使わないのであれば、新しいパソコンに毎回環境構築するほうが楽だと思った。
あとは、色んなものが/opt/boxen/の下に入るのがちょっと気持ち悪かった。brew installした時のインストール先とかわかりにくかった。

そんな感じでbrewfileにでも移行しようかと思っていたら、使ったことないうちにオワコンになってた。
じゃあどうすっぺーかと思っていたところで、今をときめくansible(僕の中で)をlocalで実行するという手があるとわかったので、そうすることにした。


boxenのhomebrew使ってた場合はboxen消すとhomebrewも消えるので、ansible導入後にまたbrew installするものはbrew listとかで洗い出しておくといい。

boxen関連のものを完膚無きまでに削除

$ /opt/boxen/repo/script/nuke --all --force

改めてHomebrewとAnsibleをインストールする

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
$ brew install ansible

ansibleをローカルに実行したい場合、playbookのhostsに127.0.0.1を指定してやって、実行時に--connection=localをつけるか、playbookにconnection:localと書いてやればssh経由でなく実行される。
参考: http://docs.ansible.com/playbooks_delegation.html#local-playbooks

そういうわけであとはplaybookを作って育てていけばいい。大抵の場合はlocalhost.ymlが1ファイルあるだけで事足りるんじゃないだろうか。

inventoryファイルに関しては普通に作ってやってもいいし、ansible-playbookするときに -i "localhost," とかつけてやると作らなくても済む。

あとはlocalhost.ymlを育てていけばよい。


適用するときには
$ ansible-playbook localhost.yml -i "localhost," --ask-sudo-pass
のようにすればよし。

たぶん、最初から入ってないと大幅に使い勝手が変わったり困ったりするものって僕の場合はそれほどないので、それ以外のものは必要に応じて手で入れるようにして、dotfileとかtmuxとか、インストールして設定するのがめんどいものを自動化しておくのがいいバランスなんだろうと思う。

2014年1月2日木曜日

Boxenの導入

準備が出来たので、Boxenを導入する。

前提として、Xcode Command Line Toolsがインストールされていること。
(Mavericksの場合はBoxenがいいようにしてくれるっぽいが、僕の場合は既にインストールしてあったので実際どうなるのかわからない)

https://github.com/boxen/our-boxen#bootstrapping に書いてある通りにやっていく。

あらかじめどこかに自分のboxen用のgitリポジトリを作っておいてから以下を実行。
sudo mkdir -p /opt/boxen
sudo chown ${USER}:staff /opt/boxen
git clone https://github.com/boxen/our-boxen /opt/boxen/repo
cd /opt/boxen/repo
git remote rm origin
git remote add origin <自分のリポジトリ>
git push -u origin master

用意されたモジュールだけで事足りる人はむしろ少数派だと思うので、必要に応じてPuppetfileの末尾に利用するモジュールを追加してやる。
大抵のメジャーどころはhttps://github.com/boxenにある。

Puppetfileはダウンロード元等の定義に過ぎない。Puppetfileに続いてmanifestを編集する。
globalな設定はmanifests/site.pp に、personalな設定はmodules/people/manifests/githubのユーザー名.pp に書く。この辺は仕様ではなく流儀。

(んーしかしPuppefileの存在意義ってなんなんだろう。上みたいな形でグローバルな設定と個人の設定は切り分けられてるわけで、各種定義もそこでやればいいのでは……)

これで
cd /opt/boxen/repo
./script/boxen
すれば諸々インストールやら設定やらされる。

尚、デフォルトだとFileVault使ってディスクを暗号化することを要求される。それが嫌な人は--no-fdeをつけてやればいい。
./script/boxen --no-fde

.bashrcか.zshrcが既にある場合は、以下を追加する
[ -f /opt/boxen/env.sh ] && source /opt/boxen/env.sh

シェルを新しく開いて、boxen --envがちゃんと動けば正しくできてる。動かなければ頑張る。

参考: Boxenを利用したMacのセットアップ | iii ThreeTreesLight

2014年1月1日水曜日

Boxenの導入(の準備)

新年、明けましておめでとうございます。

今年一年を良い年にすべく、Boxenを使ってみることにしました。


準備


boxenと干渉する可能性があるものをアンインストールする。
僕の環境ではrbenv, homebrew, nvm。なんとなく影響が小さそうなものから消していく。

nvmのアンインストール

公式にアンインストール方法が書いてなかった。

とりあえず.nvm/を消す。
% rm -rf ~/.nvm
あとは.zshrcにも数行書いてあったのでそれも消した。

rbenvのアンインストール

rbenvはbrewでインストールしたので、homebrewごと消せばいいのかもしれないけど、一応ちゃんと消す。

rbenv管理のrubyを消すには、~/.rbenv/versions/ の中にあるディレクトリを消すか、ruby-buildを使っているならrbenv uninstallで消せる。
これもわざわざやらなくていいような気はしたけど、パッチレベルも低かったのでついでに消した。

で、rbenvとruby-buildをアンインストール。
% brew uninstall ruby-build
% brew uninstall rbenv
% rm -rf ~/.rbenv
なんかよくわからないけど一回やっただけだとちゃんと消えず、何回か実行したら消えた。

homebrewのアンインストール

https://github.com/Homebrew/homebrew/wiki/FAQに書いてあった、このスクリプトを使った。

実行したら何故かiTermのタブが閉じたりしてちゃんと消えたのかよくわからない。
which brewとかしてcommand not found: brewとか出るようになったので消えたと信じる。

これでようやく準備が整った。