0


ubuntu云服务器安装配置gitlab及使用git管理代码超详细教程

一、下载安装gitlab

1,安装依赖

sudo apt-get update

sudo apt-get install -y curl openssh-server ca-certificates

** 2,安装邮箱服务(我这里直接跳过了)**

sudo apt-get install -y postfix

** 3,安装gitlab**

3.1 在线安装(这个比较慢,我这里使用离线安装很快)

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo apt-get install gitlab-ce

3.2 离线安装

官网下载包,地址:​​https://packages.gitlab.com/gitlab/gitlab-ce​

注意的:ubuntu/focal 适用于 ubuntu20系列,ubuntu/bionic 适用于 ubuntu18 系列,我这里下载的是ubuntu/focal gitlab-ce_15.10.2-ce.0_amd64.deb版本

3.3 安装gitlab-ce_15.10.2-ce.0_amd64.deb

将下载的gitlab-ce_15.10.2-ce.0_amd64.deb离线安装包上传到服务器上,进入文件目录,使用下面命令安装离线包

apt install ./gitlab-ce_15.10.2-ce.0_amd64.deb

**4,安装完成进行配置 **

4.1 修改配置文件gitlab.rb:找到已经注释掉的# external_url 'http://gitlab.example.com',修改为下面的

sudo vim /etc/gitlab/gitlab.rb

external_url 'http://www.test.com' # 这里可以使用服务器的公网ip或域名加端口(端口与下面nginx['listen_port']的配置保持一致)

我这里配置的是9999端口,并且在服务器的安全组设置中开放了9999端口

因为我这里默认的80端口已经被占用,就需要更换端口,比如这里使用9999这个端口

a. 修改配置文件gitlab.rb,搜索注释掉的nginx['listen_port'],修改为9999端口(端口与上面external_url 的端口保持一致)

sudo vim /etc/gitlab/gitlab.rb

注意这里配置的external_url和nginx['listen_port']端口,两者需要最好一致,如果你配置了系统邮箱功能,当你在gitlab里导出项目时会有一个带有超链接的下载邮箱发往你的邮箱,这个链接就是external_url的地址。点击这个下载链接时,如果端口不一致会打不开,但貌似其他功能不受影响。

b. 保存并重新载入配置文件

cd /opt/gitlab/bin/

sudo gitlab-ctl reconfigure

4.3 设置开机自启动

sudo systemctl enable gitlab-runsvdir.service

4.4 查看gitlab状态

sudo gitlab-ctl status

输入以下信息说明gitlab已经正常启动

root@hecs-230323:/opt/gitlab/bin# sudo gitlab-ctl status
run: gitaly: (pid 4725) 2237s; run: log: (pid 1200) 5991s
run: gitlab-kas: (pid 4755) 2226s; run: log: (pid 1189) 5991s
run: gitlab-workhorse: (pid 4761) 2226s; run: log: (pid 1201) 5991s
run: logrotate: (pid 4774) 2225s; run: log: (pid 1198) 5991s
run: nginx: (pid 4782) 2225s; run: log: (pid 1203) 5991s
run: postgresql: (pid 4801) 2223s; run: log: (pid 1194) 5991s
run: puma: (pid 5781) 1479s; run: log: (pid 1192) 5991s
run: redis: (pid 4828) 2222s; run: log: (pid 1190) 5991s
run: sidekiq: (pid 5758) 1485s; run: log: (pid 1199) 5991s

二、运行gitlab

1. 使用配置的域名或ip加端口打开gitlab

2. 使用root的初始密码登录(24小时有效)

查看root初始密码

cat /etc/gitlab/initial_root_password

复制Password

Password: +oejUnl7qUY8id18Ash1a4nUnQQPi0AWnxcRmBQye88=

3. 修改root的初始密码

方法一:(推荐)

使用初始密码登录,进入网页里修改

方法二:

a. 切换到相应路径下: cd /opt/gitlab/bin/ ​

b. 打开控制台: sudo gitlab-rails console -e production ​

查询所有用户: User.all

c. 查询用户账号信息并赋值给u: u=User.where(id:1).first ​

d. 设置该用户名的密码: u.password='12345678'

e. 确认密码: u.password_confirmation='12345678'

f. 保存信息: u.save ​

g. 退出: exit

4. 注册新用户

