Walle部署高级任务配置测试

walle高级任务设置

所以试试发布自己的线上业务看看。

理论部署的前后,会触发四个任务。

pre_deploypost_deploypre_releasepost_release

名字来看,就比较好理解,部署前、部署后,发布前,发布后。

官方给出的流程如下:

walle flow

以下是上线任务的发布进度条

walle

很明显,触发的deploy任务是在宿主机。

我整理了如下表格:

任务 执行点 时间时间
pre_deploy 宿主机 代码检出前
post_deploy 宿主机 代码检出后,传送之前
pre_release 目标机 创建链接之前
post_release 目标机 创建链接之后

使用场景举例

我们拉取开发环境的代码部署至宿主机,乃至线上环境的时候。有一些配置是要替换的,比如数据库账户之类的。有一些文件是要删除,一些目录是需要合并的。

但是,怎么做呢?

这就用到这些任务了。大多数场景,我想就用pre-deploy或者pre release就够了。

用法基本都一样,差别就在执行顺序。

使用任务

宿主机要用web执行系统命令,所以需要额外添加一句到sudoers文件里面。

visudo

1
Defaults:www    !requiretty

www 是web执行PHP的用户。

我们是有几个东西要替换。一个是配置目录、另外两个是用户的上传目录。用户上传的静态内容,开发环境是没有了。

考虑到每次复制替换,一个是费系统资源。

所以,我打算在传输之前,先删除掉静态资源。再传去服务器的时候,打上线上的资源的链接。

如此就能实现动态更新了。

有个官方没有说明的是。每次执行任务之前,都是进去到当前目录的。所以删除移动项目目录之类的,都用相对路径即可。

walle test

关注公众号 尹安灿