一、概叙
本地代码写好部署到远程服务器需要通过SSH建立通信,Git支持SSH连接,连接成功后可以对Git仓库进行克隆、提交代码等操作,蛋是环境需要自己配置。windows是没有open ssh这个东西的,需要自己装软件来实现这个功能,目前有两种选择:Copssh和Gitblit
二、Copssh
什么是Copssh?
Copssh is an OpenSSH server and client implementation for Windows systems. It is a yet another packaging of portable OpenSSH, Cygwin,some popular utilites, plus implementation of some best practices regarding security.
网上能找到的都是Copssh4.1.0,这个版本很低(官网最新版已经7.1了),在windows 2012成功安装后,COPSSH Control Panel打不开,后来把服务器操作系统换到windows 2008也是同样的问题😳。原来免费版的只支持32位操作系统,但是云服务器不能装32位系统,最新版的Copssh需要去官网付费下载😹。总之,折腾了好久最终选择放弃。
三、Gitblit安装与配置
什么是Gitblit?
Gitblit is an open-source, pure Java stack for managing, viewing, and serving Git repositories. It’s designed primarily as a tool for small workgroups who want to host centralized repositories
Gitblit需要运行在JDK环境上,所以需要先下载安装JDK并配置环境变量。下载安装就不写了。
3.1、配置JDK环境变量
新建系统变量JAVA_HOME,变量值为JDK所在目录
新建系统变量CLASSPATH,变量值为.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar (注意前面有个.)
编辑系统变量Path,加入%JAVA_HOME%\bin ;%JAVA_HOME%\jre\bin变量
配置完后,在cmd输入javac输出类似下图这样的信息就说明jdk环境变量配置成功了
3.2、Gitblit安装与配置
- 3.2.1、下载成功Gitblit后直接解压到指定目录就行了,然后修改/data/defaults.properties文件:
1 | #Git仓库的文件路径 |
注意:我用的版本是1.8.0之前的版本是修改gitblit.properties文件
- 3.2.2、双击gitblit.cmd文件就可以启动了,启动效果如下:
- 3.2.3、现在是英文的,如果要改为中文,可以登录后(默认账号密码都是admin)点击my profile-preferences修改。如下所示:
- 3.2.4、把gitblit设置为windows服务
在Gitblit文件夹中编辑installService.cmd文件
修改保存后,以管理员方式运行后,windows服务会生成一个Gitblit服务
- 3.2.5、外网访问gitblit
需要在云服务器控制台中放通1111、29418端口。1111是上面设置的http协议端口,29418是Git提交代码需要访问的端口
这样配置后,外网就可以输入服务ip:1111访问到Gitblit主页、克隆仓库到本地了 - 3.2.6、克隆服务器仓库到本地
先在服务端创建一个仓库
复制刚刚版本库的地址(localhost需要改为公网ip),通过Git克隆到本地
仓库的初始化文件拉到本地就成功了
能从远程服务器拉代码到本地,说明SSH通信连接已经建立,自然就能提交代码上去,提交代码步骤就不写了。 - 3.2.7、自动化部署
修改C:\gitblit-1.8.0\data\groovy\localclone.groovy文件的rootFolder为你想部署的文件夹
然后编辑仓库-receive-post-receive脚本-在select中选择刚刚编辑的文件
设置完记得保存。这样本地每次提交代码到服务器,Gitblit都会自动把本地的所有最新代码放到c:/blog文件夹下,实现自动化部署。
四、填坑记录
- 4.1、从本地复制JDK到云服务器时多次操作均报类似下面这种错误
最终解决是放弃本地文件传输😹,在服务器端直接通过网络下载 - 4.2、把Gitblit设置成windows服务后,服务启动不了
查看C:\gitblit-1.8.0\logs输出的日志
1 | [2019-12-15 13:21:12] [info] Run service finished. |
关键错误[Failed creating java],原来我的JDK安装的是32位的,所以设置服务的时候改成SET ARCH=x86,然后用sc delete gitblit删除服务,再重新运行installService.cmd文件就可以了
如果服务还启动不了,可以以管理员运行gitblitw.exe文件,再修改JVM。如下图所示:
这样就可以重启服务了。还有问题自行百度吧😹
- 4.3、删除服务时如果出现"指定的服务已经标记为删除"错误提示了
需要把相关进程关闭并关闭服务管理窗口,然后重新执行删除命令即可