4.1打开gitlab,切换为简体中文,点击立即注册,完成信息填写

4.2 新注册用户登录时需要管理员激活

方法一:推荐使用

使用root管理员账号登录

a.点击左上角三个横杠,选择Admin

b. 按下图依次打开,选择Approve批准即可

方法二:

切换目录使用命令进入控制台修改用户状态

cd /opt/gitlab/bin/ ​ # 切换目录

sudo gitlab-rails console -e production # 进入控制台

user = User.find_by_email("test@qq.com") # 按注册时的邮箱地址查询

user.state = "active" #设置状态为active

user.save

exit # 保存退出

修改完成之后再登录即可

**5. 简体中文的设置 **

三、gitlab内存优化

gitlab很占服务器内存,在安装运行gitlab后,能把内存吃满,导致服务器运行卡顿,所以接下来修改gitlab的配置,减少内存占用

执行

sudo vim /etc/gitlab/gitlab.rb

添加配置

减少数据库缓存

postgresql['shared_buffers'] = "64MB"

减少数据库并发数

postgresql['max_worker_processes'] = 4

禁用puma cluster模式,可以减少100-400MB占用

puma['worker_processes'] = 0

减少sidekiq并发数

sidekiq['concurrency'] = 2

sidekiq['max_concurrency'] = 2

禁用监控

prometheus_monitoring['enable'] = false

减少gitlab_rails组件的内存消耗

gitlab_rails['env'] = {
'MALLOC_CONF' => 'dirty_decay_ms:500,muzzy_decay_ms:500'
}

保存添加的配置,重载配置并重启

cd /opt/gitlab/bin/

sudo gitlab-ctl reconfigure

sudo gitlab-ctl restart

使用htop查看内存占用

服务器4g的内存占用2.6g左右,能保证流畅运行。未配置之前直接吃满

四、常用命令和配置文件地址

gitlab配置文件位置: /etc/gitlab/gitlab.rb

停止gitlab服务 sudo gitlab-ctl stop ​

启动gitlab服务 sudo gitlab-ctl reconfigure ​

重启所有gitlab组件 sudo gitlab-ctl restart ​

启动所有gitlab组件 sudo gitlab-ctl start

查看gitlab运行状态 sudo gitlab-ctl status

启用开机自启动sudo systemctl enable gitlab-runsvdir.service

五、配置连接gitlab并上传代码进行使用

1,桌面端安装git bash客户端,并执行以下命令生成密钥

ssh-keygen -t rsa -C “你的邮箱”

直接三次回车即可,然后到提示的路径下找到id_rsa.pub文件,复制里面的密钥内容

** 2,打开gitlab,配置SSH密钥,点击添加密钥即可**

** 3,在gitlab上创建新项目**

3.1 点击左上角三横框,查看所有项目,点击新建项目(或左上角图标直接进入 )

3.2 选择 创建空白项目,填写项目名称,选择项目URL(可自己配置,点击下方的创建一个群组),最后点击新建项目按钮完成创建

3.3 回到项目列表,点击进入刚刚创建的项目,点击克隆,复制使用SSH克隆链接

3.4 回到客户端git bash,配置git的用户名,邮箱等

git config --global user.name "zhansan"

git config --global user.email "test@qq.com"

3.5 克隆刚刚复制的链接项目到本地

git clone git@www.xxx.com:team/test_project.git

git remote add origin git@www.xxx.com:team/test_project.git

接下来就可以正常使用git add git commit git push来提交你的代码了

六、gitlab服务器邮箱的配置用来发送系统邮箱等功能

  1. 使用vim打开配置文件

vi /etc/gitlab/gitlab.rb

  1. 添加红框里的配置

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "xxxx@qq.com" # 需要自行修改
gitlab_rails['smtp_password'] = "furwtszoqlffjjde" # 需要自行修改
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['gitlab_email_from'] = "xxxx@qq.com" # 必须与上面的邮箱一样

  1. 保存上面的配置执行命令重新载入配置

gitlab-ctl reconfigure

  1. 进入gitlab控制台

gitlab-rails console

  1. 输入以下内容发送邮箱测试是否能成功发送(title是邮件的标题,body是邮箱正文内容)

Notify.test_email('xxxxx@qq.com', 'title', 'body').deliver_now

上面绿色字体说明发送成功,去QQ邮箱里查看一下

七、配置https访问

