Published on

Sitecore on Azure Kubernetes Service - 展開前の設定

Authors

Sitecore を AKS を利用して展開するための設定手順について、今回は各種設定ファイルの中のデータを作成していきます。設定ファイルのデータは実際に展開する際のデータとして利用するものになります。

Kubernates シークレットの作成

Kubernates の各種設定をパラメーターとして持つことができるように、secrets というフォルダにテキストファイル、それに伴う設定を入れていく必要があります。この手順に関しては展開ガイドの 1.3.4 に設定に関して記載されていますが、詳細は 4.5 のリストを見るとわかります。XM1 の場合に設定が必要なファイルは以下通りです。

ファイル名概要デフォルトの値
sitecore-license.txtライセンスファイル
sitecore-adminpassword.txt管理者パスワード
sitecore-telerikencryptionkey.txtTelerik Web キー
sitecore-identitycertificate.txtIdentity Server 証明書
sitecore-identitycertificatepassword.txtIdentity Server 証明書パスワード
sitecore-identitysecret.txtシークレットキー
sitecore-solr-connection-string.txtSolr の接続文字列http://solr:8983/solr;solrCloud=true
sitecore-solr-core-prefix-name.txt共通の Prefixsitecore
sitecore-databaseusername.txt管理者名sa
sitecore-databaseservername.txtデータベース名mssql
sitecore-databasepassword.txtデータベースパスワード
sitecore-database-elastic-pool-name.txtデータベース Elastic Pool 名
sitecore-core-database-username.txtCore データベースユーザー名coreuser
sitecore-core-database-password.txtCore データベースパスワード
sitecore-master-database-username.txtMaster データベースユーザー名masteruser
sitecore-master-database-password.txtMaster データベースパスワード
sitecore-web-database-username.txtWeb データベースユーザー名webuser
sitecore-web-database-password.txtWeb データベースパスワード
sitecore-forms-database-username.txtForm データベースユーザー名formsuser
sitecore-forms-database-password.txtForm データベースパスワード
sitecore-media-request-protection-shared-secret.txtメディアリクエスト用シークレットCoreHQ(NjM(u6_5koVlacTf4ta8x1h6Sb+ZcUQrULUz-0Afpx0cx- NuMtIoQkpDFmX5

このうち、以下のファイルはパスワードやキーを指定する形で設定ができます。

  • sitecore-adminpassword.txt
  • sitecore-telerikencryptionkey.txt (64-128 の文字数)
  • sitecore-databasepassword.txt
  • sitecore-database-elastic-pool-name.txt
  • sitecore-core-database-password.txt
  • sitecore-master-database-password.txt
  • sitecore-web-database-password.txt
  • sitecore-forms-database-password.txt
  • sitecore-media-request-protection-shared-secret.txt (デフォルトの値がありますが、変更が推奨のため)

残りのファイルに関して、手順を紹介していきます。

sitecore-license.txt

Sitecore のライセンスに関する情報をテキストに設定する必要があります。ここでは SitecoreDockerTools のモジュールを利用して作成するのが簡単なため、まず C:\Projects\aksxm1\secrets のフォルダに .env ファイルを作成します。ファイルの中は 1 行だけ記載してください。

SITECORE_LICENSE=

続いて上記の Path に移動をして、以下のコマンドを実行します(ライセンスファイルに関してはパスを確認してください)。以下のコマンドは管理者権限でターミナルを開いて実行します。

cd C:\Projects\aksxm1\secrets
Install-Module SitecoreDockerTools
Set-DockerComposeEnvFileVariable "SITECORE_LICENSE" -Value (ConvertTo-CompressedBase64String -Path "C:\Projects\license\license.xml")
AKS

実行をすると以下のように .env の後ろにデータが出来ています。最初の SITECORE_LICENSE= を削除して、sitecore-license.txt のファイルにテキストデータをコピーして作業が完了となります。

Identity Server 関連ファイル

上記の手順と同じように、SitecoreDockerTools を利用してキーを生成していきます。まず、.env ファイルを以下のように書き換えてください。ライセンスの部分はすでに作業済なので削除して問題ありません。

SITECORE_IDSECRET=
SITECORE_ID_CERTIFICATE=
SITECORE_ID_CERTIFICATE_PASSWORD=

下記のキーを生成するためには、以下のコードを実行してください。

Import-Module SitecoreDockerTools
Set-DockerComposeEnvFileVariable "SITECORE_IDSECRET" -Value (Get-SitecoreRandomString 64 -DisallowSpecial)
$idCertPassword = Get-SitecoreRandomString 12 -DisallowSpecial
Set-DockerComposeEnvFileVariable "SITECORE_ID_CERTIFICATE" -Value (Get-SitecoreCertificateAsBase64String -DnsName "localhost" -Password (ConvertTo-SecureString -String $idCertPassword -Force -AsPlainText))
Set-DockerComposeEnvFileVariable "SITECORE_ID_CERTIFICATE_PASSWORD" -Value $idCertPassword

それぞれの値が .env ファイルに生成されています。生成された値を以下のファイルにコピーしてください。

ファイル名項目
sitecore-identitysecret.txtSITECORE_IDSECRET
sitecore-identitycertificate.txtSITECORE_ID_CERTIFICATE
sitecore-identitycertificatepassword.txtSITECORE_ID_CERTIFICATE_PASSWORD

行ごとコピーをして、項目名と = を削除する形で作業は完了です。作業が完了したところで .env ファイルは削除しても問題ありません。

ホスト名の変更

展開をするにあたって、Sitecore のそれぞれのインスタンスのホスト名を設定する必要があります。それぞれ、以下のファイルになります。

  • configmaps\cd-hostname
  • configmaps\cm-hostname
  • configmaps\id-hostname

なお、前回のブログ記事で証明書に関しての手順は記載しているため、この部分は省略します。

まとめ

これで AKS に Sitecore を展開するための準備が完了しました。次回は、非本番環境としての AKS の展開を実行します。