Ansibleを使ってみた話
Python製のプロビジョニングツールAnsibleを使ってみました。
サーバーで遊ぶようにさくらのVPS借りてるんですが、VPSだから作って壊してを繰り返すじゃないですか。なのでセットアップ用のシェルを作ってたんですが、だんだんメンテしんどい感じになっていまして。
ここらでひとつはやりのプロビジョニングツールでも使ってみようかと思ったのです。これ系といえばChefですけれど、Chefはオレオレルールが多すぎてどうにも肌に合わなかったのです。入門記事読もうとしても意味がわからない。そこでansibleを知って、sshで色々やるんだよ。っていうのを見て、なるほどわかりやすいそれだ!ってなったので使うことにしました。
arvelt/myserver-setting-ansible · GitHub
というわけで書いたんですけれども。
基本のき、ベストプラクティス、Galaxy、パスワードどうすん? ていうことについてはReadmeにメモってあります。
それ以外だと。その渡すパスワードをコマンド叩いたときにいちいちタイプするのめんどいから、ローカルにおいてあるファイルにかいておいて、シェルで渡せばいいか、とか。Railsアプリ(ここではRedmine)のデプロイめんどくさすぎて、これに何の意味があるのか(哲学、みたいな感じになったりしていました。
そもそもReadmeにTipsとか書いてて、Readmeってそういうんじゃねえから!Wiki使え!っていう感じなんですがこれはこれで自分で見返すのが凄い楽なのでおすすめ感あります。
Wikiまでいくのめんどいです。みたいな。
しかし、プロビジョニングツールにすると言っておきながら、最初のトリガーがシェルになってるあたり微妙感があります。VPSのコンソールからOS入れたところから始まる、っていう想定なのでまずssh設定しないとansble通らないじゃん?ていうせちがらい事情があります。
そこらまで含めてがっちりできるのはChefをサバクラ構成したときなんでしょうかね・・・。
ですがベターシェルとして使うという観点でいくとかなり良いのではと思いました。OSごとの細かい話とか気にしたくないのでmoduleが吸収してくれているのがよいところだと思います。Galaxy bookもあるので共有できますし。と思ったらYUMとAPTとかあって、だからそういうの考えたくないんだよ!なめてんのか!とかなりますね。
というわけでansible。小・中規模のサーバー郡をプロビジョニングしたいとき、もしくは個人用サーバーのセットアップ等に使えばよいと思います。