背景
学习devops,需要搭建一个仓库。
版本选择
云上资源较小,选用旧版本的gitlab7,实测搭建后内存占用为800M左右。发现还有其他的仓库应用Gitea,后面尝试下。
搭建
# 依赖安装
sudo yum install -y curl policycoreutils openssh-server openssh-clients postfix
sudo systemctl enable sshd
sudo systemctl start sshd
sudo systemctl enable postfix
sudo systemctl start postfi
# 添加GitLab存储库并安装GitLab
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
sudo yum install gitlab-ce-7.14.3-ce.1.el7.x86_64
# 修改配置
vi /etc/gitlab/gitlab.rb
external_url 'http://xx.xx.xx.xx:xxxx'
############################
# gitlab.yml configuration #
############################
# gitlab_rails['gitlab_ssh_host'] = 'ssh.host_example.com'
gitlab_rails['time_zone'] = 'Asia/Shanghai'
gitlab_rails['gitlab_email_enabled'] = false
unicorn['worker_processes'] = 2
#####################
# GitLab PostgreSQL #
#####################
postgresql['shared_buffers'] = "128MB" # recommend value is 1/4 of total RAM, up to 14GB.
postgresql['max_connections'] = 20
################
# GitLab Nginx #
################
nginx['worker_processes'] = 2
nginx['worker_connections'] = 1024
nginx['cache_max_size'] = '1000m'
##################
# GitLab Logging #
##################
## see: https://gitlab.com/gitlab-org/omnibus-gitlab/tree/629def0a7a26e7c2326566f0758d4a27857b52a3/README.md#logs
# logging['svlogd_size'] = 200 * 1024 * 1024 # rotate after 200 MB of log data
# logging['svlogd_num'] = 30 # keep 30 rotated log files
# logging['svlogd_timeout'] = 24 * 60 * 60 # rotate after 24 hours
# logging['svlogd_filter'] = "gzip" # compress logs with gzip
# logging['svlogd_udp'] = nil # transmit log messages via UDP
# logging['svlogd_prefix'] = nil # custom prefix for log messages
# logging['logrotate_frequency'] = "daily" # rotate logs daily
# logging['logrotate_size'] = nil # do not rotate by size by default
# logging['logrotate_rotate'] = 30 # keep 30 rotated logs
# logging['logrotate_compress'] = "compress" # see 'man logrotate'
# logging['logrotate_method'] = "copytruncate" # see 'man logrotate'
# logging['logrotate_postrotate'] = nil # no postrotate command by default
# Enterprise Edition only
# logging['udp_log_shipping_host'] = nil # remote host to ship log messages to via UDP
# logging['udp_log_shipping_port'] = 514 # remote host to ship log messages to via UDP
###################
# GitLab CI NGINX #
###################
ci_nginx['worker_processes'] = 2
ci_nginx['worker_connections'] = 1024
ci_nginx['cache_max_size'] = '1000m'
####################
# Mattermost NGINX #
####################
mattermost_nginx['worker_processes'] = 2
mattermost_nginx['worker_connections'] = 1024
mattermost_nginx['cache_max_size'] = '1000m'
gitlab 占用那些端口
HTTP/S端口:80/443
GitLab通过HTTP/S协议进行通信,因此需要开放HTTP(端口号80)和HTTPS(端口号443)端口。HTTP端口用于GitLab未启用HTTPS的情况,而HTTPS端口则用于启动了HTTPS的情况。如果您还没有自己的SSL证书,可以使用GitLab提供的自签名证书。
SSH端口:22
GitLab使用SSH协议进行代码提交、合并等操作,因此需要开放SSH端口号(22)。您可以使用OpenSSH等工具连接到服务器,进行相关操作。
SMTP端口:25
GitLab支持SMTP邮件服务,在注册、密码重置等过程中会用到。SMTP端口号默认为25。
Git端口:9418
GitLab通过Git协议进行代码的传输和管理。Git客户端可以通过此端口连接到GitLab服务器进行代码推送和拉取操作。Git端口号默认为9418。
NFS端口:2049
GitLab可以使用NFS(Network File System)来管理开发者之间的代码共享,而NFS协议默认使用2049端口进行通信。
Redis端口:6379
GitLab使用Redis来缓存会话数据等信息。Redis端口号默认为6379。
PostgreSQL端口:5432
GitLab使用PostgreSQL来存储代码库和其他相关数据,如用户、项目、组等。PostgreSQL端口号默认为5432。
sudo yum install -y --nogpgcheck gitlab-ce-7.14.3-ce.1.el7.x86_64 # nogpgcheck解决证书问题
# 开机启动
sudo systemctl enable gitlab-runsvdir.service
# 取消开机启动
sudo systemctl disable gitlab-runsvdir.service
# 启动
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
# 查看状态
sudo gitlab-ctl status
# 关闭
sudo gitlab-ctl stop
# 初始用户和密码
cat /etc/gitlab/initial_root_password #先尝试这个看看有没有
gitlab-rake "gitlab:setup[force-init=admin]" # 创建一个用户,画面会打印账号密码
gitlab-rake "gitlab:setup[password=admin]" # 若上面命令失败,重置admin用户的密码
参考
各版本gitlab内存占用测试
下载地址
windows版本小gitlab
高版本内存优化
Gitea
Gitea对比gitlab
gitlab端口