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コンテナの再起動ポリシー。 値: always, on-failure, unless-stopped。デフォルトでは、Dockerは状況に関係なくコンテナを再起動しません。

URL

  • gitlab_hostname -- GitLabホストのドメイン名。デフォルト値: gitlab.test
  • gitlab_web_port -- ウェブUIのポート番号。デフォルト値: 80
  • gitlab_registry_port -- コンテナレジストリのポート番号。デフォルト値: 5050
  • gitlab_ssh_port -- Gitシェルの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 -- 送信メールを有効にします。値: yes, no。デフォルト値: no
  • gitlab_email_from_mailbox -- 送信メールの「From」ヘッダーのメールボックス値
  • gitlab_email_from_display_name -- 送信メールの「From」ヘッダーの表示名値
  • gitlab_email_reply_to_mailbox -- 送信メールの「Reply-To」ヘッダーのメールボックス値
  • 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 -- tlsまたはstarttlsトランスポート層セキュリティメカニズムを選択した場合、SMTPサーバー証明書を検証します。デフォルト値: yes
  • gitlab_email_smtp_ca_cert -- SMTPサーバー証明書を検証するために使用されるCA証明書へのローカルパス
  • gitlab_email_smtp_user_auth_method -- SMTPユーザー認証方法。 値: plain, login, cram_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']の値を設定します。

依存関係

Dockerとその他の要件をインストールするためにyabusygin.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
所有者