Walle部署高级任务配置测试
walle高级任务设置
所以试试发布自己的线上业务看看。
理论部署的前后,会触发四个任务。
pre_deploy
、post_deploy
、pre_release
和post_release
名字来看,就比较好理解,部署前、部署后,发布前,发布后。
官方给出的流程如下:
以下是上线任务的发布进度条
很明显,触发的deploy任务是在宿主机。
我整理了如下表格:
任务 | 执行点 | 时间时间 |
---|---|---|
pre_deploy | 宿主机 | 代码检出前 |
post_deploy | 宿主机 | 代码检出后,传送之前 |
pre_release | 目标机 | 创建链接之前 |
post_release | 目标机 | 创建链接之后 |
使用场景举例
我们拉取开发环境的代码部署至宿主机,乃至线上环境的时候。有一些配置是要替换的,比如数据库账户之类的。有一些文件是要删除,一些目录是需要合并的。
但是,怎么做呢?
这就用到这些任务了。大多数场景,我想就用pre-deploy或者pre release就够了。
用法基本都一样,差别就在执行顺序。
使用任务
宿主机要用web执行系统命令,所以需要额外添加一句到sudoers
文件里面。
visudo
1 | Defaults:www !requiretty |
www 是web执行PHP的用户。
我们是有几个东西要替换。一个是配置目录、另外两个是用户的上传目录。用户上传的静态内容,开发环境是没有了。
考虑到每次复制替换,一个是费系统资源。
所以,我打算在传输之前,先删除掉静态资源。再传去服务器的时候,打上线上的资源的链接。
如此就能实现动态更新了。
有个官方没有说明的是。每次执行任务之前,都是进去到当前目录的。所以删除移动项目目录之类的,都用相对路径即可。