Gitlab推荐配置:

4核 4GB内存 支持500个用户
8核 8GB内存 支持1000个用户
最低配置建议:2核 4G内存

一、安装和配置必要的依赖项

sudo apt update
sudo apt upgrade -y
sudo apt install -y curl openssh-server ca-certificates tzdata perl

接下来,安装Postfix以发送通知电子邮件。如果要使用其他解决方案发送电子邮件,请跳过此步骤并 在安装GitLab之后配置外部SMTP服务器。
说明:postfix是Wietse Venema在IBM的GPL协议之下开发的MTA(邮件传输代理)软件。postfix是Wietse Venema想要为使用最广泛的sendmail提供替代品的一个尝试。在Internet世界中,大部分的电子邮件都是通过sendmail来投递的,大约有100万用户使用sendmail,每天投递上亿封邮件。这真是一个让人吃惊的数字。Postfix试图更快、更容易管理、更安全,同时还与sendmail保持足够的兼容性。
参考一:postfix百度百科
参考二:postfix网站

sudo apt install -y postfix

在安装Postfix期间,可能会出现一个配置屏幕。选择“ Internet网站”,然后按Enter。使用服务器的外部DNS作为“邮件名”,然后按Enter。如果出现其他屏幕,请继续按Enter接受默认设置。

二、添加GitLab软件包存储库并安装软件包

添加GitLab软件包存储库,可以切换为国内源,例如:gitlab-ce清华源。

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

接下来,安装GitLab软件包。确保已正确设置DNS,然后更改https://gitlab.example.com为要访问GitLab实例的URL。安装将自动配置并在该URL启动GitLab。

对于https://URL,GitLab将通过Let’s Encrypt自动请求证书,这需要入站HTTP访问和有效的主机名。您也可以使用自己的证书,也可以仅使用http://(不带s)。
关于Let’s Encrypt本文不做介绍。本文采用http访问方式安装gitlab-ce,安装成功后,配置https访问方式。

sudo EXTERNAL_URL="http://gitlab.example.com" apt install gitlab-ce

三、浏览到主机名并登录

首次访问时,您将被重定向到密码重置屏幕。设置初始管理员帐户的密码后,您将被重定向回登录屏幕。使用默认帐户的用户名root登录。

四、手动配置gitlab的https访问

制作自签名证书,参考链接:Ubuntu18.04 使用 openssl制作自签名证书。

域启用HTTPS gitlab.example.com:

打开文件/etc/gitlab/gitlab.rb

  1. 打开文件/etc/gitlab/gitlab.rb,编辑external_url的值:
#note the 'https' below
external_url "https://gitlab.example.com"
  1. 打开文件/etc/gitlab/gitlab.rb,禁用Let’s Encrypt:
letsencrypt['enable'] = false
  1. 创建/etc/gitlab/ssl目录,然后在其中复制密钥和证书:
sudo mkdir -p /etc/gitlab/ssl
sudo chmod 755 /etc/gitlab/ssl
sudo cp gitlab.example.com.key gitlab.example.com.crt /etc/gitlab/ssl/

由于本例中的主机名是gitlab.example.com,因此GitLab将查找分别称为/etc/gitlab/ssl/gitlab.example.com.key和的私钥和公共证书文件 /etc/gitlab/ssl/gitlab.example.com.crt。

确保使用完整的证书链,以防止客户端连接时出现SSL错误。完整的证书链顺序应首先包含服务器证书,然后是所有中间证书,最后是根CA。

如果certificate.key文件受密码保护,则当您重新配置GitLab时,NGINX不会要求输入密码。在这种情况下,GitLab将无任何提示地静默失败。要从密钥中删除密码,请运行:

openssl rsa -in certificate_before.key -out certificate_after.key
  1. http自动重定向到https(打开文件/etc/gitlab/gitlab.rb编辑如下内容):
nginx['enable'] = true
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.example.com.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.example.com.key"
  1. 重新配置GitLab:
sudo gitlab-ctl reconfigure
  1. 重新配置完成后,您的GitLab实例应位于处https://gitlab.example.com。

  2. 如果使用防火墙,则可能必须打开端口443才能允许入站HTTPS通信。

# UFW example (Debian, Ubuntu)
sudo ufw allow https

五、SSH拉取gitlab代码

  1. 个人电脑生成秘钥
ssh-keygen -t rsa -C "your_email@example.com"
  1. 上传公钥到gitlab
  2. “.ssh”目录下创建config文件,内容如下:
Host gitlab.example.comPreferredAuthentications publickeyIdentityFile /path/to/个人私钥文件
  1. git clone git@gitlab.example.com:XXXX/XXXX.git

六、SAML配置

