仕事を減らす仕事

属人性のバランス

最近やっていること

最近サーバー環境構築の自動化に凝っています。
インフラについては特に得意というわけでも、専門でもないのですが他にできる人がいないとか、若いとかそんな適当な理由で自分がやることが多いです。
サーバー環境構築といいますが、具体的にはざっくり以下の範囲を指しています。

  • AWS上のネットワーク設定(VPC/Subnet)
  • Ec2/RDS作成
  • NAT/Webサーバー/リバースプロキシ作成/踏み台サーバー構築

要するにAWSに環境を作り、EC2上に諸々インストールや設定をするという部分までですね。

問題になっていること

サーバー環境はどうしても試行錯誤の部分が多く、完成した上でえーっとどんな設定にしたっけな、とブラックボックスになりがちです。
結局、最新の設定は何じゃらほいということになりがち。 僕は基本的に他人ができることは他人にやらせたい主義なので、なるべく属人化しないようにしています。
一番直接的な方法は構築手順を残すことですが、手順書はメンテナンスが大変だし、前の職場が手順書まみれで嫌な思い出も多いので、
手順書を使わずに属人化しない方法を模索することにしました。

Ansible

そんなわけで環境構築系にAnsibleを利用することにしました。
Chefとか似たようなもんがありますが、chefと異なりサーバー側にエージェントを入れないで済むという点でこっちのほうがとっつきやすいかなと思っています。 また、AWS-CLIをラップしてくれているおかげで、AWSのEC2構築もこの範囲内でできるらしい。すごい。
そんなわけで、各種サーバーの設定型をAnsibleのプレイブックにまとめていきました。

結果

余計に僕しか触れなくなりました

Ansibleとかサーバー構築に不慣れな人にとっては、

ansible-playbook site.yml -i hosts

というコマンドの方が手順書通りに作業するより怖いみたいです。 まぁ気持ちは分からないでもないですね、何か問題があったときに原因を追えないのは怖いもんです。(まぁ手順書でもどうせ追えないんですが) 仕事を減らすことはなかなか難しいなぁ、という気分です。