首页 > 其他 > 详细

GitLab快速入门1-Gitlab CE安装配置操作实践

时间:2021-04-14 01:45:41      阅读:40      评论:0      收藏:0      [点我收藏+]
GitLab快速入门1-Gitlab CE安装配置操作实践

前提条件

  1. 系统为centos 7

    [root@gitlab ~]# cat /etc/redhat-release
    CentOS Linux release 7.8.2003 (Core)
  2. 安装docker ce引擎

    [root@gitlab ~]# yum install -y yum-utils
    [root@gitlab ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    [root@gitlab ~]# yum list docker-ce --showduplicates  # 列出相应软件包可安装的所有的版本
    [root@gitlab ~]# yum -y install docker-ce-19.03.15 docker-ce-cli-19.03.15 # 安装指定版本的docker-ce,不必追求最新的版本
    
    # 配置docker镜像加速,镜像加速地址登陆自己的aliyun帐号获取
    [root@gitlab ~]# mkdir /etc/docker
    [root@gitlab ~]# tee /etc/docker/daemon.json <<-‘EOF‘
    {
     "registry-mirrors": ["https://gja93w4p.mirror.aliyuncs.com"]
    }
    EOF
    [root@gitlab ~]# systemctl enable docker
    [root@gitlab ~]# systemctl start docker
    [root@gitlab ~]# docker info | grep Version
    Server Version: 19.03.15
    Kernel Version: 3.10.0-1127.el7.x86_64
    [root@gitlab ~]# docker -v
    Docker version 19.03.15, build 99e3ed8919
  3. 安装docker-compose

    # 使用docker官方的安装地址奇慢,请更换为daocloud的地址
    [root@gitlab ~]# curl -L "https://get.daocloud.io/docker/compose/releases/download/1.28.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    [root@gitlab ~]# chmod +x /usr/local/bin/docker-compose
    [root@gitlab ~]# docker-compose -v
    docker-compose version 1.28.5, build c4eb3a1f

Docker-compose拉起gitlab服务

准备docker-compose文件

# 先创建容器挂载到本地的目录
[root@gitlab ~]# mkdirp -pv /gitlab-data/{config,logs,data}
# 准备域名证书文件及客户端认证的CA证书
[root@gitlab gitlab]# ls -al /gitlab-data/config/ssl/
总用量 16
drwxr-xr-x 2 root root   86 3月  24 15:52 .
drwxrwxr-x 4 root root  250 3月  24 15:11 ..
-rw-r--r-- 1 root root 1675 3月  24 15:11 3741491__mygitlab.cn.key
-rw-r--r-- 1 root root 5558 3月  24 15:11 3741491__mygitlab.cn.pem
-rw-r--r-- 1 root root 1326 3月  24 15:11 cacert.pem

# docker-compose文件
[root@gitlab gitlab]# pwd
/root/gitlab
[root@gitlab gitlab]# cat docker-compose.yml
version: ‘3.9‘
services:
  gitlab_server:
    image: ‘gitlab/gitlab-ce:13.10.0-ce.0‘
    restart: always
    hostname: ‘mygitlab‘
    container_name: gitlab  # 容器的名称
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url ‘https://abd.mygitlab.cn‘
        gitlab_rails[‘gitlab_shell_ssh_port‘] = 5022 # 因22为宿主机的ssh端口,冲突了
        nginx[‘enable‘] = true
        nginx[‘client_max_body_size‘] = ‘250m‘
        nginx[‘redirect_http_to_https‘] = true
        nginx[‘redirect_http_to_https_port‘] = 80
        gitlab_rails[‘time_zone‘] = ‘Asia/Shanghai‘  # 可设置为‘PRC‘
        nginx[‘ssl_certificate‘] = "/etc/gitlab/ssl/xxxxxxxxx.pem"  # 域名的证书
        nginx[‘ssl_certificate_key‘] = "/etc/gitlab/ssl/xxxxxxxxx.key" # 域名的私钥
        nginx[‘ssl_ciphers‘] = "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256"
        nginx[‘ssl_prefer_server_ciphers‘] = "on"
        nginx[‘ssl_protocols‘] = "TLSv1.2 TLSv1.3"
        nginx[‘http2_enabled‘] = true
        nginx[‘proxy_set_headers‘] = {
            "X-Forwarded-Proto" => "http"
          }
        nginx[‘ssl_client_certificate‘] = "/etc/gitlab/ssl/cacert.pem" # 客户端验证CA的证书
        nginx[‘ssl_verify_client‘] = "on" # 启用客户端认证
        unicorn[‘worker_processes‘] = 4 # 进程数,与想使用的cpu核心数相同
        unicorn[‘worker_timeout‘] = 60
        gitlab_rails[‘gitlab_email_enabled‘] = true  # 开启邮件功能
        gitlab_rails[‘gitlab_email_from‘] = ‘419775240@qq.com‘
        gitlab_rails[‘gitlab_email_display_name‘] = ‘GitlabAdmin‘ # 发件人的显示名称
        gitlab_rails[‘gitlab_email_reply_to‘] = ‘419775240@qq.com‘
        gitlab_rails[‘smtp_enable‘] = true  # 配置smtp邮件服务
        gitlab_rails[‘smtp_address‘] = ‘smtp.qq.com‘
        gitlab_rails[‘smtp_port‘] = 465
        gitlab_rails[‘smtp_user_name‘] = ‘419775240@qq.com‘ # 与 gitlab_email_from相同
        gitlab_rails[‘smtp_password‘] = ‘xxxxxxxxx‘ # 这里是授权码,不是邮箱的密码
        gitlab_rails[‘smtp_domain‘] = ‘pop.qq.com‘
        gitlab_rails[‘smtp_authentication‘] = ‘login‘
        gitlab_rails[‘smtp_enable_starttls_auto‘] = true
        gitlab_rails[‘smtp_tls‘] = true
    mem_limit: 4096m
    ports:
    - ‘80:80‘
    - ‘443:443‘
    - ‘5022:22‘
    volumes:
    - ‘/gitlab-data/config:/etc/gitlab‘
    - ‘/gitlab-data/logs:/var/log/gitlab‘
    - ‘/gitlab-data/data:/var/opt/gitlab‘
    networks:
    - gitlab

networks:
  gitlab:
    driver: bridge

Docker-compose文件说明:

gitlab镜像选择时建议不要直接使用gitlab/gitlab-ce:latest,可以先在dockerhub上搜索gitlab关键字,找到官方的镜像,再找到相应的tags,选择当前最新的tag作为使用的镜像,这样比较明确使用了哪个版本的的镜像。

GITLAB_OMNIBUS_CONFIG此环境变量可接收/etc/gitlab/gitlab.rb这个配置文件中的所有配置项,这里启用了站点的https访问,如果自建的gitlab站点是开放在公网上的,启用ssl_verify_client客户端证书认证可以增加安全性,事例中还启用了邮件通知功能。

先pull相应的镜像,如果拉取速度特别慢,那需要找个***

[root@gitlab gitlab]# docker pull gitlab/gitlab-ce:13.10.0-ce.0

先前台启动服务,观察是否有错误,如果没问题了再加-d参数让其运行在后台

[root@gitlab gitlab]# docker-compose -f docker-compose.yml up

gitlab容器启动后需要做初始化操作,可能会花费几分钟的时间。

运行完毕后,系统会拉起一个名称为gitlab的容器

[root@gitlab gitlab]# docker ps
CONTAINER ID        IMAGE                           COMMAND             CREATED             STATUS                     PORTS                                                            NAMES
29c8fd8dc58d        gitlab/gitlab-ce:13.10.0-ce.0   "/assets/wrapper"   6 minutes ago       Up 6 minutes (unhealthy)   0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:5022->22/tcp   gitlab

该容器使用了一个指定的网桥设备

[root@gitlab gitlab]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
036cea02883b        bridge              bridge              local
f3bcb46a7e88        gitlab_gitlab       bridge              local  
3100bef0ee7f        host                host                local
71bce7290f94        none                null                local

该网桥设备是自动创建的,docker-compose.yml上级目录名称gitlab与容器名称使用_进行连接来命名网桥的名称,如上的gitlab_gitlab

系统基本设置

语言切换

因启用了客户端认证,所以需要获取相应自建CA的颁发的客户端证书,并导入到客户端系统,若没有客户端证书使用浏览器打开时会报以下错误,

技术分享图片

导入证书后,再次打开会要求修改密码,并且默认状态下系统开启了注册功能,如下图:
技术分享图片

设置好密码后,可以使用默认用root进行登陆。默认是英文界面,可以切换为中文,切换操作如下:
技术分享图片

技术分享图片

关闭用户注册

技术分享图片

保存后退出登陆,在登陆界面的注册链接被关闭了。

帮助信息获取

GitLab的官方帮助信息非常完善,地址为:https://docs.gitlab.com/ ,如果访问该站点有困难时,可以在我们部署的系统中访问帮助信息,地址为:http(s)://域名/help/ ,如:https://abd.mygitlab.cn/help

参考:

GitLab Docker images:https://docs.gitlab.com/omnibus/docker/README.html
Nginx配置:https://docs.gitlab.com/omnibus/settings/nginx.html

GitLab快速入门1-Gitlab CE安装配置操作实践

原文:https://blog.51cto.com/zhaochj/2704315

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!