长期支持版本

    gitlab部署

    文档说明

    gitlab部署 是场景一(基于gitlab-ci从“0”开始构建欧拉原生开发CICD部署)所需步骤,场景二(欧拉原生开发执行机集群被gitlab-ci纳管)可跳过此步骤进入gitlab-runner部署。

    准备服务器

    需准备1台openEuler机器,建议在openEuler-20.03及以上版本运行。

    启动gitlab

    将需要的yaml文件拷贝至/home目录,并启动对应的pod。

    说明:gitlab相关的yaml文件可从官网获得。

    以下为yaml文件的示例参考,请根据实际情况进行修改。

    gitlab-redis.yaml:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: redis
      namespace: default
      labels:
        name: redis
    spec:
      selector:
        matchLabels:
          name: redis
      template:
        metadata:
          name: redis
          labels:
            name: redis
        spec:
          containers:
          - name: redis
            image: 10.35.111.11:5000/redis:latest
            imagePullPolicy: IfNotPresent
            ports:
            - name: redis
              containerPort: 6379
            volumeMounts:
            - mountPath: /var/lib/redis
              name: data
            livenessProbe:
              exec:
                command:
                - redis-cli
                - ping
              initialDelaySeconds: 30
              timeoutSeconds: 5
            readinessProbe:
              exec:
                command:
                - redis-cli
                - ping
              initialDelaySeconds: 5
              timeoutSeconds: 1
          volumes:
          - name: data
            emptyDir: {}
    
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: redis
      namespace: default
      labels:
        name: redis
    spec:
      ports:
        - name: redis
          port: 6379
          targetPort: redis
      selector:
        name: redis
    

    gitlab-postgresql.yaml:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: postgresql
      namespace: default
      labels:
        name: postgresql
    spec:
      selector:
        matchLabels:
          name: postgresql
      template:
        metadata:
          name: postgresql
          labels:
            name: postgresql
        spec:
          containers:
          - name: postgresql
            image: 10.35.111.11:5000/postgres:13.6
            imagePullPolicy: IfNotPresent
            env:
            - name: POSTGRES_HOST_AUTH_METHOD
              value: trust
            - name: DB_USER
              value: gitlab
            - name: DB_PASS
              value: passw0rd
            - name: DB_NAME
              value: gitlab_production
            - name: DB_EXTENSION
              value: pg_trgm
            ports:
            - name: postgres
              containerPort: 5432
            volumeMounts:
            - mountPath: /var/lib/postgresql
              name: data
            livenessProbe:
              exec:
                command:
                - pg_isready
                - -h
                - localhost
                - -U
                - postgres
              initialDelaySeconds: 30
              timeoutSeconds: 5
            readinessProbe:
              exec:
                command:
                - pg_isready
                - -h
                - localhost
                - -U
                - postgres
              initialDelaySeconds: 5
              timeoutSeconds: 1
          volumes:
          - name: data
            emptyDir: {}
    
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: postgresql
      namespace: default
      labels:
        name: postgresql
    spec:
      ports:
        - name: postgres
          port: 5432
          targetPort: postgres
      selector:
        name: postgresql
    

    gitlab.yaml:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: gitlab
      namespace: default
      labels:
        name: gitlab
    spec:
      selector:
        matchLabels:
          name: gitlab
      template:
        metadata:
          name: gitlab
          labels:
            name: gitlab
        spec:
          containers:
          - name: gitlab
            image: 10.35.111.11:5000/yrzr/gitlab-ce-arm64v8:14.3.2-ce.0
            imagePullPolicy: IfNotPresent
            env:
            - name: TZ
              value: Asia/Shanghai
            - name: GITLAB_TIMEZONE
              value: Beijing
            - name: GITLAB_SECRETS_DB_KEY_BASE
              value: long-and-random-alpha-numeric-string
            - name: GITLAB_SECRETS_SECRET_KEY_BASE
              value: long-and-random-alpha-numeric-string
            - name: GITLAB_SECRETS_OTP_KEY_BASE
              value: long-and-random-alpha-numeric-string
            - name: GITLAB_ROOT_PASSWORD
              value: admin321
            - name: GITLAB_ROOT_EMAIL
              value: 517554016@qq.com
            - name: GITLAB_HOST
              value: git.qikqiak.com
            - name: GITLAB_PORT
              value: "80"
            - name: GITLAB_SSH_PORT
              value: "22"
            - name: GITLAB_NOTIFY_ON_BROKEN_BUILDS
              value: "true"
            - name: GITLAB_NOTIFY_PUSHER
              value: "false"
            - name: GITLAB_BACKUP_SCHEDULE
              value: daily
            - name: GITLAB_BACKUP_TIME
              value: 01:00
            - name: DB_TYPE
              value: postgres
            - name: DB_HOST
              value: postgresql
            - name: DB_PORT
              value: "5432"
            - name: DB_USER
              value: gitlab
            - name: DB_PASS
              value: passw0rd
            - name: DB_NAME
              value: gitlab_production
            - name: REDIS_HOST
              value: redis
            - name: REDIS_PORT
              value: "6379"
            ports:
            - name: http
              containerPort: 80
            - name: ssh
              containerPort: 22
            volumeMounts:
            - mountPath: /home/git/data
              name: data
            livenessProbe:
              httpGet:
                path: /
                port: 80
              initialDelaySeconds: 180
              timeoutSeconds: 5
            readinessProbe:
              httpGet:
                path: /
                port: 80
              initialDelaySeconds: 5
              timeoutSeconds: 1
          volumes:
          - name: data
            emptyDir: {}
    
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: gitlab
      namespace: default
      labels:
        name: gitlab
    spec:
      ports:
        - name: http
          port: 80
          targetPort: http
          nodePort: 30852
        - name: ssh
          port: 22
          nodePort: 32353
          targetPort: ssh
      selector:
        name: gitlab
      type: NodePort
    

    启动相应的容器:

    # kubectl apply -f gitlab-redis.yaml
    # kubectl apply -f gitlab-postgresql.yaml
    # kubectl apply -f gitlab.yaml
    

    可通过命令查看gitlab pod是否搭建完成:

    # kubectl get pod -A -owide
    

    登录gitlab

    查看是否可以登录gitlab网页,网址为ip地址加设定的端口。

    网页入口 用户名为root,默认密码需进入容器后查看密码文件。

    # kubectl exec -it gitlab-lab -n default /bin/sh
    # cat /etc/gitlab/initial_root_password
    

    查询密码

    • 登录后界面如图:

    登录后页面

    文档捉虫

    “有虫”文档片段

    问题描述

    提交类型 issue

    有点复杂...

    找人问问吧。

    PR

    小问题,全程线上修改...

    一键搞定!

    问题类型
    规范和低错类

    ● 错别字或拼写错误;标点符号使用错误;

    ● 链接错误、空单元格、格式错误;

    ● 英文中包含中文字符;

    ● 界面和描述不一致,但不影响操作;

    ● 表述不通顺,但不影响理解;

    ● 版本号不匹配:如软件包名称、界面版本号;

    易用性

    ● 关键步骤错误或缺失,无法指导用户完成任务;

    ● 缺少必要的前提条件、注意事项等;

    ● 图形、表格、文字等晦涩难懂;

    ● 逻辑不清晰,该分类、分项、分步骤的没有给出;

    正确性

    ● 技术原理、功能、规格等描述和软件不一致,存在错误;

    ● 原理图、架构图等存在错误;

    ● 命令、命令参数等错误;

    ● 代码片段错误;

    ● 命令无法完成对应功能;

    ● 界面错误,无法指导操作;

    风险提示

    ● 对重要数据或系统存在风险的操作,缺少安全提示;

    内容合规

    ● 违反法律法规,涉及政治、领土主权等敏感词;

    ● 内容侵权;

    您对文档的总体满意度

    非常不满意
    非常满意
    提交
    根据您的反馈,会自动生成issue模板。您只需点击按钮,创建issue即可。
    文档捉虫
    编组 3备份