名词(Term) 描述(Description)
Identity provider 身份提供商 (IdP) The service which manages your user identities, such as Okta or OneLogin
管理您的用户身份的服务,例如 Okta 或 OneLogin
Service provider服务提供商 (SP) GitLab can be configured as a SAML 2.0 SP
GitLab 可以配置为 SAML 2.0 SP
Assertion断言 A piece of information about a user’s identity, such as their name or role. Also known as claims or attributes
关于用户身份的一条信息,例如他们的姓名或角色。也称为声明或属性
Single Sign-On单点登录 (SSO) Name of authentication scheme
身份验证方案的名称
Assertion consumer service URL断言消费者服务 URL The callback on GitLab where users will be redirected after successfully authenticating with the identity provider
在与身份提供者成功进行身份验证后,用户将被重定向到 GitLab 上的回调
Issuer发行人 How GitLab identifies itself to the identity provider. Also known as a “Relying party trust identifier”
GitLab 如何向身份提供者标识自己。也称为“依赖方信任标识符”
Certificate fingerprint证书指纹 Used to confirm that communications over SAML are secure by checking that the server is signing communications with the correct certificate. Also known as a certificate thumbprint
用于通过检查服务器是否使用正确的证书签署通信来确认通过 SAML 的通信是安全的。也称为证书指纹
  1. gitlab.rb文件配置,在gitlab.rb中修改下面的配置参数:
