本期分享的 Piplin(灵感来自于”pipeline”,读作/ˈpɪpˌlɪn/ 或 /ˈpaɪpˌlaɪn/)是一款免费、开源的持续集成与部署系统,适用于软件的自动化构建、测试和部署相关的各种应用场景。
Piplin介绍
- 支持PHP、Python、JAVA、Ruby等项目的构建、测试与发布
- 可与Gitlab、Github、Gogs、Gitee(Oschina)等代码托管平台进行集成
- 可灵活配置自定义构建和部署步骤
- 支持自定义构建物规则,对构建物创建发布版本并部署
- 支持项目的多环境部署(可自行建立开发、测试、预发布和生产等多个环境)
- 支持联动部署,比如:开发环境部署成功后可自动触发测试环境启动部署
- 服务管理支持机柜功能,机柜可与多个部署环境绑定
- 支持项目克隆功能
- 项目支持多成员
- 通过Websocket实现项目部署状态的实时跟踪
- 支持钉钉机器人、Slack、邮件和自定义Webhook的服务集成
Piplin安装与使用
一. 克隆代码
$ git clone https://github.com/Piplin/Piplin.git piplin
二. 安装依赖包
$ cd piplin
$ make
安装过程如出现卡顿,请尝试更换npm镜像: npm config set registry
http://registry.npm.taobao.org/
三. 安装Piplin
$ make install
Piplin安装器会进入一个交互式控制台,请根据提示进行相关参数设置。
四. 请将Web服务器的根目录指向public/, 请参考examples/下的相关配置文件,里面包含 Apache和Nginx的配置范例.
注意: examples/ 提供的仅仅是范例,并不能保证直接拷贝就能使用,需要根据实际情况进行相关配置调整
五. 配置supervisord
Piplin使用supervisord进行后台进程管理。该配置范例请查看examples/supervisor.conf。 一般supervisord的主配置文件在
/etc/supervisor/supervisord.conf ,其大致内容:
[unix_http_server]
file=/var/run/supervisor.sock ; (the path to the socket file)
chmod=0700 ; sockef file mode (default 0700)
......
[include]
files = /etc/supervisor/conf.d/*.conf
概念解释
- 构建代理(Build Agent): 执行构建任务的远程服务器,也可以是本机。
- 机柜(Cabinet): 服务器分组,在后台设置,项目的部署环境可以关联机柜
- 出品定义(Pattern): 决定了构建物的产出规则,比如:app.tar.gz,表示你需要将构建产出的app.tar.gz回传到宿主机。
- 配置文件: 在执行部署操作时,配置文件会以文件的形式写入远程服务器中,配置文件需要和部署环境绑定。
- 共享文件/目录: 就是在远程服务器的发布目录建立软链接,比如图片上传,你不需要每次部署都是一个空的目录,这个时候可以通过建立软链进行持久化。
- 部署环境: 一个项目可以包含多个部署环境,例如:开发、测试、预发布和生产等
- 远程服务器: 项目要部署的服务器
- 构建计划: 执行构建任务的地方,包含构建步骤、构建服务器和出品定义等
- 部署计划: 执行部署任务的地方,包含部署步骤、部署环境、配置文件和共享文件等