Gitlab安装部署
一、下载对应的安装包
查看Linux系统的版本信息
cat /proc/version
查看Linux系统发行版信息
cat /etc/redhat-release
然后下载匹配版本的 gitlab,因为 gitlab 官网下载比较缓慢,所以这里附带了清华的镜像
Index of /gitlab-ce/yum/el7/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
安装包大概长这样,el7表示是 Centos 7
gitlab-ce-16.11.1-ce.0.el7.x86_64.rpm
注意:
1、从 GitLab 12.1 版本开始,PostgreSQL 成为了唯一官方支持的数据库管理系统 (DBMS)。之前的版本支持 MySQL,但从 12.1 版本开始,GitLab 官方推荐并仅支持使用 PostgreSQL 作为其后端数据库。
2、gitlab Omnibus EE才支持mysql数据库,如果想将mysql数据库作为知识库是需要注意这一点的。尝试用 gitlab-ce-9 做相关配置,总会报错找不到 /opt/gitlab/embedded/lib/ruby/include/ruby.h(如果有大神安装成功了,欢迎交流)
二、查看依赖
rpm -qa | grep -i openssh-server
rpm -qa | grep -i policycoreutils-python
rpm -qa | grep -i ruby-devel
rpm -qa | grep -i gcc
这里因为每个服务器已有的安装包并不一样所以仅列举了笔者额外安装的包
因为我的机器不能连接内网所以还离线安装了ruby
(最好yum安装)
1、ruby离线安装
下载安装包(高版本向下兼容,所以建议下新版本的)
https://www.ruby-lang.org/en/downloads/
解压
tar -zxvf ruby-2.7.1.tar.gz
进入安装目录:
cd ruby-2.7.1
执行配置:
./configure
安装(需要点时间):
make && make install
安装成功后,查看版本
ruby -v
三、安装配置
1、安装
rpm -ivh gitlab-ce-16.11.1-ce.0.el7.x86_64.rpm
查看即将要设置的gitlab端口是否被占用(这里想要设置为 10005)
netstat -tuln | grep 10005
或者
ss -tuln | grep 10005
ss 通常比 netstat 更快,因为它使用内核信息而不是读取 /proc 文件系统。
mysql安装请参考
MYSQL8.0安装_mysql-8.0.29-linux-glibc2.12-x86_64 安装-CSDN博客
2、修改配置文件
vim /etc/gitlab/gitlab.rb
修改访问链接
external_url ='http://192.168.237.180:10005'
2.1、修改知识库配置(如果想用mysql作为知识库)
参数 | 参数值 | 说明 |
---|---|---|
gitlab_rails[‘db_adapter’] | mysql2 | 使用 MySQL 数据库 |
gitlab_rails[‘db_encoding’] | utf8mb4 | UTF-8MB4是对UTF-8的扩展,它支持更广泛的字符集范围,包括emoji表情、部分罕用汉字、新增的Unicode字符等 |
gitlab_rails[‘db_collation’] | utf8mb4_unicode_ci | 用来指定数据库中用于字符串比较和排序的规则(collation)的 |
gitlab_rails[‘db_database’] | gitlab_db | MySQL 数据库名称 |
gitlab_rails[‘db_host’] | 192.168.1.1 | 数据库服务器ip |
gitlab_rails[‘db_port’] | 3306 | MySQL 数据库的端口号 |
gitlab_rails[‘db_username’] | root | MySQL 数据库的用户名 |
gitlab_rails[‘db_password’] | 123456 | MySQL 数据库的密码 |
在配置 GitLab 以使用 MySQL 数据库时,utf8mb4_unicode_ci
是一个常用的 collation 设置。这个 collation 支持 Unicode 字符集,并且是大小写不敏感的(ci 代表 case-insensitive),这意味着在比较字符串时不会区分大小写。
配置案例
gitlab_rails['db_adapter'] = 'mysql2'
gitlab_rails['db_encoding'] = 'utf8mb4'
gitlab_rails['db_collation'] = 'utf8mb4_unicode_ci'
gitlab_rails['db_database'] = 'gitlab_kf'
gitlab_rails['db_username'] = 'scairengine'
gitlab_rails['db_password'] = 'Sczqair'
gitlab_rails['db_host'] = '172.21.237.11'
gitlab_rails['db_port'] = '3306'
postgresql['enable'] = false
查看配置是否ok
gitlab-rake gitlab:check
创建数据库表
gitlab-rake gitlab:setup
2.2、文件路径配置(如果想用文件存储)
参数 | 参数值 | 说明 |
---|---|---|
default | /opt/git-data | 数据主存储路径 |
alternative | /opt/git-data_bak | 数据存储备份路径 |
git_data_dirs({
"default" => {
"path" => "/opt/git-data"
},
"alternative" => {
"path" => "/opt/git-data_bak"
}
})
3、重新加载配置文件
gitlab-ctl reconfigure
加载完毕后会看到
/etc/gitlab/initial_root_password 是初始化密码的临时存放地,并且在第一次重新加载配置 gitlab-ctl reconfigure 24小时后会被清理。这个密码要保存好,是root用户名的密码,root用户是最高权限用户,gitLab后续的用户创建必须要先用root用户创建,当然可先用root用户创建一个和root同样权限的管理员账户,后续使用这个新建的管理员账户去添加人员和创建项目
查看初始密码
vim /etc/gitlab/initial_root_password
初始密码:f6jc04NCWnpGxM5h+DIeg6TEgqUqrzjYxR6ze5NHQkg=
4、设置gitLab开机自动启动
sudo systemctl enable gitlab-runsvdir.service
5、访问
http://172.21.237.180:10005
设置不允许自由注册(gitLab一般是私有仓库,不允许随便注册,用户只能靠高级用户新建)
四、gitlab常用命令
1、启动 gitlab
gitlab-ctl start
2、停止 gitlab
gitlab-ctl stop
3、重启 gitlab
gitlab-ctl restart
4、查看服务状态
gitlab-ctl status
5、加载配置
gitlab-ctl reconfigure
6、验证配置文件
gitlab-ctl show-config
7、查看日志
gitlab-ctl tail
五、gitlab卸载
1、停止服务
gitlab-ctl stop
2、卸载
rpm -e gitlab-ce
3、杀掉多余进程
ps aux | grep gitlab
4、清理文件
find / -name gitlab | xargs rm -rf
文件
gitlab-ctl show-config
7、查看日志
gitlab-ctl tail
五、gitlab卸载
1、停止服务
gitlab-ctl stop
2、卸载
rpm -e gitlab-ce
3、杀掉多余进程
ps aux | grep gitlab
4、清理文件
find / -name gitlab | xargs rm -rf