之前配置的gitlab访问都以http的方式访问的,如果需要以下图https的方式访问就需要添加ssl证书的配置

  1. 申请ssl证书

a. 前往域名服务商处搜索ssl,申请免费证书,配置证书到域名上,下载证书,将证书上传到服务器的(这里以华为云示例),nginx的证书是以.crt和.key结尾的文件

b. 配置gitliab

将证书上传到下面的目录中(没有这个目录就创建一个)

/etc/gitlab/ssl

打开gitlab配置文件

vi /etc/gitlab/gitlab.rb

修改和添加以下内容,指定证书的目录位置

external_url 'https://example.com:9999' # 修改之前配置的http为https

nginx['enable'] = true
nginx['ssl_certificate'] = "/etc/gitlab/ssl/scs1681710845877_xxx.com_server.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/scs1681710845877_xxx.com_server.key"

保存配置文件后执行重载配置文件命令

gitlab-ctl reconfigure

接下来就可以使用https的方式访问gitlab啦~~

最终的全部配置参考

external_url 'https://example.com:9999' # 最好也配置为9999端口,与下面nginx的端口保持一致

配置nginx的端口是9999

nginx['listen_port'] = 9999
nginx['enable'] = true
nginx['ssl_certificate'] = "/etc/gitlab/ssl/scs1681710845877_example.com_server.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/scs1681710845877_example.com_server.key"

减少数据库缓存

postgresql['shared_buffers'] = "32MB"

减少数据库并发数

postgresql['max_worker_processes'] = 1

禁用puma cluster模式,可以减少100-400MB占用

puma['worker_processes'] = 0
puma['per_worker_max_memory_mb'] = 100

减少sidekiq并发数

sidekiq['concurrency'] = 1
sidekiq['max_concurrency'] = 1

禁用监控

prometheus_monitoring['enable'] = false

关闭一些监控和性能基准相关的功能

prometheus['enable'] = false
#prometheus_monitoring['enable'] = false
alertmanager['enable'] = false
node_exporter['enable'] = false
redis_exporter['enable'] = false
postgres_exporter['enable'] = false
pgbouncer_exporter['enable'] = false
gitlab_exporter['enable'] = false
grafana['enable'] = false
sidekiq['metrics_enabled'] = false

减少进程数

#unicorn['worker_processes'] = 1
nginx['worker_processes'] = 2

减少gitlab_rails组件的内存消耗

gitlab_rails['env'] = {
'MALLOC_CONF' => 'dirty_decay_ms:250,muzzy_decay_ms:250'
}

邮箱配置

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "example@qq.com" # 需要自行修改
gitlab_rails['smtp_password'] = "furwtszoqlffjjde" # 需要自行修改
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['gitlab_email_from'] = "example@qq.com" # 发件人必须与上面的邮箱一样
gitlab_rails['gitlab_email_display_name'] = 'gitlab管理员' # 发件人名称

时区

gitlab_rails['time_zone'] = 'Asia/Shanghai'

配置参考

在ubuntu上部署gitlab详细步骤_ubuntu安装gitlab_landeli2的博客-CSDN博客

ubuntu 安装 gitlab_ubuntu 搭建gitlab_不穿铠甲的穿山甲的博客-CSDN博客

https://www.cnblogs.com/zhncnblogs/p/15955454.html

Gitlab 初始密码_gitlab root默认密码_linus.lin的博客-CSDN博客

https://www.cnblogs.com/yunjisuan1024/p/14883106.html

gitlab配置域名访问_weixin_33795743的博客-CSDN博客

内存优化

如何降低gitlab的资源占用 - 知乎

GitLab内存占用过高的解决方法-阿里云开发者社区

gitlab内存占用过大 | Java学习笔记gitlab太占内存,降低gitlab内存占用的配置优化-04007技术笔记gitlab内存占用过大 | Java学习笔记

gitlab官方下载地址

gitlab/gitlab-ce - Packages · packages.gitlab.com

Gitlab 13.0和Gitlab 14.0版本unicorn和puma配置区别

标签: gitlab 服务器 git

本文转载自: https://blog.csdn.net/qq_37140721/article/details/130089174
版权归原作者 湿透剪自布 所有, 如有侵权,请联系我们删除。

“ubuntu云服务器安装配置gitlab及使用git管理代码超详细教程”的评论:

还没有评论