Fabric + Serverspec 社内勉強会
こんにちは。主にCORECの開発に携わっている、技術戦略部のおおはらです。
同部の松尾が主催した「Fabric + Serverspec 社内勉強会」に参加しました。
勉強会のゴールはFabricを使ってサーバに設定をし、正しく設定されたことをServerspecで確認する、ということです。
今回のハンズオン環境として、FabricとServerspecがインストールされたUbuntuのVMイメージが事前に配布されました。それをVMWare PlayerまたはVirtual Boxを使って各自のノートPCにハンズオン環境を構築しています。
最初に、松尾からハンズオンをスムーズに進めるためにUbuntuの便利な使い方(ワークスペース、tmux)の説明がありました。そして、勉強用のサーバをAWS上に各自作成しました。
次にFabricの基本的な説明がありました。
FabricはPython製のデプロイツールで、サーバでsshが動いていればOK(サーバにpython不要)、既存のシェルスクリプトとFabricのメソッドでタスクを簡単に書ける、といった特徴を持ちます。
具体的なタスクの書き方、fabコマンドによるタスクの実行の仕方の解説の後、実習としてnginxのインストールやスタート、crontabの更新といったタスクを作成、実行しました。
最後にServerspecの解説です。
ServerspecはRuby製のサーバ自動テストツールで、サーバでsshが動いていればOK、RSpec形式でテストコードが書ける、といった特徴があります。
勉強会資料を参考に、Fabricでインストールしたnginxが動作していることを、Serverspecでテストを書き、実行して確認しました。
デプロイツールには大規模なシステムでの実績があるChefやAnsibleといった有名なものもありますが、別の選択肢としてシンプルにタスクが書けるFabricが弊社では上手く使えそうな気がします。
私が携わっているCORECではサーバ設定の一部をwikiで管理したり手動設定している部分があります。まずは、設定をファイルとしてgitで管理し、Fabricで設定することから始めていこうと思いました。