搭建gitlab-ce超详细流程(馋哭了)

gitlab官网

官网地址:https://about.gitlab.com/install/
想阅读官方文档的小伙伴请登录。
github是微软的代码托管工具,有两点不足:
1.私有库要付费,很贵,想免费就必须开源。
2.中美的紧张关系,微软随时可能关闭github。
企业可以自己搭建一个代码托管工具——gitlab。gitlab和github的界面几乎一致。不就是代码托管吗,自己搭!
gitlab有ce和ee两个版本,ce开源,适合中小企业,ee收费,适合大型公司。

开始安装

请使用CentOS7进行下面操作。若使用8或以上版本,相关依赖可能安装不了或找不到。

# 安装依赖
yum -y install curl policycoreutils policycoreutils-python openssh-server openssh-clients postfix

# 启动ssh
systemctl enable sshd
systemctl start sshd

# 将http和https加入防火墙策略,并重启防火墙。
systemctl start firewalld
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
systemctl reload firewalld
systemctl enable firewalld

# 修改postfix的配置文件
vim /etc/postfix/main.cf
# 使用 /inet_ 进行搜索
inet_interfaces=all
inet_protocols=all
systemctl start postfix
systemctl enable postfix

在线安装法

# 配置gitlab-ce的yum repo
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash

# 在线安装gitlab-ce
yum install -y gitlab-ce

离线安装方法

如果网速不给力,可以离线安装
上清华镜像网址下载gitlab-ce
https://mirrors.tuna.tsinghua.edu.cn/

#将下载下的rpm包放进CentOS中
yum -y localinstall xxx.rpm

编写配置文件

vim /etc/gitlab/gitlab.rb


# 修改端口,默认的8080会被Jenkins等其他工具占用
unicorn['port']=7000


# 修改EXTERNAL_URL的值服务器为域名或ip,域名要解析。如果需要外网访问写成localhost或者127.0.0.1。其实这个url是什么不重要,反正外网访问不到,端口才重要!
external_url = 'https://你的ip或解析的域名'
nginx['listen_port'] = 17000

#命令行模式输入/Email Settings,修改相关参数。
### Email Settings
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = '[email protected]'      # 自己的邮箱
gitlab_rails['gitlab_email_display_name'] = 'Andy'    # gitlab给你发邮件时使用的名字。

# 命令行模式搜索/smtp可快速查找,注意passwd是授权码。(vim小操作:ctrl+v多选,按x删除)
#登录qq邮箱官网,设置---账户---smtp的黄色标签里点击生成授权码,填到smtp_password中

###! **Use smtp instead of sendmail/postfix.**
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "[email protected]"     # 自己的qq邮箱
gitlab_rails['smtp_password'] = "xxxxxxxxxxx"
gitlab_rails['smtp_domain'] = "qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false

# 关闭普罗米修斯(非常吃内存,没有8G内存不要开)
# 在vim的一般模式下输入/Prometheus配合N快速查找
monitor和enable写成false
prometheus['enable'] = false
prometheus['monitor_kubernetes'] = false

# 如果想修改远程仓库的显示地址,修改配置
vim /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml.example

# 配置完成,保存退出

给gitlab添加SSL认证

# 修改配置文件:vim /etc/gitlab/gitlab.rb
external_url 'https://10.10.10.63'    #启用https,默认是http
nginx['enable'] = true
nginx['redirect_http_to_https'] = true    #http重定向到https
nginx['ssl_certificate'] = "/etc/gitlab/ssl/server.crt"            #ssl证书路径

nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/server.key"    #ssl秘钥路径

# 生成ssl证书和私钥
mkdir -p /etc/gitlab/ssl
chmod -R 777 /etc/gitlab/ssl/
openssl req -x509 -nodes -days 10000 -newkey rsa:2048 -keyout /etc/gitlab/ssl/server.key -out /etc/gitlab/ssl/server.crt
安装要求输入国别、城市、机构、姓名等
再次修改权限
chmod -R 777 /etc/gitlab/ssl/

参数说明:

openssl:这是用于创建和管理OpenSSL证书,密钥和其他文件的基本命令行工具。
req -x509:这指定我们要使用X.509证书签名请求(CSR)管理。“X.509”是SSL和TLS坚持用于密钥和证书管理的公钥基础结构标准。
-nodes:这告诉OpenSSL跳过用密码保护我们的证书的选项。当服务器启动时,我们需要Apache能够读取文件,而无需用户干预。密码可以防止这种情况发生,因为每次重新启动后我们都必须输入密码。
第365天:此选项设置证书被视为有效的时间长度。我们在这里定了一年。
-newkey rsa:2048:这指定我们要同时生成一个新的证书和一个新的密钥。我们没有在上一步创建签名证书所需的密钥,所以我们需要与证书一起创建证书。该rsa:2048部分告诉它做一个2048位长的RSA密钥。
-keyout:这一行告诉OpenSSL在哪里放置我们正在创建的私有密钥文件。
-out:这告诉OpenSSL在哪里放置我们正在创建的证书。


# 重建配置
gitlab-ctl reconfigure

登录gitlab

https://ip
或者
https://域名
如果浏览器报不安全,忽略,继续进入。
案例:我搭建成功的网址
https://www.8zi.site

给gitlab添加SSH key

如果某个人想要克隆你的代码,就需要把他的公钥加入到gitlab中

# 在某个开发人员的机器上:
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub
# 将id_rsa.pub文件内容全部复制
# 浏览器登录gitlab,进入gitlab
# Profile Settings-->SSH Keys--->Add SSH Key
#粘贴你复制的公钥,点击add按钮。

猜你喜欢

转载自blog.csdn.net/qq_43626147/article/details/109160229