1

使用 ansible-elixir-stack 这个项目部署Phoenix项目, 做到一键部署

ansible-elixir-stack 用到的工具有:

  • exrm 打包发布工具, 代码热更新

  • monit 用于监控和自动重启应用

  • asdf 用于安装Elixir, Erlang

创建一个用于实验的Phoenix项目

$ mix phoenix.new hello_phoenix

项目跑起来后在Github 上创建项目

下面就是 使用 ansible-elixir-stack 这个项目部署配置ansible, 在项目目录运行

$ curl -L http://git.io/ansible-elixir-stack.sh | bash

这个脚本会创建ansible的配置文件

其中需要配置的是inventory 文件, 这个文件用于配置服务器的ip地址

inventory

[app-servers]
117.121.26.170

# Delete the above IP addresses and add your server's IP addresses

.tool-versions 配置erlang,elixir,nodejs的版本

$ cat .tool-versions
erlang 18.0
elixir 1.0.5
nodejs 0.12.5

还需要加上exrm这个项目

exrm用来打包Elixir项目

HashNuke.elixir-stack 这个role需要用ansible-galaxy(ansible的包管理工具)安装

$ ansible-galaxy install HashNuke.elixir-stack

可以配置ansible.cfg配置role的保存路径, 当然也可以用默认的

roles_path = roles

这样安装的ansible role模块会安装在项目的roles文件夹

配置好之后就可以部署了

$ ansible-playbook playbooks/setup.yml

默认配置是使用的是root用户
请确保root用户的ssh key已经加到服务器上了

以后再部署的话, 使用

$ ansible-playbook playbooks/deploy.yml

更多自定义配置查看Configuration options 文档

测试demo: https://github.com/lidashuang/hello_phoenix


lidashuang
6.7k 声望165 粉丝

$ Ruby/Elixir/Golang