yabusygin.gitlab

Ansible 角色:gitlab

测试工作流状态 发布工作流状态

一个用于设置 GitLab 版本 13.0 或更新版本的 Ansible 角色。

要求

该角色使用 community.docker.docker_compose 模块。因此,控制节点上需要 community.docker 集合。

执行此角色时,受管节点需具备以下要求:

建议使用 yabusygin.docker 角色在受管节点上安装所有要求。

角色变量

以下是快速变量参考。请参见下面的 Wiki 和 “示例剧本” 部分获取示例。

Docker 配置

  • gitlab_image -- 要使用的 Docker 容器镜像,默认值:gitlab/gitlab-ce:latest
  • gitlab_restart_policy -- Docker 容器 重启策略。值:alwayson-failureunless-stopped。Docker 默认情况下在任何情况下都不重新启动容器。

URL

  • gitlab_hostname -- GitLab 主机的域名。默认值:gitlab.test
  • gitlab_web_port -- Web UI 端口号。默认值:80
  • gitlab_registry_port -- 容器注册表端口号。默认值:5050
  • gitlab_ssh_port -- Git shell SSH 端口号。默认值:22

HTTPS

  • gitlab_https_enable -- 启用 HTTPS。默认:no
  • gitlab_letsencrypt_enable -- 启用与 Let’s Encrypt 的自动 HTTPS。默认:no
  • gitlab_https_key -- 控制主机上的私钥路径。
  • gitlab_https_cert -- 控制主机上的证书链路径。

外发邮件

  • gitlab_email_enable -- 启用外发邮件。值:yesno。默认值:no
  • gitlab_email_from_mailbox -- 外发邮件中 “发件人” 标头的邮箱值。
  • gitlab_email_from_display_name -- 外发邮件中 “发件人” 标头的显示名称值。
  • gitlab_email_reply_to_mailbox -- 外发邮件中 “回复到” 标头的邮箱值。
  • gitlab_email_smtp_server_host -- SMTP 服务器名称。
  • gitlab_email_smtp_server_port -- SMTP 服务器端口。
  • gitlab_email_smtp_transport_security -- 传输层安全机制。值:tls (SMTPS)、starttls
  • gitlab_email_smtp_verify_server_cert -- 验证 SMTP 服务器证书,当选择 tlsstarttls 传输层安全机制。默认值:yes
  • gitlab_email_smtp_ca_cert -- 用于验证 SMTP 服务器证书的 CA 证书的本地路径。
  • gitlab_email_smtp_user_auth_method -- SMTP 用户认证方式。值:plainlogincram_md5
  • gitlab_email_smtp_user_name -- SMTP 用户名。
  • gitlab_email_smtp_user_password -- SMTP 用户密码。

应用服务器 (Puma)

变量参考:

  • gitlab_workers -- Puma 工作进程的数量。
  • gitlab_min_threads -- Puma 线程的最小数量。
  • gitlab_max_threads -- Puma 线程的最大数量。

监控

变量参考:

  • gitlab_monitoring_whitelist -- 被允许执行健康检查的监控端点的地址/子网列表。

备份

有关详细信息,请参见 GitLab 文档

自动备份

  • gitlab_backup_cron_enable -- 启用执行定期备份的 cron 任务。默认值:no
  • gitlab_backup_cron_minute -- cron 命令行的 “分钟” 字段。必填变量。请参见 crontab(5)
  • gitlab_backup_cron_hour -- cron 命令行的 “小时” 字段。必填变量。请参见 crontab(5)
  • gitlab_backup_cron_day_of_month -- cron 命令行的 “月份中的天” 字段。默认值:*
  • gitlab_backup_cron_month -- cron 命令行的 “月份” 字段。默认值:*
  • gitlab_backup_cron_day_of_week -- cron 命令行的 “星期几” 字段。默认值:*
  • gitlab_backup_cron_docker_cmd -- 备份 cron 任务用来调用 Docker 引擎的命令。默认:docker
  • gitlab_backup_cron_docker_compose_cmd -- 备份 cron 任务用来调用 Docker Compose 的命令。默认:docker compose

