背景:
过来始终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: NOKEYerror: 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]# lltotal 164-rw------- 1 root root 140237 Mar 1 17:39 gitlab.rb-rw------- 1 root root 19412 Mar 1 17:39 gitlab-secrets.jsondrwxr-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
Localization -Chinese 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'] = falsenginx['redirect_http_to_https_port'] = 80nginx['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-cednf install docker-ce --nobest -y
启动docker 并将docker退出开机启动:
systemctl start dockersystemctl 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 psdocker exec -it 49318879d7c8 bash
创立对应数据库:
root@49318879d7c8:/# psql -U postgres -h localhost -p 5432psql (13.6 (Debian 13.6-1.pgdg110+1))Type "help" for help.postgres=# create role gitlab login encrypted password 'gitlab';CREATE ROLEpostgres=# create database gitlabhq_production owner=gitlab ENCODING = 'UTF8';CREATE DATABASEpostgres=# \c gitlabhq_productionYou are now connected to database "gitlabhq_production" as user "postgres".gitlabhq_production=# CREATE EXTENSION IF NOT EXISTS btree_gist;CREATE EXTENSIONgitlabhq_production=# CREATE EXTENSION IF NOT EXISTS pg_trgm;CREATE EXTENSIONgitlabhq_production=# \qroot@49318879d7c8:/# exitexit
批改gitlab.rb配置文件:
vim /etc/gitlab/gitlab.rb 批改如下局部:
724 gitlab_rails['db_adapter'] = "postgresql"725 gitlab_rails['db_encoding'] = "utf8"726 gitlab_rails['db_collation'] = nil727 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.58731 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-datarsync -av repositories /data/gitlab/git-data/
当然了 也能够用cp mv 将文件夹复制过来,最好放弃一下目录权限,如果启动后有异样,记得检查一下目录权限,当然了 gitlab-ctl tail 查看日志才是更无效的办法!
为了辨别验证批改文件目录是否失效,备份原git-data文件夹:
cd /var/opt/gitlabmv git-data git-dataold
生成配置,并重启gitlab服务:
gitlab-ctl reconfiguregitlab-ctl restart
浏览器登陆gitlab:
登陆web控制台创立一个群组-zhangpeng
创立一个我的项目demo:
克隆我的项目到本地,并提交文件到仓库:
只是单纯的想晓得gitlab服务器下面操作查找demo的存储地位...原来是在repositories/@hashed目录下....
就先记录到这里吧.....前面再弄一下ldap等其余的集成等其余的性能.........