CentOS7 Deploy Gitblit Server


CentOS 7 Install Gitblit

官网:http://gitblit.github.io/gitblit/

GItblit 提供两种安装方式:

  • Gitblit GO:默认使用 Jetty 作为 web 容器;
  • Gitblit WAR:需要自定义 Servlet 容器(Jetty6/7/8 或者 tomcat 6/7)

Gitblit 需要 Java 运行环境

Linux 安装 Java 环境参考:https://naivekyo.github.io/2021/07/06/centos7-install-jdk/

下载并配置 gitblit

1、下载

这里为了方便直接下载 GO 版本的 Gitblit,内部集成 Servlet 容器 Jetty。

上传到 Linux 服务器,使用命令解压:

sudo tar -zxvf gitblit-1.9.1.tar.gz -C 指定目录的绝对/相对路径

2、配置

解压后,通过 Gitblit根目录/data/giblit.properties 配置文件对 Gitblit 进行配置,默认配置如下:

#
# GITBLIT.PROPERTIES
#
# Define your custom settings in this file and/or include settings defined in
# other properties files.
#

# Include Gitblit's 'defaults.properties' within your configuration.
#
# NOTE: Gitblit will not automatically reload "included" properties.  Gitblit
# only watches the 'gitblit.properties' file for modifications.
#
# Paths may be relative to the ${baseFolder} or they may be absolute.
#
# COMMA-DELIMITED
# SINCE 1.7.0
include = defaults.properties

#
# Define your overrides or custom settings below

在末尾添加如下配置:

# 设置服务器访问端口, 默认 8080
server.httpPort = 10100

# https port, 设置为 0 表示关闭
server.httpsPort = 0

# 访问 IP 地址, 暂不设置, 一旦设置了就无法通过外网访问
server.httpBindInterface =
# 关闭服务的端口, 默认 8081
server.shutdownPort = 10101

修改 Gitblit 的启动脚本文件,默认启动脚本如下:

#!/bin/bash
java -cp "gitblit.jar:ext/*" com.gitblit.GitBlitServer --baseFolder data

修改为如下配置,表示后台运行 Gitblit 服务,同时将其运行时产生的错误和正确的信息保存到 log_gitblit.log 文件:

#!/bin/bash
java -cp "gitblit.jar:ext/*" com.gitblit.GitBlitServer --baseFolder data > log_gitblit.log 2>&1 &

3、开放端口

由于我们刚刚设置端口为 1010010101 现在如果想要访问 Gitblit 就必须开放这两个端口:

sudo firewall-cmd --zone=public --add-port=10100/tcp --permanent
sudo firewall-cmd --zone=public --add-port=10101/tcp --permanent

# 刷新防火墙
sudo firewall-cmd --reload

4、启动 Gitblit 服务

建议切换为 root 用户进行开启服务,因为我使用 sudo ./gitblit.sh 执行发现,无法通过该脚本调用 java 命令,日志文件中提示找不到 java -cp 命令,切换到 root 再次执行就没问题了:

补充:OvO,当时没注意,其实这里应该是 sudo sh ./gitblit.sh,这样就可以了

# 切换到 root
su -
# 进入 gitblit 的根目录, 执行启动命令
./gitblit.sh

# 查看进程
ps -ef | grep gitblit
# 显示
root       1671      1  6 21:23 pts/0    00:00:10 java -cp gitblit.jar:ext/* com.gitblit.GitBlitServer --baseFolder data
naivekyo   1746   1728  0 21:25 pts/0    00:00:00 grep --color=auto gitblit

# 启动成功

5、访问

在主机中通过 ip + 端口号访问:

6、仓库和用户的管理

参考官方文档中关于仓库和用户的管理: http://gitblit.github.io/gitblit/administration.html

有两种方式:

  • Web 应用管理;
  • 配置文件管理。

7、用户名和密码

登录后记得及时通过个人资料界面修改密码:

  • 对于用户名:不区分大小写;
  • 对于密码:区分大小写,加密方式也可以设置,通过 gitblit.properties 配置,参考官方文档。

8、关闭服务

调用 Gitblit 根目录中的 gitblit-stop.sh 脚本即可。

几个问题

(1)mobaxTerm 连接虚拟机太慢

原因是 ssh 反向解析 dns 及验证用户太费时间

决解方法:修改 ssh 设置

sudo vim /etc/ssh/sshd_config

# 修改如下配置
useDNS = no
GSSAPIAuthentication no

(2)关于 sudo 的问题

默认只有 root 具有执行 sudo bash 的权限,其他用户是不具有的,需要配置一下:

# 使用 visudo 修改 /ext/sudoers

# 找到这两行

## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL

# 在后面加上, 这里的用户名就是指定某某用户可以使用 sudo
用户名   ALL=(ALL)	      ALL

sudo 的执行流程如下:

  • 当使用者使用 sudo 时,系统在 /etc/sudoers 文件中搜寻该使用者是否具有执行 sudo 的权限;
  • 当使用者具有该权限时,就会让使用者 “输入使用者自己的密码来确定”;
  • 若密码输入成功,则开始进行 sudo 后面的命令(但 root 使用 sudo 不需输入密码);

(3)vim 显示行号

暂时显示行号可以进入末行模式输入::set number

结合 nG n 表示行号,可以跳转到指定行。

(4)Linux 语言

命令:echoe "LANG=en_US.utf8" > /etc/locale.conf


Author: NaiveKyo
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint polocy. If reproduced, please indicate source NaiveKyo !
  TOC