在没有rebar的时代,要打包项目及热升级,需要使用reltool,systools,release_handler等工具,还必须熟悉各种配置,有了rebar这个神器,所有的事情都变得非常的简单,所以这里就只简要的记录一下热升级的操作流程,哪怕是初学者,看后稍一操作琢磨就会理解
假定project名称:unicorn
1、编译打包
./rebar clean ./rebar compile ./rebar generate ###rebar的一个小bug,回滚时会用到这个文件,可以把这个操作写在reltool.config中 cp rel/unicorn/releases/1.1/unicorn.boot rel/unicorn/releases/1.1/start.boot ./rebar generate-appups privious-release=/opt/unicorn/dsfreg ./rebar generate-upgrade privious-release
2、上传升级包到目标节点:
scp releases/unicorn_1.1.tar.gz unicorn@192.168.0.10/opt/unicorn/dsfreg/releases
3、登录到目标节点执行rebar生成的install_upgrade.escript
./bin/install_upgrade.escript unicorn prjcookie unicorn-1.1
如果部署节点没有安装erlang运行环境,这一步也可以在本地用终端连接到远程节点直接执行,但是这样操作要小心,不要轻易执行q()
erl -sname admin -setcookie prjcookie CTRL-G c unicorn@192.168.0.10 j 2 release_handler:unpack_release("unicorn_1.1"). release_handler:check_install_release("1.1"). release_handler:install_release("1.1"). release_handler:make_permanent("1.1").
4、回滚
release_handler:install_release("1.0"). release_handler:make_permanent("1.0").