发布系统在技术团队中有着重要作用, 承担我们每天的服务部署工作, 企业发布系统根据企业技术能力来决定, 小公司不像那些公司一样,有充足的人力去开发一套自己的发布系统. 所以尽可能的去寻找一些适合企业应用的部署系统, 以提高人力成本.
这里推荐两款开源的发布系统:
- jekins: https://jenkins.io/ (Java语言开发)[普遍]
- walle: http://www.walle-web.io/ (PHP语言开发)[小众]
jekins可能大家都很熟悉,也有好多文章, walle是国人写的一个轻量的发布系统, 只所以推荐它 是因为相对其它开源的发布系统来说, 其UI界面至少看着比较舒服, 基本功能也都有. 支持国产开源.
Walle安装部署
Walle是基于PHP写的, 所以安装前需要安装PHP环境.
PHP环境安装
这里选用php最新稳定版7.1.10
1 | [root@localhost ~]# wget http://cn2.php.net/distributions/php-7.1.10.tar.gz |
修改php进程归属用户(/usr/local/php/etc/php-fpm.d/www.conf
), 修改user和group值.
笔者示例中值均为 elonsu
.
1 | [elonsu@localhost ~]$ grep -C 3 'elonsu' /usr/local/php/etc/php-fpm.d/www.conf -n |
配置php环境变量
在/etc/profile
文件末尾追加环境变量,如下:
1 | # 这是PHP环境变量 |
使配置生效
1 | [root@localhost ~]$ source /etc/profile |
下载Walle
Github: https://github.com/meolu/walle-web
1 | elonsu@localhost cloud]$ pwd |
设置数据库链接和用户注册邮件通知服务配置
安装Walle
1 | [elonsu@localhost walle-web]$ curl -sS https://getcomposer.org/installer | php |
Nginx反向代理
1 | [elonsu@localhost walle-web]$ cat /usr/local/nginx/conf/domains/walle.wuyu.com |
访问登录
访问: http://walle.wuyu.com/
首次登录默认管理员用户admin/admin
.
配置项目
发布系统部署完后登录后效果图如下(苏若年账户为笔者自己创建):
添加项目配置
【项目配置】- 【新建项目】:
上图为个人技术博客发布项配置.
检测项目配置
【项目配置】-【配置列表】-【检测】, 检测配置项是否配置成功.
创建上线任务
【我的上线单】-【创建上线单】-【选择上线的模板】, 填写如下项:
- 上线单标题
- 选取分之
- 版本选取
- 全量/增量
填写完之后会在【我的上线单】, 中出现刚才添加的上线单项目. 如下图:
执行上线操作
【我的上线单】-【选择上线单项】-【上线】-【部署】:
远程GIT仓库授权配置
远程私有仓库ssh 授权
1 | [elonsu@localhost ~]# ssh-keygen -t rsa -C "dennisit@163.com" |
这里的id_rsa为私钥, id_rsa_pub为公钥
Git服务器配置SSH公钥
以开源中国为例, 【个人】-【设置】-【SSH公钥】
开源中国官方配置说明:http://git.mydoc.io/?t=154712
检测配置
1 | [elonsu@localhost ~]$ ssh -T git@gitee.com |
部署目标机器授权
我们以root用户身份, 将项目发布到192.178.0.107
服务上时,需要给目标机器授权.如下:
1 | [root@localhost ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.0.107 |
此时会提示让输入目标服务器密码. 正确输入密码后,配置成功.