上传备份到 S3 兼容存储

  • gitlab_backup_upload_enable -- 启用将备份上传到远程存储。默认值:no
  • gitlab_backup_upload_s3_region -- AWS 区域
  • gitlab_backup_upload_s3_bucket -- 用于存储备份对象的 S3 存储桶。必填变量。
  • gitlab_backup_upload_s3_access_key_id -- 访问密钥 ID。必填变量。
  • gitlab_backup_upload_s3_secret_access_key -- 秘密访问密钥。必填变量。
  • gitlab_backup_upload_s3_endpoint -- S3 兼容存储的 HTTP API 端点。
  • gitlab_backup_upload_s3_path_style_enable -- 使用路径样式访问存储桶(请参见 访问存储桶的方法)。

限制本地备份文件的保留时间

  • gitlab_backup_keep_time -- 设置 gitlab_rails['backup_keep_time'] 值。

依赖

如果使用 yabusygin.docker 角色安装 Docker 和其他要求,建议启用 用户命名空间重映射 (请参见下面的示例)。

示例剧本

默认设置(Docker 和其他要求已安装):

- name: 设置 GitLab
  hosts: gitlab
  tasks:
    - name: 设置 GitLab
      ansible.builtin.import_role:
        name: yabusygin.gitlab

使用 yabusygin.docker 角色进行自定义:

---
- name: 设置自定义 Docker  GitLab
  hosts: gitlab
  tasks:
    - name: 设置 Docker
      ansible.builtin.import_role:
        name: yabusygin.docker
      vars:
        userns-remap: default
        log-driver: json-file
        log-opts:
          max-size: 10m
          max-file: "3"

    - name: 设置 GitLab
      ansible.builtin.import_role:
        name: yabusygin.gitlab
      vars:
        gitlab_image: gitlab/gitlab-ee:latest
        gitlab_restart_policy: always

        gitlab_hostname: gitlab.example.com
        gitlab_web_port: 3443
        gitlab_registry_port: 5001
        gitlab_ssh_port: 2222

        gitlab_https_enable: yes
        gitlab_https_key: https/gitlab.key.pem
        gitlab_https_cert: https/gitlab.crt.pem

        gitlab_workers: 2
        gitlab_min_threads: 4
        gitlab_max_threads: 4

        gitlab_monitoring_whitelist:
          - 192.168.10.39
          - 10.0.1.0/24

        gitlab_email_enable: yes
        gitlab_email_from_mailbox: [email protected]
        gitlab_email_from_display_name: GitLab
        gitlab_email_reply_to_mailbox: [email protected]
        gitlab_email_smtp_server_host: smtp.example.com
        gitlab_email_smtp_server_port: 587
        gitlab_email_smtp_transport_security: starttls
        gitlab_email_smtp_user_auth_method: login
        gitlab_email_smtp_user_name: gitlab
        gitlab_email_smtp_user_password: Pa$$w0rD

        gitlab_backup_cron_enable: yes
        gitlab_backup_cron_minute: 0
        gitlab_backup_cron_hour: 2
        gitlab_backup_cron_docker_cmd: /usr/bin/docker
        gitlab_backup_cron_docker_compose_cmd: /usr/local/bin/docker-compose

        gitlab_backup_upload_enable: yes
        gitlab_backup_upload_type: s3
        gitlab_backup_upload_s3_endpoint: https://ams3.digitaloceanspaces.com
        gitlab_backup_upload_s3_region: ams3
        gitlab_backup_upload_s3_bucket: my.s3.bucket
        gitlab_backup_upload_s3_access_key_id: AKIAKIAKI
        gitlab_backup_upload_s3_secret_access_key: secret123

        gitlab_backup_keep_time: 604800

许可证

MIT

作者信息

Alexey Busygin <yaabusygin@gmail.com>

关于项目

An Ansible role for setting up GitLab.

安装
ansible-galaxy install yabusygin.gitlab
许可证
mit
下载
105
拥有者