关于gitlab:gitlab-158-on-rocky-8

17次阅读

共计 6128 个字符,预计需要花费 16 分钟才能阅读完成。

背景:

过来始终 gitlab 搭建在 kubernetes 上,然而很多的治理不不便:资源的备份。pv,pvc 这些治理扩容,降级, 迁徙,上传文件的大小等种种问题。当初想把 gitlab 移出来间接独自部署。操作系统 rocky 8 or rocky9(为什么特别强调 8 or 9 呢?扫了一眼国内 tsinghua 的源只有 el7 的源了。8 9 搭建装置会报各种问题)

gitlab 的简略搭建

批改主机名:

hostnamectl set-hostname XXXX

挂载数据盘

集体习惯,挂载一个数据盘为 data 目录。不想挂载也能够间接应用系统盘了。这里服务器都是腾讯云 CVM:

增加 gitlab yum 源

扫了一眼根本国内用的清华的源,but 没有 el8 or el9 的源:

https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/?C=M&O=D

rocky8 or 9 rpm -ivh el7 的源会呈现如下谬误:

[root@gitlab ~]# rpm -ivh gitlab-ce-15.8.3-ce.0.el7.x86_64.rpm 
warning: gitlab-ce-15.8.3-ce.0.el7.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID f27eab47: NOKEY
error: Failed dependencies:
    perl is needed by gitlab-ce-15.8.3-ce.0.el7.x86_64
    policycoreutils-python is needed by gitlab-ce-15.8.3-ce.0.el7.x86_64

[root@gitlab ~]# yum install perl 
[root@gitlab ~]# yum install policycoreutils-python*

恩 el8 el9 不能用的 ….policycoreutils-python 包产生了扭转貌似 8 开始!无奈失常装置 rpm 包!
到 gitlab 官网 package 中查找是否有 el8 之上对应版本 rpm:

https://packages.gitlab.com/gitlab/gitlab-ce

以 el8 15.8.3 rpm 包为例:

rpm -ivh gitlab-ce-15.8.3-ce.0.el8.x86_64.rpm

配置并启动 gitlab

简略配置服务

vi /etc/gitlab/gitlab.rb

这里只配置了 external_url 对外裸露的域名, 将 gitlab.example.com 替换成本人的域名:

external_url 'http://gitlab.example.com'

加载生成配置:

gitlab-ctl  reconfigure

貌似服务会主动启动 …….
两头可能会这样:

如果切实卡的很久能够思考执行一下:

sudo systemctl restart gitlab-runsvdir

对于服务治理的常用命令:

简略看一眼即可:

## 启动服务
gitlab-ctl start
## 重启服务
gitlab-ctl restart 
## 查看状态
gitlab-ctl status 
## 进行
gitlab-ctl stop

浏览器拜访 gitlab

失常浏览器登陆 gitlab

浏览器登陆 gitlab.xxx.com

第一次关上会提醒让你批改 root 的明码, 批改完后保留,之后就能够通过用户名明码登录,root 为默认管理员账号
** 管理员账号为 root
明码保留在配置文件内 **

cat /etc/gitlab/initial_root_password

but 我这里没有主动生成 …..

[root@gitlab gitlab]# ll
total 164
-rw------- 1 root root 140237 Mar  1 17:39 gitlab.rb
-rw------- 1 root root  19412 Mar  1 17:39 gitlab-secrets.json
drwxr-xr-x 2 root root   4096 Mar  1 17:39 trusted-certs
[root@gitlab gitlab]# pwd
/etc/gitlab
[root@gitlab gitlab]# find / -name initial_root_password
[root@gitlab gitlab]# 

注:总结一下为什么没有产生 initial_root_password 我 rpm 装置过,而后卸载了只删除了 /etc/gitlab and /opt/gitlab 尝试了很屡次后有一个 /var/opt/gitlab 目录没有删除 … 要问我怎么晓得的 … 登陆后看管理员创立工夫是第一次装置的.find 了一下目录发现有那么的一个目录 …….

如何重置 root 明码?

没有 /etc/gitlab/initial_root_password 怎么破?,能够应用 gitlab-rake 命令重置 gitlab 明码:

[root@gitlab gitlab]# sudo gitlab-rake "gitlab:password:reset[root]"

输出自定义的明码:

持续浏览器登陆 gitlab.xxxx.com 用户名 root, 明码输出方才设置的明码(可能要略微等一会能力失效),也可能会跳转到一个 http://gitlab.xxxx.com/xprober.php 的页面

不要慌, 去掉 xprober.php 从新刷新一次,失常登陆 gitlab 控制台:

gitlab 控制台的简略设置:

关闭系统注册性能:

醒目提示框抉择Deactivate:

去掉 Sign-up restrictions 下两个勾选

sve changes

批改语言 preferences

LocalizationChinese sample

save changes 保留配置

刷新一下页面:

回到主页:

接下来筹备搞什么呢?web 增加 ssl 证书postgresql 用容器内部部署,用户 ldap 集成

gitlab 减少 https 证书

处于安全性思考,gitlab 减少 ssl 证书还是很有必要的。这里先配置一下基于 ssl 证书的拜访:

上传证书到服务器指定目录

解压证书到 /etc/gitlab/ssl 目录下(这个目录能够自定义,ssl 证书为腾讯云 TrustAsia 域名型 (DV) 通配符证书):

批改 gitlab.rb 配置文件:

external_url 批改为 https 域名:

external_url 'https://gitlab.xxx.com'

nginx 配置默认就设置了如下:

nginx['redirect_http_to_https'] = false
nginx['redirect_http_to_https_port'] = 80

nginx['ssl_certificate'] = "/etc/gitlab/ssl/xxxx.com_bundle.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/xxxx.com.key"

