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>