Gitlab安装部署

环境:

操作系统: 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'] = '[email protected]' gitlab_rails['gitlab_email_display_name'] = 'xionghaihua' gitlab_rails['gitlab_email_reply_to'] = '[email protected]'  
gitlab_rails['smtp_enable'] = true  
gitlab_rails['smtp_address'] = "smtp.distrii.com"
gitlab_rails['smtp_port'] = 465 
 gitlab_rails['smtp_user_name'] = "[email protected]
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'] = '[email protected]'                         
             gitlab_rails['gitlab_email_display_name'] = 'xionghaihua'
             gitlab_rails['gitlab_email_reply_to'] = '[email protected]'
             gitlab_rails['smtp_enable'] = true
             gitlab_rails['smtp_address'] = "smtp.distrii.com"
             gitlab_rails['smtp_port'] = 465
             gitlab_rails['smtp_user_name'] = "[email protected]"
             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安装部署)