- GitLabのインストールとメンテナー
- ユーザー設定と権限
- プロジェクト設定
- パッケージレジストリ管理
- 継続的インテグレーションの設定
- スニペット設定
- git 設定オプション
- GitLabのモニタリング
- 分析
- トラブルシューティング
管理者ドキュメント
セルフマネジメントのGitLabインスタンスを管理する方法をご紹介します。
GitLabには2つのディストリビューションがあります:
- オープンソースのGitLab Community Edition(CE)。
- オープンコアのGitLab Enterprise Edition(EE)。
GitLab CEでもGitLab EEでもインストールできますが、選択したサブスクリプション(Core、Starter、Premium、Ultimate)によって利用できる機能が異なります。
GitLab.comはGitLab, Inc.によって管理されているため、GitLabチームメンバーのみが管理者設定にアクセスできます。 GitLab.comユーザーの方は、ユーザードキュメントをご確認ください。
GitLabのインストールとメンテナー
GitLabインスタンスのインストール、設定、アップデート、メンテナーの方法を学びます。
GitLabのインストール
-
インストール:要件、ディレクトリ構造、インストール方法。
- データベース負荷分散:データベースクエリを複数のデータベースサーバー間で分散します。
- ログ転送のオムニバスサポート
-
リファレンス・アーキテクチャ:より多くのユーザーをサポートするためにリソースを追加します。
- Amazon Web ServicesにGitLabをインストールする(AWS): Amazon AWSにGitLabをセットアップします。
- Geo: GitLabインスタンスを、読み取り専用の完全オペレーションバージョンとして他の地域にレプリケートします。
- ディザスタリカバリ:災害時に最小限の労力で別のサイトに素早くフェイルオーバーできます。
- Pivotal Tile:OpsManager(BOSH) for Pivotal Cloud Foundryを使用して、構成済みのアプライアンスとしてGitLabをデプロイします。
- ライセンスの追加:インストール時にライセンスをアップロードすることで、GitLabの有料版の機能をアンロックできます。
GitLab の設定
- インスタンスのタイムゾーンを調整:GitLabのデフォルトタイムゾーンをカスタマイズします。
- システムフック:ユーザー、プロジェクト、キーが変更された際の通知。
- セキュリティ:GitLabインスタンスのセキュリティをさらに高めるためにできることを学びましょう。
- 利用統計、バージョンチェック、利用 ping: インスタンスに関する情報を GitLab, Inc.
- グローバル・ユーザー設定:インスタンス全体のユーザー権限を設定します。
- ポーリング:GitLab UIがアップデートをポーリングする頻度を設定します。
- GitLab Pagesの設定:GitLab Pagesを有効にして設定します。
- GitLabソースインストールに対するGitLab Pagesの設定:ソースインストールでGitLab Pagesを有効にして設定します。
- アップロード管理: GitLabアップロードストレージを設定します。
- 環境変数:GitLabを設定するために、デフォルト値を上書きするために使用できる環境変数をサポートします。
- プラグイン: カスタムプラグインにより、GitLab管理者はGitLabのソースコードを変更することなく、カスタムインテグレーションを導入することができます。
- 利用規約の施行
- 第三者からのオファー
- コンプライアンス: GitLabインスタンスとDevOpsワークフローがコンプライアンス基準に適合するように設定できる、アプリケーション全体の機能のコレクションです。
- 差分制限: ブランチ比較ページの差分レンダリングサイズの制限を設定します。
- マージリクエストの差分ストレージ: マージリクエストの差分外部ストレージを設定します。
- ブロードキャストメッセージ:UIを通してGitLabユーザーにメッセージを送信します。
- Elasticsearch: Elasticsearchを有効にしてGitLabのAdvanced Global Searchを強化します。 膨大な量のデータを扱う場合に便利です。
- 外部分類ポリシー作成者の承認
- ライセンスのアップロード:ライセンスをアップロードすると、GitLabの有料版の機能がアンロックされます。
- 管理エリア:インスタンス全体の構成とメンテナンスを自己管理します。
- S/MIME署名:すべての送信通知メールにS/MIMEで署名する方法。
- featuresフラグの有効化と無効化:featuresフラグの後ろにデプロイされたGitLab機能の有効化と無効化の方法。
GitLab の外観のカスタマイズ
- ヘッダーロゴ:すべてのページとメールヘッダーのロゴを変更します。
- ファビコン:デフォルトのファビコンをあなたのロゴに変更します。
- ブランドログインページ: ログインページをロゴ、タイトル、説明文でカスタマイズできます。
- 「新規プロジェクト “ページ:ユーザーが新規プロジェクトを作成するときに開くページに表示するテキストをカスタマイズします。
- カスタムメールテキストの追加:GitLabから送信されるメールにカスタムテキストを追加します。
GitLabのメンテナー
-
Rakeタスク:メンテナンス、バックアップ、自動webhook設定など様々なタスクを実行します。
- バックアップとリストア:GitLabインスタンスのバックアップとリストア。
- オペレーション:GitLabの稼働維持(Redisセッションのクリーンアップ、リポジトリの移動、Sidekiq MemoryKiller、Puma)。
- GitLabの再起動:GitLabとそのコンポーネントを再起動する方法を学びます。
- Markdownキャッシュを無効にする: キャッシュされたMarkdownを無効にします。
GitLab のアップデート
- GitLabのバージョンとメンテナンスポリシー:GitLabのバージョンとリリース(メジャー、マイナー、パッチ、セキュリティ)、アップデートの推奨を理解します。
- GitLabのアップデート: インストールを新しいバージョンにアップグレードするためのガイドをアップデートします。
- ダウンタイムなしのアップグレード:GitLabインスタンスをオフラインにすることなく、GitLabの新しいメジャー、マイナー、パッチバージョンにアップグレードできます。
- GitLab CI/CDデータを別バージョンのGitLabに移行する:古いGitLabインストール(8.0より古い)をお持ちの場合、このガイドに従って既存のGitLab CI/CDデータを別バージョンのGitLabに移行してください。
GitLabのアップグレードまたはダウングレード
- GitLab CEからGitLab EEへのアップグレード:GitLab Community EditionからGitLab Enterprise Editionへのアップグレード方法をご紹介します。
- GitLab EEからGitLab CEへのダウングレード:GitLab Enterprise EditionsからCommunity Editionへのダウングレード方法をご紹介します。
GitLab プラットフォームインテグレーション
- Mattermost: ウェブメッセージング用のオープンソースの非公開クラウドワークプレイスであるMattermostとインテグレーションします。
- PlantUML: スニペット、Wiki、リポジトリで作成されたAsciiDocやMarkdownドキュメントでシンプルなダイアグラムを作成します。
- Web端末:GitLabのCI/CD環境内からKubernetesにデプロイされたアプリケーションへのターミナルアクセスを提供します。
ユーザー設定と権限
- ユーザーの作成:手動または認証インテグレーションを通じてユーザーを作成します。
- Libravatar: ユーザーのアバターには Gravatar の代わりに Libravatar を使ってください。
- 登録制限:特定のドメインのメールアドレスをブロック、または特定のドメインのみをホワイトリストに登録。
- アクセス制限:GitLabとの通信に使用できるGitアクセスプロトコルを定義します(SSH、HTTP、HTTPS)。
- 認証と承認:LDAP、SAML、CAS、およびその他のプロバイダを使用して外部認証を構成します。
- ユーザーにメールを送る: GitLab内からGitLabユーザーにメールを送ることができます。
- ユーザー・コホート:新規ユーザーの月別コホートとアクティビティを時系列で表示します。
-
監査ログとイベント:GitLabサーバー内で行われた変更を確認できます:
- グループとプロジェクト。
- インスタンス。
- 監査ユーザー:GitLabインスタンス上のすべてのプロジェクト、グループ、その他のリソースに読み取り専用でアクセスできるユーザー。
-
受信メール: 受信メールを設定して、ユーザーがメールによる返信、メールによるイシューの作成、メールによるマージリクエストを可能にし、サービスデスクを有効にします。
- 受信メール用Postfix:UbuntuでIMAP認証付きの基本的なPostfixメールサーバーをセットアップして、受信メールに使用します。
- 不正使用レポート:ユーザーからの不正使用レポートを表示し、解決します。
- クレデンシャルインベントリ: クレデンシャルインベントリを使用すると、GitLab管理者はGitLabセルフマネージドインスタンスでユーザが使用するクレデンシャルを追跡することができます。
プロジェクト設定
- イシューを閉じるパターン:コミットメッセージからイシューを閉じる方法をカスタマイズします。
- Gitaly: GitLabのGitリポジトリストレージサービスであるGitalyの設定。
- デフォルトラベル:すべての新しいプロジェクトに自動的に追加されるラベルを作成します。
- 公開プロジェクトまたは内部プロジェクトの使用を制限する: プロジェクトまたはスニペットを作成する際のユーザーの可視レベルを制限します。
- カスタムプロジェクトテンプレート:新規プロジェクト作成時にカスタムテンプレートとして使用するプロジェクトセットを設定します。
パッケージレジストリ管理
- コンテナレジストリ:GitLabでコンテナレジストリを設定します。
- パッケージレジストリ:GitLabがNPMレジストリおよびMavenリポジトリとして機能するようにします。
- Dependency Proxy: よく使われるアップストリームイメージ/パッケージのローカルプロキシである Dependency Proxy を設定します。
リポジトリ設定
- リポジトリのチェック:定期的なgitリポジトリのチェック。
- リポジトリ保存パス:リポジトリの保存に使用するパスを管理します。
- リポジトリ保存タイプ: さまざまなリポジトリ保存タイプに関する情報です。
- リポジトリ・ストレージ Rake タスク:既存のプロジェクトとそれに関連する添付ファイルをレガシー・ストレージからハッシュド・ストレージにリストアップし、移行するための Rake タスクのコレクションです。
- リポジトリサイズの制限: リポジトリサイズのハードリミットを設定します。
- 静的オブジェクトの外部ストレージ: リポジトリ内の静的オブジェクトの外部ストレージを設定します。
継続的インテグレーションの設定
- GitLab CI/CDの有効化/無効化:インスタンスに対してGitLab CI/CDを有効化または無効化します。
- GitLabCI/CD管理者設定:サイト全体でAuto DevOpsを有効または無効にし、アーティファクトの最大サイズと有効期限を定義します。
- 外部パイプライン検証: 外部パイプライン検証の有効化、無効化、設定を行います。
- ジョブのアーティファクト:ジョブのアーティファクト(ジョブが正常に完了したときに出力されるファイルとディレクトリのセット)の有効化、無効化、および構成。
- ジョブログ:ジョブログに関する情報。
- ランナーの登録:ランナーの登録と設定方法について説明します。
- 共有ランナーのパイプラインクォータ:共有ランナーのパイプラインの使用分を制限します。
- Auto DevOpsの有効化/無効化:インスタンスでAuto DevOpsを有効化または無効化します。
スニペット設定
- スニペットコンテンツのサイズ上限設定:スニペットコンテンツのサイズ上限を設定します。
git 設定オプション
- サーバーフック: webhookだけでは不十分な場合のためのサーバーフック(ファイルシステム上)。
- Git LFSの設定:GitLabのLFSの設定方法を学びます。
- ハウスキーピング: Git リポジトリを整理整頓し、高速に保ちます。
- Git プロトコル v2 の設定: Git プロトコル バージョン 2 のサポート。
git-annex
で大容量ファイルを管理 (非推奨)
GitLabのモニタリング
-
GitLabのモニタリング:
- 稼働時間の監視:ヘルスチェックエンドポイントを使用してサーバーの状態を確認します。
- IPホワイトリスト:プローブされたときにヘルスチェック情報を提供するエンドポイントを監視します。
- GitHubインポートの監視:GitLabのGitHubインポーターは、インポーターの健全性と進捗を監視するためにPrometheusメトリクスを表示します。
パフォーマンス・モニタリング
-
GitLabパフォーマンスモニタリング:
- Enable Performance Monitoring: GitLabパフォーマンスモニタリングを有効にします。
- Prometheusを使ったGitLabパフォーマンスモニタリング:パフォーマンスメトリクスの測定のためにGitLabとPrometheusを設定します。
- GrafanaによるGitLabパフォーマンスモニタリング:GitLabを設定し、時系列メトリクスをグラフやダッシュボードで可視化します。
- リクエストのプロファイリング:遅いリクエストの詳細なプロファイリングを取得します。
- パフォーマンスバー:現在のページのパフォーマンス情報を取得します。
分析
- Pseudonymizer: GitLabのデータベースからセキュアな方法でCSVファイルにデータをエクスポートします。
トラブルシューティング
- デバッグのヒント: 問題が発生したときのデバッグのヒント
- ログシステム:ログを探す場所。
- Sidekiqトラブルシューティング:Sidekiqがハングし、ジョブを処理できない場合のデバッグ。
- Elasticsearchのトラブルシューティング
- Rails コンソールから GitLab を操作する方法
- GitLabアプリケーションの制限
サポートチームのドキュメント
GitLabサポートチームは、GitLabインスタンスのトラブルシューティングに関する多くの情報を集めています。 これらのドキュメントは通常、サポートチーム自身が使用するか、サポートチームのメンバーから直接指導を受けた顧客が使用します。 GitLab管理者はトラブルシューティングに役立つ情報を得られるかもしれませんが、GitLabインスタンスでトラブルが発生した場合は、これらのドキュメントを参照する前にサポートオプションを確認する必要があります。
- 便利な診断ツール
- 便利なLinuxコマンド
- Kubernetesのトラブルシューティング
- PostgreSQLのトラブルシューティング
- テスト環境ガイド(サポートエンジニア向け)
- GitLab Rails コンソールコマンド(サポートエンジニア向け)
- SSLのトラブルシューティング
- 役立つリンク
- GitLab.com固有のリソース: