技術戦略部より、tipsやノウハウなど技術的な話題を発信いたします。FabricServerspecこんにちは。CORECの開発に携わっている、技術戦略部のおおはらです。社内勉強会」に参加しました。勉強会のゴールはFabricを使ってサーバに設定をし、正しく設定されたことをServerspecで確認する、ということです。今回のハンズオン環境として、FabricとServerspecがインストールされたUbuntuのVMイメージが事前に配布されました。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で設定することから始めていこうと思いました。