前言
硬件环境:ubuntu 20 +树莓派 arm64 4核8g
gitlab对系统配置较高至少要有4g运行内存才能正常运行
安装
GitLab是一个专业的Git解决方案,功能强大,和GitHub类似,而且其Community Edition (CE)是免费的,完全可以胜任为中小团队提供专业代码托管服务的工作,当然更重要的是它可以在Raspberry Pi上部署运行。
准备
项目首页:https://about.gitlab.com
下载页:https://packages.gitlab.com/gitlab/raspberry-pi2
下载地址(打开页面,点击右上角的Download按钮):

选择任意下载、下载好后上传到你的服务器后进行安装
sudo dpkg -i [gitlab_package].deb
安装成功后会提示

查看端口占用信息、看80端口是否被占用
netstat -nultp
GitLab默认会占用80、8080和9090端口,如果服务器上还有tomcat、Jenkins等其他服务,可能会遇到端口冲突。所以我们需要修改默认端口
修改系统端口
用vim打开gitlab的配置文件:
vim /etc/gitlab/gitlab.rb
找到 external_url 关键字 --- 这个参数为gitlab对外开放的url地址

##! Note: During installation/upgrades, the value of the environment variable
##! EXTERNAL_URL will be used to populate/replace this value.
##! On AWS EC2 instances, we also attempt to fetch the public hostname/IP
##! address from AWS. For more details, see:
##! https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html
external_url 'http://gitlab.zhank.top:8066' # 改成你自己的host 如果是外网可以是外网ip或者域名
## Roles for multi-instance GitLab
external_url 改成你的正确地址、内网就用内网ip、公网有域名就用域名、我的域名是已经备案的、且对外进行内网穿透了可以外网进行访问我的gitlab。
然后再找到 nginx['listen_port'] 关键字
修改nginx默认端口

默认是被注释到了且还是nil、将它修改成8066端口、并且打开注释
##! **Override only if you use a reverse proxy**
##! Docs: https://docs.gitlab.com/omnibus/settings/nginx.html#setting-the-nginx-listen-port
nginx['listen_port'] = 8066
##! **Override only if your reverse proxy internally communicates over HTTP**
##! Docs: https://docs.gitlab.com/omnibus/settings/nginx.html#supporting-proxied-ssl
# nginx['listen_https'] = nil
保存文件修改 :wq
修改配置后更新配置
gitlab-ctl reconfigure
安装好后

浏览器输入http://gitlab.zhank.top 即可进入gitlab 、我这里使用了内网穿透 外网阿里云服务器用的是默认80端口映射到本地服务器8066了因此我不需要在后面加端口

默认账号用户名为root、查看默认密码在/etc/gitlab/initial_root_password 下

cat /etc/gitlab/initial_root_password
登录成功后

进行配置些相关安全性的东西
关闭注册功能
点击头像进入设置管理界面
将注册功能取消掉、这样就可以防止外网用户恶意注册破坏代码管理

设置用户上限、好像gitlab默认为十个用户根据你自己的公司成员来确定具体的用户数

到这gitlab基本已经搭建好了、gitlab的使用需要一定时间的去学习才能很好的使用、gitlab的教程后续再给大家分享我们测试如何使用gitlab的。
Gitlab的服务构成
Nginx:静态web服务器。
gitlab-shell:用于处理Git命令和修改authorized keys列表。
gitlab-workhorse: 轻量级的反向代理服务器。
logrotate:日志文件管理工具。
postgresql:数据库。
redis:缓存数据库。
sidekiq:用于在后台执行队列任务(异步执行)。
unicorn:An HTTP server for Rack applications,GitLab Rails应用是托管在这个服务器上面的。
gitlab服务命令
3.1 Service Management Commands
这类命令来管理服务
command | function |
start | 启动所有服务 |
stop | 关闭所有服务 |
restart | 重启所有服务 |
status | 查看所有服务状态 |
tail | 查看日志信息 |
service-list | 列举所有启动服务 |
graceful-kill | 平稳停止一个服务 |
#启动所有服务
gitlab-ctl start
#启动单独一个服务
gitlab-ctl start nginx
#查看日志,查看所有日志
gitlab-ctl tail
#查看具体一个服务的日志,类似tail -f
gitlab-ctl tail nginx
General Commands
全局命令
command | function |
help | 帮助 |
reconfigure | 修改配置文件之后,重新加载 |
show-config | 查看所有服务配置文件信息 |
uninstall | 卸载这个软件 |
cleanse | 清空gitlab数据 |
service-list | 列举所有启动服务 |
graceful-kill | 平稳停止一个服务 |
#显示所有服务配置文件
[root@localhost gitlab]#gitlab-ctl show-config
#卸载gitlab
[root@localhost gitlab]#gitlab-ctl uninstall
DatabaseCommands
数据库命令
command | function |
pg-upgrade | 更新postgresql版本 |
revert-pg-upgrade | 还远先前的(离现在正在使用靠近的版本)一个数据库版本 |
show-config | 查看所有服务配置文件信息 |
uninstall | 卸载这个软件 |
cleanse | 清空gitlab数据 |
service-list | 列举所有启动服务 |
graceful-kill | 平稳停止一个服务 |
#升级数据库
[root@localhost gitlab]# gitlab-ctl pg-upgrade
Checking for an omnibus managed postgresql: OK
Checking if we already upgraded: OK
The latest version 9.6.1 is already running,nothing to do
#降级数据库版本
[root@localhost gitlab]# gitlab-ctl revert-pg-upgrade







