Elixir/Phoenixで作ったアプリの簡単なデプロイ方法 by ansible
こんにちは! Ruby/Railsプログラマーの方がElixir/Phoenixにチャレンジしていると、「Capistranoみたいに簡単にデプロイする方法ないの?」と思うかもしれません。
私が調べたところ、完璧にCapistranoの代替になるようなライブラリはなさそうでした。そこで下記の2つの方法を試してみようと思ったのですが、
- Deployment via docker
- Deployment via Ansible
docker管理は慣れているとそれほどですが、プライベートでやるにはtoo much workかなと思い今回は避けました。なので、今回ご紹介する方法はansibleによるデプロイ方法です。これはとても簡単なのでぜひ試してみてください。
なぜ簡単なのか。それはAnsistranoというライブラリがほとんどCapistranoのような振る舞いをしてくれるからです。
Ansible role to deploy scripting applications like PHP, Python, Ruby, etc. in a capistrano style
そう、ここではElixir/Phoenixをあげましたが、それらでなくても問題なくデプロイできます。 今回はPhoenixのデプロイプロセスをこのライブラリに当てはめていきます。
参考までに私が作ったレポジトリになります。
使い方
1. 環境設定
書き換える必要がある箇所を"TODO"としていますので、grepしてみてください。
2. サーバを用意
$ ansible-playbook -i production centos.yml -u root
3. Deploy app
$ ansible-playbook -i production deploy.yml -u deploy
基本的にはこれだけになります!細かいところは先程あげたレポジトリに譲りますが、それほど詰まることなくデプロイまで行けると思います。