RoadMovie

write down memos or something I found about tech things

Elixir/Phoenixで作ったアプリの簡単なデプロイ方法 by ansible

f:id:mr7myself:20190127105617p:plain

こんにちは! 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のデプロイプロセスをこのライブラリに当てはめていきます。

参考までに私が作ったレポジトリになります。

ansible-for-phoenix


使い方

1. 環境設定
書き換える必要がある箇所を"TODO"としていますので、grepしてみてください。

2. サーバを用意

$ ansible-playbook -i production centos.yml -u root

3. Deploy app

$ ansible-playbook -i production deploy.yml -u deploy

基本的にはこれだけになります!細かいところは先程あげたレポジトリに譲りますが、それほど詰まることなくデプロイまで行けると思います。

ansible-for-phoenix