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 に記録されます。Slack 通知は #dev-gitlab に表示されます。cron タスクは現在 ロールファイル で定義されています。
メンテナンスタスク
このサーバーの GitLab インスタンスを運用可能な状態に維持することは Distribution チームの責任です。
要件:
ノードへのアクセス権
タスクが
/etc/gitlab/gitlab.rbへの永続的な変更を必要とするかどうかによって、Chef リポジトリへのアクセス権。このリポジトリへのアクセス権がない場合は、インフラ Issue トラッカーに Issue を作成 してaccess requestラベルを付けてください。
パッケージの手動アップグレード/ダウングレード
最新デプロイに問題がある場合、修正が準備できるまでインストールを以前のナイトリーバージョンに戻し、デプロイをロックする必要があるかもしれません。これは dev.gitlab.org を利用する他のユーザーのために安定性を確保するために行います。
最初に、ダウングレードするインストールバージョンと関連 Issue へのリンクを詳述した Issue を team-tasks [issue-tracker] に作成します。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にアクセスして、正しいバージョンがデプロイされていることを確認します。自動アップグレードを防ぐためにパッケージをホールドします:
sudo apt-mark hold gitlab-ceホールドが設定されていることを確認します。
sudo apt-mark showhold#announcementsチャンネルに戻り、ダウングレードが完了したことをメッセージで伝えます:Downgrade completed. The package has also been put on hold to prevent automatic upgrades. <link to issue>
Issue が解決したら、パッケージのホールドを解除して最新バージョンにアップグレードしてください。
まず
#announcementsチャンネルでアナウンスしますI will be removing the package hold and manually upgrading package on dev.gitlab.org to the latest nightly. <link to issue>次に、パッケージのホールドを解除します:
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 ロール で導入する必要があります。
このリポジトリへのアクセス権がなく、ホットパッチや設定テストを行う必要がある場合は、以下の手順を実行できます:
このノードで chef-client を停止します:
sudo service chef-client stopインスタンスを再び動作させるために必要な変更を行います。gitlab.rb ファイルへの変更が必要な場合は、手動で変更して reconfigure を実行します。
gitlab.rbの設定変更を Chef サーバーにコミットするために、Production チームに連絡してサポートを求めます。これが適用されたら、ノードで chef-client を起動します:
sudo service chef-client start行ったすべての変更が Issue に記録されていることを確認してください!パッケージに修正が適用されたら、このノードへの変更を元に戻すことはあなたの責任です!
