Distribution チームのインフラとメンテナンス - dev.gitlab.org
共通リンク
dev.gitlab.org
これは GitLab CE を実行している内部 GitLab インスタンスです。このサーバー上の omnibus-gitlab パッケージは、稼働を維持するために必要な設定を加えた標準パッケージです。このノードでは通常の omnibus-gitlab コマンドを使用できます。
自動化されたタスク
ナイトリービルド: 毎日 UTC 1:30 に、dev.gitlab.org でナイトリービルドがトリガーされます。 cron トリガーの時刻は現在、 dev.gitlab.org のスケジュールパイプラインページで定義されています。
デプロイ: 毎日 UTC 7:20 に、ナイトリー CE パッケージが dev.gitlab.org へ自動的にデプロイされます。インストールプロセス中のエラーは Sentry に記録されます。gitlabcom や gitaly のようなプロジェクトで dev 環境フィルターを使用してください。 Slack 通知は #dev-gitlab に表示されます。cron タスクは現在、 role ファイルで定義されています。
メンテナンスタスク
このサーバー上の GitLab インスタンスが稼働していることを保証するのは、Distribution チームの 責任です。
要件:
ノードへのアクセス
/etc/gitlab/gitlab.rbへの恒久的な変更がタスクで必要かどうかに応じて、 Chef リポジトリへのアクセス。 このリポジトリへのアクセス権がない場合は、 Infrastructure の Issue トラッカーで Issue を作成し、access requestラベルを付けてください。
パッケージの手動アップグレード/ダウングレード
最新のデプロイに問題がある場合、インストールを以前のナイトリーバージョンに戻し、 修正の準備が整うまでデプロイをロックする必要があるかもしれません。これは、インスタンスを 利用する他のユーザーのために dev.gitlab.org の安定性を確保するために行います。
まず、team-tasks の [issue-tracker] に、インストール済みバージョンをダウングレードする旨と 関連 Issue へのリンクを記載した Issue を作成します。 その Issue を自分自身にアサインしてください。
次に、パッケージをダウングレードする前に
#announcementsslack チャンネルで アナウンスします:I will be manually downgrading package on dev.gitlab.org to <version> as latest nightly is not working as expected. <link to issue>アップグレード中にデータが変更されないように、sidekiq と unicorn を停止します。
sudo gitlab-ctl stop sidekiq sudo gitlab-ctl stop unicorn以前の正常に動作していたパッケージのバージョンを見つけ、そのバージョンに ダウングレードします:
sudo apt-get install gitlab-ce=<version to be installed>例えば、バージョンが
10.4.0+rnightly.75436.44501791-0の場合、次を 実行します:sudo apt-get install gitlab-ce=10.4.0+rnightly.75436.44501791-0これにより reconfigure が自動的に実行され、必要な変更が適用されます。
reconfigure が完了したら、すべてのサービスが起動して稼働していることを確認します。
sudo gitlab-ctl statushttps://dev.gitlab.org/helpにアクセスして、正しいバージョンがデプロイされている ことを確認します。自動アップグレードを防ぐためにパッケージの hold を作成します:
sudo apt-mark hold gitlab-ceそして hold が設定されていることを確認します。
sudo apt-mark showhold#announcementsチャンネルに戻り、ダウングレードが完了したことを メッセージで残します:Downgrade completed. The package has also been put on hold to prevent automatic upgrades. <link to issue>
問題が解決したら、パッケージの hold を解除し、最新バージョンへアップグレードします。
まず、
#announcementsチャンネルでアナウンスしますI will be removing the package hold and manually upgrading package on dev.gitlab.org to the latest nightly. <link to issue>次に、パッケージの hold を解除します:
sudo apt-mark unhold gitlab-ceアップグレードを続行します:
sudo apt-get update sudo apt-get install gitlab-ceアップグレードが完了したら、
https://dev.gitlab.org/helpにアクセスして 最新バージョンがインストールされていることを確認します。最後に、
#announcementsチャンネルにメモを残しますUpgrade completed. dev.gitlab.org now runs <version>.
GitLab 設定の変更
何らかの理由で /etc/gitlab/gitlab.rb に変更を適用する必要がある場合、その
変更は
dev-gitlab-org roleに導入する必要があります。
このリポジトリへのアクセス権がないが、ホットパッチや設定テストを行う必要がある場合は、 次の手順を実行できます:
このノード上で chef-client を停止します:
sudo service chef-client stopインスタンスを再び稼働させるために必要な変更を行います。それに gitlab.rb ファイルの 変更が必要な場合は、手動で変更し reconfigure を実行します。
gitlab.rb設定の変更を Chef サーバーにコミットするための支援を得るため、Production チームに連絡してください。これが適用された後、ノード上で chef-client を起動します:
sudo service chef-client start行った変更が必ず Issue に記録されていることを確認してください! パッケージに修正が 反映されたら、このノード上の変更を元に戻すのはあなたの責任です!
c955a93f)