美文网首页
Gitlab安装部署

Gitlab安装部署

作者: Louisxiong_3ad1 | 来源:发表于2020-05-06 17:10 被阅读0次

    环境:

    操作系统: Centos7.6

    IP地址: 192.168.31.60

    内核版本: 3.10.0-957.el7.x86_64

    第一种方式: 使用RPM方式安装

    源地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/

    1)安装部署

    wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.9.0-ce.0.el7.x86_64.rpm 

    rpm -ivh gitlab-ce-12.9.0-ce.0.el7.x86_64.rpm 

    vim /etc/gitlab.rb # 编辑站点地址 

    external_url 'http://gitlab.ziioffice.com'

    git_data_dirs({ "default" => { "path" => "/data/git-data" } }) 

    gitlab_rails['backup_path'] = "/data/git-data/backups"

    #配置邮箱

     gitlab_rails['gitlab_email_enabled'] = true 
    gitlab_rails['gitlab_email_from'] = 'xionghaihua@distrii.com' gitlab_rails['gitlab_email_display_name'] = 'xionghaihua' gitlab_rails['gitlab_email_reply_to'] = 'xhaihua@distrii.com'  
    gitlab_rails['smtp_enable'] = true  
    gitlab_rails['smtp_address'] = "smtp.distrii.com"
    gitlab_rails['smtp_port'] = 465 
     gitlab_rails['smtp_user_name'] = "xionghaihua@distrii.com" 
    gitlab_rails['smtp_password'] = "123456" 
    gitlab_rails['smtp_domain'] = "smtp.distrii.com"  
    gitlab_rails['smtp_authentication'] = "login" 
     gitlab_rails['smtp_enable_starttls_auto'] = true 
    gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
    gitlab_rails['smtp_tls'] = true  

    2)启动gitlab

    gitlab-ctl reconfigure  

    gitlab-ctl start 

    gitlab-ctl status     

    gitlab-ctl stop

    3)日志查看:

    日志路径: /var/log/gitlab
    查看所有日志:gitlab-ctl tail
    查看nginx日志:gitlab-ctl tail nginx/gitlab_access.log
    查看指数据库日志:gitlab-ctl tail postgresql

    第二种方式: 使用Docker-compose方式安装

    1)安装部署docker

    yum -y install yum-utils device-mapper-persistent-data lvm2
    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    yum -y install docker-ce
    systemctl enable docker && systemctl start docker

    mkdir -p /data/docker
    cat >>/etc/docker/daemon.json <<-EOF
    { "registry-mirrors": ["https://wxezogdu.mirror.aliyuncs.com"],
    "graph": "/data/docker"
    }
    EOF
    systemctl restart docker
    #安装docker-compose
    curl -L https://get.daocloud.io/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
    chmod +x /usr/local/bin/docker-compose
    #验证
    [root@openldap ~]# docker-compose -v
    docker-compose version 1.24.0, build 0aa59064
    [root@openldap ~]# docker -v
    Docker version 19.03.8, build afacb8b

    2)编写docker-compose.yml文件

    #拉取镜像
      docker pull gitlab/gitlab-ce:12.9.0-ce.0

    #创建目录

    mkdir -p /data/gitlab
    mkdir /data/gitlab/{config,data,logs}

    #编写docker-compose.yml文件

    cd /data/gitlab
    cat >docker-compose.yml <<-EOF
    version: "3"
    services:
        gitlab:
           image: gitlab/gitlab-ce:12.9.0-ce.0
           container_name: gitlab
           restart: always
           hostname: 'gitlab.ziioffice.com'
           environment:
              GITLAB_OMNIBUS_CONFIG: |
                 external_url  "http://gitlab.ziioffice.com"
                 gitlab_rails['gitlab_shell_ssh_port'] = 2222
                 gitlab_rails['gitlab_email_enabled'] = true
                 gitlab_rails['gitlab_email_from'] = 'xionghaihua@distrii.com'                         
                 gitlab_rails['gitlab_email_display_name'] = 'xionghaihua'
                 gitlab_rails['gitlab_email_reply_to'] = 'xionghaihua@distrii.com'
                 gitlab_rails['smtp_enable'] = true
                 gitlab_rails['smtp_address'] = "smtp.distrii.com"
                 gitlab_rails['smtp_port'] = 465
                 gitlab_rails['smtp_user_name'] = "xhaihua@distrii.com"
                 gitlab_rails['smtp_password'] = "123456"
                 gitlab_rails['smtp_domain'] = "smtp.distrii.com"
                 gitlab_rails['smtp_authentication'] = "login"
                 gitlab_rails['smtp_enable_starttls_auto'] = true
                 gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
                 gitlab_rails['smtp_tls'] = true
          ports:
              -  '443:443'
              -  '2222:22'
              -  "80:80"
          volumes:
              -  '/data/gitlab/config:/etc/gitlab'
              -  '/data/gitlab/logs:/var/log/gitlab'
              -  '/data/gitlab/data:/var/opt/gitlab'
          logging:
             driver:  "json-file"
             options:
                 max-size: "20m"
                 max-file: "10"EOF
     #执行启动
    [root@gitlab gitlab]# docker-compose up -d
    Creating network "gitlab_default" with the default driver
    Creating gitlab ... done
     [root@gitlab gitlab]# docker-compose ps
     Name Command State Ports -----------------------------------------------------------------------------------------------------------------
    gitlab /assets/wrapper Up (health: starting) 0.0.0.0:2222->22/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp

    #gitlab访问

    http://gitlab.ziioffice.com

    第三种方式: kubernetes部署gitlab

    https://gitee.com/xhaihua/devops/blob/master/gitlab/deploy-gitlab.yaml

    ---

    kind: Deployment

    apiVersion: apps/v1

    metadata:

      labels:

        k8s-app: gitlab

      name: gitlab

      namespace: devops

    spec:

      replicas: 1

      revisionHistoryLimit: 10

      selector:

        matchLabels:

          k8s-app: gitlab

      template:

        metadata:

          labels:

            k8s-app: gitlab

          namespace: devops

          name: gitlab

        spec:

          containers:

            - name: gitlab

              image: gitlab/gitlab-ce:12.9.0-ce.0

              imagePullPolicy: IfNotPresent

              ports:

                - containerPort: 30088

                  name: web

                  protocol: TCP

                - containerPort: 22

                  name: agent

                  protocol: TCP

              resources:

                limits:

                  cpu: 2000m

                  memory: 8Gi

                requests:

                  cpu: 500m

                  memory: 512Mi

              livenessProbe:

                httpGet:

                  path: /users/sign_in

                  port: 30088

                initialDelaySeconds: 60

                timeoutSeconds: 5

                failureThreshold: 12

              readinessProbe:

                httpGet:

                  path: /users/sign_in

                  port: 30088

                initialDelaySeconds: 60

                timeoutSeconds: 5

                failureThreshold: 12

              volumeMounts:

                - name: gitlab-conf

                  mountPath: /etc/gitlab

                - name: gitlab-log

                  mountPath: /var/log/gitlab

                - name: gitlab-data

                  mountPath: /var/opt/gitlab

              env:

                - name: gitlab_HOME

                  value: /var/lib/gitlab

          volumes:

            - name: gitlab-conf

              hostPath:

                path: /data/devops/gitlab/config

                type: Directory

            - name: gitlab-log

              hostPath:

                path: /data/devops/gitlab/logs

                type: Directory

            - name: gitlab-data

              hostPath:

                path: /data/devops/gitlab/data

                type: Directory

          serviceAccountName: gitlab

    ---

    apiVersion: v1

    kind: ServiceAccount

    metadata:

      labels:

        k8s-app: gitlab

      name: gitlab

      namespace: devops

    ---

    kind: Service

    apiVersion: v1

    metadata:

      labels:

        k8s-app: gitlab

      name: gitlab

      namespace: devops

    spec:

      type: NodePort

      ports:

        - name: web

          port: 30088

          targetPort: 30088

          nodePort: 30088

        - name: slave

          port: 22

          targetPort: 22

          nodePort: 30022

      selector:

        k8s-app: gitlab

    ---

    kind: Role

    apiVersion: rbac.authorization.k8s.io/v1beta1

    metadata:

    name: gitlab

    namespace: devops

    rules:

    - apiGroups: [""]

      resources: ["pods"]

      verbs: ["create","delete","get","list","patch","update","watch"]

    - apiGroups: [""]

      resources: ["pods/exec"]

      verbs: ["create","delete","get","list","patch","update","watch"]

    - apiGroups: [""]

      resources: ["pods/log"]

      verbs: ["get","list","watch"]

    - apiGroups: [""]

      resources: ["secrets"]

      verbs: ["get"]

    ---

    apiVersion: rbac.authorization.k8s.io/v1beta1

    kind: RoleBinding

    metadata:

    name: gitlab

    namespace: devops

    roleRef:

    apiGroup: rbac.authorization.k8s.io

    kind: Role

    name: gitlab

    subjects:

    - kind: ServiceAccount

      name: gitlab

      namespace: devops

    相关文章

      网友评论

          本文标题:Gitlab安装部署

          本文链接:https://www.haomeiwen.com/subject/cabwghtx.html