从新加载配置文件:

sudo gitlab-ctl reconfigure

netstat -ntlp 发现 nginx 监听 443 端口了:

验证 https 拜访:

浏览器拜访 https 地址,可能会偶现 502… 毕竟服务重启要肯定工夫,略微期待刷新:拜访 https 域名失常如下:

gitlab 集成内部 PostgreSQL

为什么把 postgresql 搞进去呢?因为始终对 postgresql 这货色不相熟,不好保护。就筹备把 postgresql 独自拿进去用容器部署 ….. 出了问题好歹能第一工夫还原阿 ……。降级版本我大不了新建一个容器导入呗 ……

简略装置并配置 dokcer

cd /etc/yum.repos.d/
wget https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo

替换 repo 中的 url 为国内地址(vim 关上文件输出)

:%s/download.docker.com/mirrors.tuna.tsinghua.edu.cn\/docker-ce/g

当然了也能够间接应用阿里云的源阿 …., 全凭集体习惯!

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
dnf list docker-ce
dnf install docker-ce --nobest -y

启动 docker 并将 docker 退出开机启动:

systemctl start docker
systemctl enable docker

注:docker 这里就简略配置一下了只是,毕竟只是演示。

docker 启动 postgresql

对于 gitlab 与 postgresql 版本对应最低要求,参照,https://docs.gitlab.com/ee/administration/package_information/postgresql_versions.html:

咱们这里就搭建一个 13.6 的 postgresql 了!

创立 postgresql 存储数据目录

mkdir -p /data/gitlab/pgdata

启动 postgresql 容器

docker 启动 postgresql 容器:

docker run --name dockerPG13 \
-e POSTGRES_PASSWORD=postgres \
-v /data/gitlab/pgdata:/var/lib/postgresql/data \
-p 54322:5432 \
-d postgres:13.6

进入 postgresql 容器 创立对应数据库:

查看 CONTAINER ID 并进入容器:

docker ps
docker exec -it 49318879d7c8 bash

创立对应数据库:

root@49318879d7c8:/# psql -U postgres -h localhost -p 5432
psql (13.6 (Debian 13.6-1.pgdg110+1))
Type "help" for help.

postgres=# create role gitlab login encrypted password 'gitlab';
CREATE ROLE
postgres=# create database gitlabhq_production owner=gitlab ENCODING = 'UTF8';
CREATE DATABASE
postgres=# \c gitlabhq_production
You are now connected to database "gitlabhq_production" as user "postgres".
gitlabhq_production=# CREATE EXTENSION IF NOT EXISTS btree_gist;
CREATE EXTENSION
gitlabhq_production=#  CREATE EXTENSION IF NOT EXISTS pg_trgm;
CREATE EXTENSION
gitlabhq_production=# \q
root@49318879d7c8:/# exit
exit

批改 gitlab.rb 配置文件:

vim /etc/gitlab/gitlab.rb 批改如下局部:

724 gitlab_rails['db_adapter'] = "postgresql"
725 gitlab_rails['db_encoding'] = "utf8"
726 gitlab_rails['db_collation'] = nil
727 gitlab_rails['db_database'] = "gitlabhq_production"
728 gitlab_rails['db_username'] = "gitlab"
729 gitlab_rails['db_password'] = "gitlab"
730 gitlab_rails['db_host'] = "10.0.4.58
731 gitlab_rails['db_port'] = 54322
1139  postgresql['enable'] = false

重载生成 postgresql 配置文件

sudo gitlab-ctl reconfigure

验证配置失效:

cat /opt/gitlab/embedded/service/gitlab-rails/config/database.yml

其余强调的:

再次登陆 貌似明码又会没有了阿?毕竟换了 postgresql 数据库 ….

持续重置一下明码,参照:

https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password

 sudo gitlab-rake "gitlab:password:reset"

恩关闭系统注册批改语言再来一遍 …….

刷新

算是从新温习一遍吧 ….

更改 gitlab 默认存储目录:

创立新的存储目录

gitlab 的默认存储门路位于 /var/opt/gitlab/git-data

/var/opt/gitlab/git-data

我集体习惯是将数据文件存储到 /data 目录下(/data 是个别挂载一个数据盘与系统盘离开),创立 /data/gitlab/git-data 目录:

mkdir -p /var/opt/gitlab/git-data

批改 gitlab.rb 配置文件:

貌似 644 行:

 git_data_dirs({
   "default" => {
     "path" => "/data/gitlab/git-data",
     "failure_count_threshold" => 10,
     "failure_wait_time" => 30,
     "failure_reset_time" => 1800,
     "failure_timeout" => 30
    }
 })

同步 repositories 仓库文件到新门路:

cd /var/opt/gitlab/git-data
rsync -av repositories /data/gitlab/git-data/

当然了 也能够用 cp mv 将文件夹复制过来,最好放弃一下目录权限,如果启动后有异样,记得检查一下目录权限,当然了 gitlab-ctl tail 查看日志才是更无效的办法!
为了辨别验证批改文件目录是否失效,备份原 git-data 文件夹:

cd /var/opt/gitlab
mv git-data git-dataold

生成配置,并重启 gitlab 服务:

gitlab-ctl  reconfigure
gitlab-ctl restart

浏览器登陆 gitlab:

登陆 web 控制台创立一个群组 -zhangpeng

创立一个我的项目 demo:

克隆我的项目到本地,并提交文件到仓库:

只是单纯的想晓得 gitlab 服务器下面操作查找 demo 的存储地位 … 原来是在 repositories/@hashed 目录下 ….

就先记录到这里吧 ….. 前面再弄一下 ldap 等其余的集成等其余的性能 ………

正文完
 0