使用 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
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。