GitLab部署
GitLab简介
GitLab 是一个用于仓库管理系统的开源项目。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用。
gitlab主要用于私用,github主要用于公网,都可看成web版的git
Community Edition or Enterprise Edition,ce和ee分别指的是社区版和企业版,毫无疑问社区版已经能满足我们的需求了。
常用的网站
官网 : https://about.gitlab.com/
https://packages.gitlab.com/gitlab/gitlab-ce CE版下载地址
https://packages.gitlab.com/gitlab/gitlab-ee EE版下载地址
国内镜像 :https://mirrors.tuna.tsinghua.edu.cn/gitlab‐ce/yum/
安装与配置
CentOS 安装
- 环境:CentOS 8
- 关闭selinux和防火墙
安装依赖包
dnf install -y curl policycoreutils openssh-server postfix
systemctl enable sshd
systemctl start sshd
systemctl enable postfix
systemctl start postfix
联网安装
[root@zutuanxue ~]# vim /etc/yum.repos.d/gitlab-ce.repo
[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1
[root@zutuanxue ~]# dnf install gitlab-ce -y
(
如果安装比较慢的话也可以从https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el8/下载rpm包到本地进行安装
[root@zutuanxue ~]# yum localinstall gitlab-ce-12.9.2-ce.0.el8.x86_64.rpm
)
配置
[root@zutuanxue ~]# vim /etc/gitlab/gitlab.rb
external_url 'http://192.168.2.100'
#修改为本机的名称或者IP地址
###(
GitLab默认会占用80、8080和9090端口,如果服务器上还有tomcat、Jenkins等其他服务,可能会遇到端口冲突,如果想修改端口的话可以
external_url 'http://192.168.2.100:自定义端口'
unicorn['port'] = xxx
prometheus['listen_address'] = 'localhost:xxx'
将xxx更换成自己需要使用的端口
###)
[root@zutuanxue ~]# gitlab-ctl reconfigure
#修改完成之后重新配置gitlab
命令和目录
/opt/gitlab/ # gitlab的程序安装目录
/var/opt/gitlab # gitlab数据目录
/var/opt/gitlab/git‐data # 存放仓库数据
命令 | function |
---|---|
start | 启动所有服务 |
stop | 关闭所有服务 |
restart | 重启所有服务 |
status | 查看所有服务状态 |
tail | 查看日志信息 |
service-list | 查看所有启动服务 |
graceful-kill | 平稳停止一个服务 |
help | 帮助 |
reconfigure | 修改配置文件之后,重新加载 |
show-config | 查看所有服务配置文件信息 |
uninstall | 卸载这个软件 |
cleanse | 清空gitlab数据 |
[root@zutuanxue ~]# gitlab-ctl start
ok: run: alertmanager: (pid 1564) 3804s
ok: run: gitaly: (pid 1550) 3804s
[root@zutuanxue ~]# gitlab-ctl start nginx
ok: run: nginx: (pid 1531) 3823s
#这些操作指令,如果不指定名称的话,默认会操作所有
Gitlab的服务构成
[root@zutuanxue ~]# gitlab-ctl service-list
gitaly* git RPC服务,用于处理gitlab发出的git调用
gitlab-workhorse* 轻量级的反向代理服务器
logrotate* 日志文件管理工具
nginx* 静态web服务
postgresql* 数据库
redis* 缓存数据库
sidekiq* 用于在后台执行队列任务
unicorn* 用Ruby编写的web server,GitLab Rails应用是托管在这个服务器上面
alertmanager*,gitlab-exporter*,grafana*,node-exporter*,postgres-exporter*,prometheus*,redis-exporter* #与监控相关的插件
在浏览器中访问本机,就可以打开登录界面,初次登录必须修改密码(不能少于8位),更改完成后可以使用管理员账号登录,用户名为root
2.4、gitlab汉化
1、浏览器设置中文后重新打开
2、点击右上角头像,选择设置(settings)
3、左边选择preferences–>languages—>save
4、刷新页面
如果还是有问题
[root@zutuanxue ~]# dnf groupinstall chinese-support#安装中文支持
[root@zutuanxue ~]# dnf install ibus* #安装输入法
#重启后在系统设置更改语言环境为中文
Ubantu安装
- 运行 Ubuntu 22.04 或 20.04 且具有 SSH 访问权限的虚拟或专用服务器。
- 静态主机名(
gitlab.howie.top
) - 具有管理员权限的 Sudo 用户
- 2GB 内存或更多
- 2 个或更多 vCPU
- 互联网连接
安装依赖
sudo apt update
sudo apt-get upgrade
sudo apt install build-essential ca-certificates curl file git openssh-server
sudo DEBIAN_PRIORITY=low apt install postfix
安装postfix时会出现一系列界面交互选项,可以参考以下配置:
General type of mail configuration?: Internet Site
System mail name: howietron.com
Root and postmaster mail recipient: howietron
Other destinations to accept mail for: $myhostname, howietron.com,
mail.howietron.com, localhost.howietron.com, localhost
Force synchronous updates on mail queue?: No
Local networks: 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
Mailbox size limit: 0
Local address extension character: +
Internet protocols to use: all
添加GitLab的包并进行安装
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh |sudo bash
sudo apt-get install gitlab-ce
网络可能不好,需要重试几次
PS:也可以直接下载安装包
下载安装包,访问链接:
https://packages.gitlab.com/gitlab/gitlab-ce
wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/ubuntu/xenial/gitlab-ce_12.1.4-ce.0_amd64.deb/download.deb
本地安装
dpkg -i gitlab-ce_12.1.4-ce.0_amd64.deb
出现以下提示,表示安装成功
配置GitLab
PS:unbuntu 下vi 输入i 不进入insert插入模式
以下命令可能执行不了原因是ubuntu预装的是vim tiny版本,需要的是vim full版本 —执行 sudo apt install vim
vim /etc/gitlab/gitlab.rb
配置页面访问路径external_url,可根据你实际ip填写
配置smtp邮件系统(根据实际情况配置),smtp_enable_starttls_auto、smtp_tls和smtp_pool不能同时开启(网上有些教程都是true,是不对的,在实际操作中是会报错的)
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "填写你自己的@163.com"
gitlab_rails['smtp_password'] = "授权码"
gitlab_rails['smtp_domain'] = "163.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = false
gitlab_rails['smtp_tls'] = true
gitlab_rails['smtp_pool'] = true
gitlab_rails['gitlab_email_from'] = 'howietron@163.com'
配置外部数据库,该项配置可以不用配置(gitlab已经内置),之所以配置方便后期管理
gitlab_rails['db_adapter'] = "postgresql"
gitlab_rails['db_encoding'] = "utf8"
# gitlab_rails['db_collation'] = nil
gitlab_rails['db_database'] = "postgresql"
gitlab_rails['db_username'] = "postgresql"
gitlab_rails['db_password'] = "addddzGYmMc"
gitlab_rails['db_host'] = "10.0.31.164"
gitlab_rails['db_port'] = 15432
注意:Gitlab 官方宣布,将从 12.1 版本开始不再支持 MySQL 数据库。早在 2017年7月,Gitlab 就计划将弃用对 MySQL 的支持。如果想用mysql的话建议使用12版本的gitlab。
修改完毕以后按esc键
退出编辑模式,然后输入:wq
保存即可。接下来通过下列命令重启服务。
# 停止gitlab服务
sudo gitlab-ctl stop
# 启动gitlab服务
sudo gitlab-ctl reconfigure
# 重启所有gitlab组件
sudo gitlab-ctl restart
# 启动所有gitlab组件
sudo gitlab-ctl start
# 启用开机自启动
sudo systemctl enable gitlab-runsvdir.service
初始化root的密码
按照如下命令初始化管理员账户的密码:
#切换路径
cd /opt/gitlab/bin/
#打开控制台
sudo gitlab-rails console -e production
#查询用户账号信息并赋值给u
u=User.where(id:1).first
#设置root的密码
u.password='Asd1234'
#确认密码
u.password_confirmation='wxy123456'
#保存信息(注意有个感叹号)
u.save!
#退出
exit
接下来就可以通过http://10.0.31.164:10000/
来登录gitlab了。登录的地址是你之前设置external_url
字段的值。
gitlab卸载
1.您可能想要完全卸载GitLab以及其所有数据,我将向您展示如何操作!
*******************************************************************
* * * * * * * * * * * STOP AND READ * * * * * * * * * *
*******************************************************************
This command will delete *all* local configuration, log, and
variable data associated with gitlab.
You have 60 seconds to hit CTRL-C before configuration,
logs, and local data for this application are permanently
deleted.
*******************************************************************
停止gitlab服务
sudo gitlab-ctl stop
这将删除关于gitlab的所有文件和数据!
sudo gitlab-ctl uninstall
sudo gitlab-ctl cleanse
sudo gitlab-ctl remove-accounts
使用的软件包管理器卸载gitlab-ce或gitlab-ee:
sudo dpkgP gitlab-ce
接下来只需要删除剩余的内容:
rm -rf /opt/gitlab*
rm -rf /var/opt/gitlab*
rm -rf /etc/gitlab*
rm -rf /var/log/gitlab*
最后,还要从apt源中删除条目:
rm /etc/apt/sources.list.d/runner_gitlab-runner.list*
rm /etc/apt/sources.list.d/gitlab_gitlab-ee.list*
rm /etc/apt/sources.list.d/gitlab_gitlab-ce.list*
删除之后,可以使用apt update
刷新软件包源。