传统的线上部署方式是通过ftp手动部署项目,一个项目还好,当项目多或者项目不停的版本迭代的时候,这种方式就显的很繁琐,于是需要寻求一种更加智能的方式来部署线上项目,很多公司内部都是自己开发,原理都大同小异,通过脚本+shell命令方式部署,本文主要介绍利用开源的系统walle进行服务器搭建的过程。
官网文档:https://www.walle-web.io/docs/
下面介绍基于centos 7+lamp进行环境搭建的过程,lamp环境安装请自行百度,建议通过源码安装,阿里云有提供一键安装脚本,不过软件不是最新的。
一、安装walle
具体安装方法请按照官方文档。我是安装在内网的centos 7环境;
二、配置ssh-key
该步骤其实是建立免密码登录远程服务器,walle一般是通过php-fpm的用户进行操作,通常为www用户,所以需要在www用户下建立服务器ssh-key。
假设我内网服务器为a,远程服务器为b。
在内网服务器a需要进行的命令如下:
su www
ssh-keygen -t rsa
然后一路回车
如果需要建立root用户ssh免密码登录,需求进行如下命令:
ssh-copy-id -i ./id_rsa.pub root@【b服务器的IP】
然后查看生成的公钥内容:
cat id_rsa.pub
复制显示的内容,进行下一步,
在外网服务器b需要进行的命令如下:
su www
cd ~/.ssh #没有目录则新建
vi authorized_keys
填写复制的公钥内容到文件里面,保存退出即可
验证能否登录
在a服务器执行命令:
ssh www@【b服务器的IP】
正常情况会出现登录成功提示
三、新建项目
搭建好walle后登录系统,登录账号密码为admin,然后新建系统,按照官方文档新建即可,此处需要注意的是地址可以是http协议和svn协议
添加成功后点击检测,提示配置成功,如果提示错误,通常都是ssh-key配置不成功。
三、总结
1、如果ssh 远程登录服务器提示需要密码,则表示配置没有成功,通常是authorized_keys文件名有空格或者其里面的内容有空格,删除重新建即可。
2、walle可以同时发布多个域名,只需要在服务器列表那填写即可。
3、如果SVN没有tag或者branch,不要选择这两项,默认是选中的。