オンプレミスのAzure DevOps ServerはSQL Serverとペアで使います。大体直近2バージョンくらいまでサポートしているはずです。現在のAzure DevOps Server 2019 Update 1.1でSQL Server 2019をサポートしています。ただし、Windows版のみで、Linux版はサポートされません。
今までのオンプレミスのSQL Serverだけではなく、Azure DevOps Server 2019ではAzure SQL Databaseがサポートされるようになりました。
ちょっと制限がありますが、データベースがメンテナンスフリーになるのは非常に魅力的です。インストール時の注意点についてまとめます。
前提条件
- デプロイ時にManaged Service IDを有効にしなくてはならない
- Azure ADとフェデレーションしているドメイン環境にいなくてはならない
- SQL DatabaseはConfigurationとCollectionをそれぞれシングルインスタンスのみサポート。Managed Instanceやエラスティックプールは未サポート
- SQL DatabaseはStandard S3以上のSKUでなくてはならない
Standard S3以上ってのは検証のために用意するのはなかなかきついですね。ただし、SQL Server Reportingおよび、SQL Server Analysis Servicesはサポートされないので、Azure DevOps Server 2019内蔵のAnalyticsを使ってください。
ドメインに関してはドキュメントにはAzure Virtual Machines that are domain joined.
とあるのですが、どうもAADDSに参加しているだけではダメで、Azure ADとフェデレーションしていないといけないようです。
Managed IDはここですね。オンになってないといけません。
データベース作成
SQL Database作成はいいとして、二つのデータベースをStandard S3以上のSKUで作っておいてください。
- AzureDevOps_Configuration
- AzureDevOps_DefaultCollection
また、SQL DatabaseにはAzure Active Directory Authenticaitonを設定しておかないとセットアップできません。
データベース権限設定
ssmsでmaster
データベースを開いて、以下のクエリを実行します。
CREATE USER [VMName] FROM EXTERNAL PROVIDER ALTER ROLE [dbmanager] ADD MEMBER [VMName]
[VMName]
はAzureでのVM名(Start-azvm
の-name
引数に指定する値)で、DNS名ではありません。
次にCollectionおよび、Configuration Database(AzureDevOps_ConfigurationとAzureDevOps_DefaultCollection)すべてに対して以下のSQLを実行します。
CREATE USER [VMName] FROM EXTERNAL PROVIDER ALTER ROLE [db_owner] ADD MEMBER [VMName] ALTER USER [VMName] WITH DEFAULT_SCHEMA=dbo
VMName
はさっきと一緒です。
インストール
サーバー構成ウィザードのところで新しい配置 - Azureを選んでください。あとはコレクション名をDefaultCollection
のまま変更しなければいけるはずです…。
と紹介できればよかったのですが、フェデレーションしてる環境持ってないので、ここまでの紹介です(ごめん)。
これは新規インストールですが、アップグレードする際は「既存のデータベースがあります」を途中で選べばいいです。