gitlab_rails['omniauth_allow_single_sign_on'] = ['saml']
gitlab_rails['omniauth_block_auto_created_users'] = false
gitlab_rails['omniauth_auto_link_saml_user'] = true
gitlab_rails['omniauth_providers'] = [{name: 'saml',args: {assertion_consumer_service_url: 'https://gitlab.example.com/users/auth/saml/callback',idp_cert_fingerprint: '43:51:43:a1:b5:fc:8b:b7:0a:3a:a9:b1:0f:66:73:a8',idp_sso_target_url: 'https://login.example.com/idp',issuer: 'https://gitlab.example.com',name_identifier_format: 'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent'},label: 'Provider name' # optional label for SAML login button, defaults to "Saml"}
]

注意:

(1).更改assertion_consumer_service_url的值,以匹配 GitLab 的 HTTPS 端点(附加users/auth/saml/callback到您的 GitLab 安装的 HTTPS URL后面以生成正确的值)。
(2).更改idp_cert_fingerprint为IdP提供的指纹信息,如果使用指纹,则必须是 SHA1 指纹。
(3)name_identifier_format的值为固定写法,共有两种:“urn:oasis:names:tc:SAML:2.0:nameid-format:persistent”和“urn:oasis:names:tc:SAML:2.0:nameid-format:transient”。
(4).idp_sso_target_url是身份验证请求应发送到的 URL,需要从IdP获取。
更改issuer的值为唯一名称,用于向 IdP 标识应用程序,默认为saml。
参考链接:OmniAuth SAML 文档、有关配置身份提供程序的说明

  1. 运行gitlab-ctl reconfigure,使配置生效
sudo gitlab-ctl reconfigure
  1. 此时可以使用gitlab的SSO服务了。

参考链接:GitLab Docs Html、GitLab Docs Home page

附:GitLab-ce Docker部署

部署前提:目标Ubuntu18.04机器已安装docker。可通过下面的命令安装docker,有关Docker相关的配置,这里不做介绍。

sudo apt update && sudo apt install docker.io -y
  1. Docker Pull GitLab-ce最新镜像:
docker pull gitlab/gitlab-ce:latest
  1. 在目标机器创建gitlab-ce数据卷需要使用的目录
mkdir -p /path/to/gitlab/config   config目录
mkdir -p /path/to/gitlab/logs    logs目录
mkdir -p /path/to/gitlab/data    data目录
  1. 执行Docker Run启动GitLab容器
docker run -itd --hostname your-host-name -p 8443:443 -p 8080:80 --publish 33322:22 --name gitlab --restart always \--volume /path/to/gitlab/config:/etc/gitlab \--volume /path/to/gitlab/logs:/var/log/gitlab \--volume /path/to/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:latest

容器启动参数中443、22、80端口的映射,可修改为自己想映射的端口。

  1. 执行Docker Exec进入GitLab容器
docker  exec -it gitlab /bin/bash
  1. 在GitlLab容器内修改gitlab.rb参数(HTTP+IP访问)
external_url 'http://宿主机IP'
gitlab_rails['gitlab_ssh_host'] = '宿主机IP'
gitlab_rails['gitlab_shell_ssh_port'] = 22
  1. 设置完成后,重新配置gitlab-ctl reconfigure,使配置生效
sudo gitlab-ctl reconfigure
  1. 其余的配置,与正常apt部署GitLab-ce操作相同。

Ubuntu18.04安装部署GitLab-ce(HTTP/HTTPS访问,SAML配置)附:docker gitlab-ce部署相关推荐

  1. ubuntu18.04安装常用软件(QQ、WPS等)(缓慢填坑)

    目录 ubuntu18.04安装deepin-wine ubuntu18.04安装QQ ubuntu18.04安装迅雷极速版 ubuntu18.04安装网易云音乐 ubuntu18.04安装WPS u ...

  2. ubuntu18.04安装pcl库

    参考Ubuntu18.04安装PCL 1.9.1(图文详解,附踩坑和测试)_ubuntu安装pcl_振华OPPO的博客-CSDN博客 遇到的问题 1 安装依赖时软件未满足依赖关系 sudo apt-g ...

  3. Docker 19+Ubuntu18.04安装StepByStep

    Part1. 安装Ubuntu18.04 Desktop 虚拟机环境:VMWare Workstation 15 虚拟机配置:1cpu 4核 8G 内存 40G硬盘(立即分配空间+单文件) 虚拟机网络 ...

  4. Ubuntu18.04安装g2o,及问题解决_HyperZhu的博客-CSDN博客_ubuntu18.04安装g2o

    Ubuntu18.04安装g2o,及问题解决_HyperZhu的博客-CSDN博客_ubuntu18.04安装g2o sudo apt-get install cmake libeigen3-dev ...

  5. linux18.04安装显卡驱动,详细介绍ubuntu18.04安装NVIDIA显卡驱动(亲测有效!)

    详细介绍ubuntu18.04安装NVIDIA显卡驱动(亲测有效!) 详细介绍ubuntu18.04安装NVIDIA显卡驱动(亲测有效!) 详细介绍ubuntu18.04安装NVIDIA显卡驱动(亲测 ...

  6. ubuntu18.04安装python3.7并将python3指向python3.7

    ubuntu18.04系统默认装了三个版本的python,如下: ubuntu18.04安装python3.7并将python3指向python3.7 参考此篇文章:https://blog.csdn ...

  7. Ubuntu18.04安装cuDNN和Tensorflow的正确姿势

    文章目录 Ubuntu18.04安装cuDNN和Tensorflow的正确姿势 一.检查NVIDIA驱动是否安装成功 二.检查CUDA是否安装成功 三.安装cuDNN 1. 确定版本 2. 下载安装包 ...

  8. VMware linux 虚拟机(ubuntu18.04) 安装TL-WDN5200H 2.0网卡驱动 完美使用(适用于vmware无法桥接网络使用此方法)

    VMware linux 虚拟机(ubuntu18.04) 安装TL-WDN5200H 2.0网卡驱动 完美使用(适用于vmware无法桥接网络使用此方法) # 以下操作均已root用户操作 # 安装 ...

  9. Ubuntu18.04安装OpenPCDet及配置spconv

    spconv的安装简直要命,废了三天才安装好,多亏了网上一些教程.下面是我综合几个点击量高的博文,成功安装的过程记录. 目录 安装 1 clone 项目 2 创建并配置虚拟环境 3 安装spconv ...

  10. Ubuntu18.04 安装 nvidia2080Ti显卡驱动

    Ubuntu18.04 安装 nvidia2080Ti显卡驱动 1.下载驱动 驱动下载地址: https://www.nvidia.cn/geforce/drivers/ 这里选择了NVIDIA-Li ...

最新文章

  1. Oracle数据库教程
  2. C++静态多态(模版模拟多态)的讨论
  3. 牛客网_PAT乙级_1022挖掘机技术哪家强(20)【class vector sort排序、删除重复元素】
  4. mysql日期截取年月_摄影大赛丨“我遇见最美的光”第五届全国医务人员摄影大展 截稿日期2020年8月15日...
  5. 小程序如何将wx.request里的数据传出去
  6. linux系统如何打开python_手把手教你在Linux系统下使用Python虚拟环境
  7. 想精通正则表达式 这几个正则表达式学习资料及工具你必须有!
  8. 4.9 内容代价函数
  9. Bug--Tomcat Error start child
  10. oschina的技术架构 使用 Live Writer 在 oschina 上写博客
  11. 阿里巴巴CTO程立:践行“好科技”,我们正在做这些事
  12. linux系统下载乌班图,乌班图系统下载-乌班图Linux系统下载 V20.04官方版-KK下载站...
  13. java定义vip顾客继承顾客_Java初级教频教程 - JavaSE - Java - 私塾在线 - 只做精品视频课程服务...
  14. cs224n课程及NLP相关知识记录
  15. 服务器CPU与家用个人电脑CPU的区别详解
  16. swiftui改变图片尺寸_SwiftUI中的等轴测视图
  17. git服务器ip变更后的配置
  18. 【公开课】斯坦福大学:机器学习课程
  19. 用Python实现小黑屋游戏
  20. 京东自营客服考试答案

热门文章

  1. 京准讲述北斗授时产品(NTP时钟服务器)应用及原理
  2. 北斗授时设备(NTP服务器)对高速联网收费的重要性
  3. 解决Angular里面报错:error NG8002: Can‘t bind to ‘ngModel‘ since it isn‘t a known property of ‘input‘.
  4. mac下查找文件完整路径
  5. CFA课程打卡-2019.11.19
  6. 监控体系模型分析之四层模型
  7. 计算机网络成绩分析单,网上阅卷系统考试成绩分析
  8. 邀请码生成器[转自网络]
  9. python怎么保留两位小数是多少_python 怎么保留2位小数
  10. mysql新旧版本_MySQL新旧版本ORDER BY 处理方法