目录
[修改 root 密码](#修改 root 密码)
[1)IDEA安装 GitLab 插件](#1)IDEA安装 GitLab 插件)
[2) 配置 SSH 免密登录(如已配置,则跳过)](#2) 配置 SSH 免密登录(如已配置,则跳过))
[3)获取 GitLab 个人令牌](#3)获取 GitLab 个人令牌)
[4)添加 GitLab 服务](#4)添加 GitLab 服务)
安装准备
1)开启ssh:(已开启可跳过)
sudo systemctl status sshd
sudo systemctl enable sshd
sudo systemctl start sshd
2)防火墙开放http、https服务:(已关闭防火墙可跳过)
sudo systemctl status firewalld
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld
安装GitLab
1)上传安装包 下载地址:gitlab/gitlab-ce - Packages · packages.gitlab.com
安装包名称:gitlab-ce-16.2.1-ce.0.el7.x86_64.rpm
安装包较大,建议下载好手动上传服务器。这里上传到/home/hadoop/installfile
2)编写安装脚本
cd ~/bin
vim gitlab-install.sh
脚本内容如下:
sudo yum install -y curl policycoreutils-python openssh-server perl
sudo rpm -ivh /home/hadoop/installfile/gitlab-ce-16.2.1-ce.0.el7.x86_64.rpm
sudo yum install -y postfix
sudo systemctl enable postfix
sudo systemctl start postfix
注意:gitlab安装包路径根据实际情况修改。
3)修改脚本执行权限并执行
chmod +x gitlab-install.sh
sh gitlab-install.sh
初始化
执行过程大概需要3分钟:
sudo gitlab-ctl reconfigure
启停命令
1)启动命令
sudo gitlab-ctl start
2)停止命令
sudo gitlab-ctl stop
修改 root 密码
1)启动gitlab后,访问Web页面 默认使用80端口,浏览器访问安装服务器的hostname或ip
node4
2)修改root密码
账号root,密码将随机生成并在 /etc/gitlab/initial_root_password 中保存24 小时,查看初始密码命令:sudo cat /etc/gitlab/initial_root_password
[hadoop@node4 bin]$ sudo cat /etc/gitlab/initial_root_password
# WARNING: This value is valid only in the following conditions
# 1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the first time (usually, the first reconfigure run).
# 2. Password hasn't been changed manually, either via UI or via command line.
#
# If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.
Password: yIcU5mTT6SGWUGPzBXTZsvptzPD44/wnxTIvJLRiDdI=
# NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.
查看到密码在Password: 一行
使用root账号及查到的密码登录。
修改root密码
点击Password,进入修改密码界面,注意密码不能太简单,且最小为8位。
设置简体中文
在Language设置简体中文
点击左上角gitlab头像,返回首页,看到已经变成了中文
创建用户
为了更符合公司实际,我们假设数据组的leader账号为tutou,你是你名字拼音的缩写,例如:ljh。
再创建一个开发用户
重置密码
用户会收到重置密码的邮件,也可以由管理员设置:
根据页面提示设置密码。
创建群组
创建研发中心组
在研发中心组下,再创建一个大数据组:
对于人员权限以及角色,有如下五种:
- Owner:最高权限,谁去创建组,这个组就被谁拥有,它可以开除管理员,但管理员无法操作owner的角色。
- Maintainer :(管理员-只是具备sudo权限的用户)管理员一般是给小组的组长,或者是给产品线的总监设定。
- Developer:是干活的人,就是写代码的程序员,可以进行代码的上传以及代码的下载,不能下载其他的组内的代码,只能下载它们组的代码。
- Repoter:比如现在有需求,其他组的大牛到我们组过来指导工作,要审视我们的代码,人家就提出需要一个权限,我不能给它developer因为它会改你代码,其他组的人不能改我们组的代码,所以就给一个repoter权限,他只能看,只读权限。
- guest:不用看,匿名,直接去掉。一般出现在从ldap中把离职人员的信息删掉,再去gitlab查这个人的时候,它就是一个guest用户(匿名)需要再到gitlab把它删掉(不删也没事)。
将数据组的leader设为bigdata的负责人:
邀请成员后,效果如下:
修改external_url
修改external_url
sudo vim /etc/gitlab/gitlab.rb
在文件中找到external_url,
external_url 'http://gitlab.example.com'
修改为如下内容
external_url 'http://node4'
保存退出
重启GitLab生效
sudo gitlab-ctl restart
修改host
此处的host决定了Web端项目Clone标签下看到的URL中使用的域名或主机名,如下。
编辑gitlab.yml
sudo vim /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
找到gitlab.host修改为如下内容
gitlab:
## Web server settings (note: host is the FQDN, do not include http://)
host: node4
port: 80
https: false
保存退出 重启GitLab生效
sudo gitlab-ctl restart
查看效果
解决端口冲突
8080
从GitLab 13.0开始,Puma是默认的应用程序服务器,GitLab 14.0及更高版本已删除对Unicorn的支持。Puma需要使用8080端口,而Zookeeper当前版本的Admin服务也会占用8080端口,因此,如果Zookeeper先于GitLab启动,则通过Web端访问GitLab将会报错,错误码为502
(1)修改puma.rb
[hadoop@node4 ~]$ sudo vim /var/opt/gitlab/gitlab-rails/etc/puma.rb
将Puma绑定的TCP端口更改为8089,如下
bind 'tcp://127.0.0.1:8089'
保存退出
(2)修改gitlab.rb
[hadoop@node4 ~]$ sudo vim /etc/gitlab/gitlab.rb
将Puma端口更改为8089
puma['port'] = 8089
注意:把行首的#注释删除
保存退出
(3)重新加载配置
[hadoop@node4 ~]$ sudo gitlab-ctl reconfigure
(4)重启GitLab
[hadoop@node4 ~]$ sudo gitlab-ctl restart
注:重启后可能需要等待几十秒方可恢复Web端访问
8060
默认情况下GitLab会在本地的8060端口启动服务来监控NGINX服务的状态,而Doris的brpc_port默认端口也是8060,这个端口是用于Backends之间及Backends和Frontends通信的,如果被占用则Backend进程无法启动。 我们可以修改Doris集群Backends的brpc_port端口,也可以修改GitLab的nginx-status端口,此处选择后者。
(1)编辑/etc/gitlab/gitlab.rb
[hadoop@node4 ~]$ sudo vim /etc/gitlab/gitlab.rb
(2)在文件中做出以下修改
找到nginx['status'],打开注释,修改为以下内容
nginx['status'] = {
"enable" => true,
"listen_addresses" => ["127.0.0.1"],
"fqdn" => "127.0.0.1",
"port" => 9999,
"vts_enable" => true,
"options" => {
"server_tokens" => "on", # Don't show the version of NGINX
"access_log" => "on", # Disable logs for stats
"allow" => "127.0.0.1", # Only allow access from localhost
"deny" => "all" # Deny access to anyone else
}
}
保存退出。
(3)重新加载配置
[hadoop@node4 ~]$ sudo gitlab-ctl reconfigure
(4)重启
[hadoop@node4 ~]$ sudo gitlab-ctl restart
解决GitLab头像异常问题
(1)编辑配置文件
[hadoop@node4 ~]$ sudo vim /etc/gitlab/gitlab.rb
(2)修改或添加plain_url和ssl_url
将默认的Gravatar服务器的URL替换为国内镜像地址
### Gravatar Settings
gitlab_rails['gravatar_plain_url'] = 'http://gravatar.loli.net/avatar/'
gitlab_rails['gravatar_ssl_url'] = 'https://gravatar.loli.net/avatar/'
(3)重新加载配置生效
[hadoop@node4 ~]$ sudo gitlab-ctl reconfigure
IDEA和GitLab的集成
1)IDEA安装 GitLab 插件
2) 配置 SSH 免密登录(如已配置,则跳过)
进入windows cmd命令行,执行如下命令
ssh-keygen -t rsa -C your@email.com
邮箱可以任意写,建议改成自己的邮箱
执行命令后,连续敲三次回车
到用户目录下.ssh查看id_rsa.pub公钥文件
将公钥(id_rsa.pub)文件内容添加到GitLab中:
3)获取 GitLab 个人令牌
点击头像->编辑个人资料
复制个人访问令牌
4)添加 GitLab 服务
添加成功如下
5)修改默认分支的保护策略
提交代码到GitLab
新建Maven工程,工程名称,例如:demogitlab
创建.gitignore
文件
在工程根目录,新建.gitignore
文件,内容如下:
/**/target
/**/.idea
*.iml
*.class
**/*/dependency-reduced-pom.xml
上传工程代码到GitLab
填写工程名,选择Group信息,点击Share
点击Yes
返回浏览器,查看gitlab项目,看到上传成功如下:
接下来,开发人员开发代码,并提交代码
登录开发者账号,例如:ljh,首次登录后提示提示更改密码,及修改显示语言。
开发人员代码开发
java
package org.example;
public class Hello {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
开发人员提交代码到GitLab
申请个人访问令牌
删除原有IDEA令牌,设置开发用户的令牌
提交代码
点击Push提交成功后,到浏览器页面查看demogitlab项目的提交情况,看到了最新的提交内容如下:
卸载GitLab
如果需要卸载gitlab
1 )卸载gitlab
[hadoop@node4 installfile]$ sudo rpm -e gitlab-ce-16.2.1-ce.0.el7.x86_64
2 )删除gitlab文件
[hadoop@node4 installfile]$ sudo rm -rf /etc/gitlab
[hadoop@node4 installfile]$ sudo rm -rf /var/opt/gitlab
[hadoop@node4 installfile]$ sudo rm -rf /opt/gitlab
完成!enjoy it!