geerlingguy.gitlab

Ansibleロール: GitLab

非推奨: 2023年9月にこのロールは非推奨にしました。私はもはやGitLabインスタンスを管理しておらず、個人的な作業にはGiteaを使用しています。このロールのフォークを検討するか、他の誰かのGitLabロールを使用してください。

GitLabは、RubyベースのGitのフロントエンドであり、RedHat/CentOSまたはDebian/UbuntuのLinuxシステムでインストールできます。

GitLabのデフォルトの管理者アカウントの詳細は以下の通りです。インストール後すぐにログインして、これらの資格情報を変更してください!

root
5iveL!fe

必要条件

特にありません。

ロール変数

使用可能な変数は以下にリストされています。デフォルト値も含まれています(defaults/main.ymlを参照):

gitlab_domain: gitlab
gitlab_external_url: "https://{{ gitlab_domain }}/"

GitLabインスタンスにアクセスするためのドメインとURLです。これはgitlab.rbexternal_url設定として設定され、GitLabを80/443以外のポートで実行したい場合は、ここでポートを指定できます(例: https://gitlab:8443/でポート8443)。

gitlab_git_data_dir: "/var/opt/gitlab/git-data"

gitlab_git_data_dirは、すべてのGitリポジトリが保存される場所です。共有ドライブやシステム上の任意のパスを使用できます。

gitlab_backup_path: "/var/opt/gitlab/backups"

gitlab_backup_pathは、GitLabバックアップが保存される場所です。

gitlab_edition: "gitlab-ce"

インストールするGitLabのエディションです。通常はgitlab-ce(コミュニティエディション)またはgitlab-ee(エンタープライズエディション)です。

gitlab_version: ''

特定のバージョンをインストールしたい場合は、ここにバージョンを設定します(例: Debian/Ubuntu用に11.4.0-ce.0、またはRedHat/CentOS用に11.4.0-ce.0.el7)。

gitlab_config_template: "gitlab.rb.j2"

このロールにパッケージされたgitlab.rb.j2テンプレートは、非常に一般的でさまざまなユースケースに対応しています。ただし、多くの人がよりカスタマイズされたバージョンを希望しているため、デフォルトテンプレートを自分のものに上書きし、必要な追加のカスタマイズを加えることができます。その方法は次の通りです:

  • プレイブックと同じレベルにtemplatesディレクトリを作成します。
  • templates\mygitlab.rb.j2というファイルを作成します(デフォルトテンプレートとは異なる名前を選んでください)。
  • 変数を次のように設定します: gitlab_config_template: mygitlab.rb.j2(カスタムテンプレートの名前を使用します)。

SSL構成

gitlab_redirect_http_to_https: true
gitlab_ssl_certificate: "/etc/gitlab/ssl/{{ gitlab_domain }}.crt"
gitlab_ssl_certificate_key: "/etc/gitlab/ssl/{{ gitlab_domain }}.key"

GitLabのSSL構成。GitLabに通常のhttpリクエストをhttpsにリダイレクトさせ、証明書とキーのパスを指定します(デフォルト値は、下の変数でtrueに設定すると、自動的な自己署名証明書作成に対応します)。

# SSL自己署名証明書構成
gitlab_create_self_signed_cert: true
gitlab_self_signed_cert_subj: "/C=US/ST=Missouri/L=Saint Louis/O=IT/CN={{ gitlab_domain }}"

安全な接続でGitLabを提供するための自己署名証明書を作成するかどうかを示します。gitlab_self_signed_cert_subjは、あなたの地域と組織に応じて設定してください。

LetsEncrypt構成

gitlab_letsencrypt_enable: false
gitlab_letsencrypt_contact_emails: ["[email protected]"]
gitlab_letsencrypt_auto_renew_hour: 1
gitlab_letsencrypt_auto_renew_minute: 30
gitlab_letsencrypt_auto_renew_day_of_month: "*/7"
gitlab_letsencrypt_auto_renew: true

GitLabのLetsEncrypt構成。gitlab_letsencrypt_enabletrueの場合、LetsEncryptから証明書を要求して使用するかどうかを示します。複数の連絡先メールアドレスは、リストとしてgitlab_letsencrypt_contact_emailsに設定できます。

LDAP構成

gitlab_ldap_enabled: false
gitlab_ldap_host: "example.com"
gitlab_ldap_port: "389"
gitlab_ldap_uid: "sAMAccountName"
gitlab_ldap_method: "plain"
gitlab_ldap_bind_dn: "CN=Username,CN=Users,DC=example,DC=com"
gitlab_ldap_password: "password"
gitlab_ldap_base: "DC=example,DC=com"

GitLabのLDAP構成。gitlab_ldap_enabledtrueの場合、続く設定はGitLabがLDAPサーバーに接続して集中認証する方法を示します。

gitlab_dependencies:
  - openssh-server
  - postfix
  - curl
  - openssl
  - tzdata

GitLabの特定の機能に必要な依存関係(タイムゾーンのサポートやメールなど)。たとえば、postfixの代わりにeximをインストールしたい場合は、自分のプレイブックでこのリストを変更できます。

gitlab_time_zone: "UTC"

GitLabのタイムゾーン。

gitlab_backup_keep_time: "604800"

ローカルバックアップを保持する期間(バックアップでドライブを満たしたくない場合に便利です!)。

gitlab_download_validate_certs: true

GitLabインストールリポジトリのインストールスクリプトをダウンロードする際に証明書を検証するかどうかを制御します。

メール構成

gitlab_email_enabled: false
gitlab_email_from: "[email protected]"
gitlab_email_display_name: "Gitlab"
gitlab_email_reply_to: "[email protected]"

GitLabシステムメール構成。デフォルトでは無効になっており、gitlab_email_enabledtrueに設定して有効にし、正しいfrom/reply-to値を入力してください。

SMTP構成

gitlab_smtp_enable: false
gitlab_smtp_address: "smtp.server"
gitlab_smtp_port: "465"
gitlab_smtp_user_name: "smtp user"
gitlab_smtp_password: "smtp password"
gitlab_smtp_domain: "example.com"
gitlab_smtp_authentication: "login"
gitlab_smtp_enable_starttls_auto: true
gitlab_smtp_tls: false
gitlab_smtp_openssl_verify_mode: "none"
gitlab_smtp_ca_path: "/etc/ssl/certs"
gitlab_smtp_ca_file: "/etc/ssl/certs/ca-certificates.crt"

GitLabのSMTP構成。gitlab_smtp_enabletrueの場合、残りの設定はGitLabがメールをSMTPサーバーを使用して送信する方法を示します。

gitlab_nginx_listen_port: 8080

GitLabをリバースプロキシの背後で実行している場合、リッスンポートを別のものに上書きしたい場合があります。

gitlab_nginx_listen_https: false

GitLabをリバースプロキシの背後で実行している場合、別のプロキシサーバーやロードバランサーでSSLを終了させたくなることがあります。

gitlab_nginx_ssl_verify_client: ""
gitlab_nginx_ssl_client_certificate: ""

2-way SSLクライアント認証を有効にしたい場合、gitlab_nginx_ssl_verify_clientを設定し、gitlab_nginx_ssl_client_certificateにクライアント証明書のパスを追加してください。

gitlab_default_theme: 2

GitLabにはいくつかのテーマが含まれており、この変数で全ユーザーのデフォルトを設定できます。デフォルトを選ぶためのGitLabのテーマの確認はこちら

gitlab_extra_settings:
  - gitlab_rails:
      - key: "trusted_proxies"
        value: "['foo', 'bar']"
      - key: "env"
        type: "plain"
        value: |
          {
          "http_proxy" => "https://my_http_proxy.company.com:3128",
          "https_proxy" => "https://my_http_proxy.company.com:3128",
          "no_proxy" => "localhost, 127.0.0.1, company.com"
          }
  - unicorn:
      - key: "worker_processes"
        value: 5
      - key: "pidfile"
        value: "/opt/gitlab/var/unicorn/unicorn.pid"

GitLabには他にも多くの設定があります(公式ドキュメントを参照)。特別な変数gitlab_extra_settingsを使い、関係する設定をkeyvalueのキーワードと共に追加できます。

依存関係

特にありません。

例プレイブック

- hosts: servers
  vars_files:
    - vars/main.yml
  roles:
    - { role: geerlingguy.gitlab }

vars/main.yml:

gitlab_external_url: "https://gitlab.example.com/"

ライセンス

MIT / BSD

作者情報

このロールは、Jeff Geerlingによって2014年に作成されました。Ansible for DevOpsの著者です。

プロジェクトについて

GitLab Git web interface

インストール
ansible-galaxy install geerlingguy.gitlab
ライセンス
mit
ダウンロード
527.5k
所有者
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns