一、下载安装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服务器邮箱的配置用来发送系统邮箱等功能
- 使用vim打开配置文件
vi /etc/gitlab/gitlab.rb
- 添加红框里的配置
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" # 必须与上面的邮箱一样
- 保存上面的配置执行命令重新载入配置
gitlab-ctl reconfigure
- 进入gitlab控制台
gitlab-rails console
- 输入以下内容发送邮箱测试是否能成功发送(title是邮件的标题,body是邮箱正文内容)
Notify.test_email('xxxxx@qq.com', 'title', 'body').deliver_now
上面绿色字体说明发送成功,去QQ邮箱里查看一下
七、配置https访问
之前配置的gitlab访问都以http的方式访问的,如果需要以下图https的方式访问就需要添加ssl证书的配置
- 申请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配置区别
版权归原作者 湿透剪自布 所有, 如有侵权,请联系我们删除。