このディレクトリには Azure Container Instances (ACI) にデプロイするための ARM template ファイルが含まれています。
デプロイ作業を行うために、以下の準備をしてください。
-
Azure CLI のインストール:
Azure CLI インストールガイド を参考に、お使いの OS に Azure CLI をインストールします。 -
ke2-docker リポジトリのファイル一式を取得:
https://github.com/fixpoint/ke2-docker から、Code -> Download ZIP を選択し、 ke2-docker リポジトリのファイル一式を取得して、作業用 PC の適当なディレクトリに展開します。 -
Docker のインストール (オプショナル):
SSL (self-signed) 証明書の生成を行なうためには Docker が必要です。 Docker インストールガイド を参考に、お使いの OS に Docker をインストールします。
Azure 上に以下に示すの各種リソースを作成していきます。 (作成するリソースの名前は適宜変更してください)
- リソースグループ: KE20RG
- ストレージアカウント: ke20storage
- PostgreSQLサーバ: postgresql-for-ke
以降の作業のために、Azure に CLI からログインして、サブスクリプションを必要に応じて切り替えます。 (Azure CLI は PowerShell 上から実行することを想定しています)
以下のコマンドで Azure にログインします。
az login
ブラウザが起動するので、画面上からログインしてください。
複数のサブスクリプションが存在する場合、必要に応じて、使用するサブスクリプションを切り替えます。
そのために、アカウントのサブスクリプションの一覧を確認します。
az account list --output table
以下のコマンドで、必要に応じてサブスクリプションを切り替えることができます。
az account set --subscription "<サブスクリプション名>"
リソースグループ作成します。
az group create --name KE20RG --location japaneast
ストレージアカウントを作成します。
az storage account create --name ke20storage --resource-group KE20RG
Azure ポータルにログインして、Azure Database for PostgreSQL (フレキシブルサーバ)リソースを 以下のパラメータで作成します。
- リソースグループ: KE20RG
- サーバ名: postgresql-for-ke
- リージョン: Japan East
- PostgreSQLバージョン: 15
- ワークロードの種類: 必要に応じて適切なプランを選択してください
- 管理ユーザ: kompira
- パスワード: 適切なパスワードを指定してください
作成時に、「Azure 内の任意の Azure サービスにこのサーバーへのパブリック アクセスを許可する」を チェックしておきます。 他のパラメータはデフォルトでかまいません。
■ PGCRYPTO の有効化 作成した Azure Database for PostgreSQL (フレキシブルサーバ) リソースのサーバパラメタの設定で、 azure.extensions からPGCRYPTO の拡張を有効にしておきます。
■ kompira データベースの作成 PostgreSQL サーバ上に kompira という名称でデータベースを作成しておきます。
Azure Container Instances で必要となる共有ファイルボリュームを以下の名称で作成しておきます。
- kompira-var: /var/opt/kompira のマウント用
- kompira-nginx-conf: nginx の conf ファイル用
- rabbitmq-conf: RabbitMQ 設定ファイル用
- ssl-cert: SSL・CA 証明書用
※ ファイル共有名に使用できるのは、小文字、数字、ハイフンのみです。 ファイル共有名の先頭と末尾にはアルファベットまたは数字を使用する必要があります。 2 つの連続するハイフンを含めることはできません。
以下のコマンドを実行します。
az storage share-rm create \
--resource-group KE20RG \
--storage-account ke20storage \
--name kompira-var
az storage share-rm create \
--resource-group KE20RG \
--storage-account ke20storage \
--name kompira-nginx-conf
az storage share-rm create \
--resource-group KE20RG \
--storage-account ke20storage \
--name rabbitmq-conf
az storage share-rm create \
--resource-group KE20RG \
--storage-account ke20storage \
--name ssl-cert
SSL (self-signed) 証明書の生成を行なうために、以下のコマンドを実行します。
$ cd ke2/cloud/azureci
$ ../../../scripts/create-cert.sh
作成された SSL 証明書は ssl ディレクトリに保存されます。
※ 本番環境では、証明書認証局(CA)から証明書を取得してください。
作成した ssl-cert 共有ボリュームに以下のコマンドを使用して証明書ファイルをアップロードします。
az storage file upload --account-name ke20storage -s ssl-cert --source <サーバー証明書のローカルパス> -p server.crt
az storage file upload --account-name ke20storage -s ssl-cert --source <サーバーキーのローカルパス> -p server.key
az storage file upload --account-name ke20storage -s ssl-cert --source <CA 証明書のローカルパス> -p local-ca.crt
注意: <サーバー証明書のローカルパス>
, <サーバーキーのローカルパス>
, および <CA 証明書のローカルパス>
は、それぞれの証明書ファイルが保存されているローカルパスに置き換えてください。
Azure ポータルにログインして、ke20storage ストレージアカウントのファイル共有 kompira-nginx-conf に移動し、 画面上からアップロードすることも可能です。
Nginx の conf ファイルを kompira-nginx-conf ボリュームに default.conf という名称でアップロードします。
Azure CLI の以下のコマンドで ke2-docker に含まれる Nginx の conf ファイルをアップロードします。
cd .\ke2-docker
az storage file upload --account-name ke20storage -s kompira-nginx-conf --source ./configs/nginx-azure.conf -p default.conf
Azure ポータルにログインして、ke20storage ストレージアカウントのファイル共有 kompira-nginx-conf に移動し、 画面上からアップロードすることも可能です。
以下のコマンドを使用して、RabbitMQ の conf ファイルを rabbitmq-conf ボリュームにアップロードします。
cd .\ke2-docker
az storage file upload --account-name ke20storage -s rabbitmq-conf --source ./configs/rabbitmq-auth.conf -p 20-auth.conf
az storage file upload --account-name ke20storage -s rabbitmq-conf --source ./configs/rabbitmq-ssl.conf -p 30-ssl.conf
Azure ポータルにログインして、ke20storage ストレージアカウントのファイル共有 kompira-nginx-conf に移動し、 画面上からアップロードすることも可能です。
ke2-docker/ke2/cloud/azureci ディレクトリ上で Azure CLI を使用して ARM テンプレート aci-deployment.json をデプロイします。
aci-parameters.json ファイルを使用して必要な値を設定します。以下のフィールドを更新します。
<database-url>
:pgsql://<PostgreSQLユーザ名>:<PostgreSQLパスワード>@postgresql-for-ke.postgres.database.azure.com:5432/kompira
注意: <PostgreSQLユーザ名> および <PostgreSQLユーザのパスワード> は、実際のユーザー名とパスワードに置き換えてください。<storage-account-name>
:ke20storage
(作成するリソースの名前は適宜変更してください)<storage-account-key>
: 取得したストレージアカウントキー
ストレージアカウントキーは以下のコマンドを使用して取得できます。
az storage account keys list --resource-group KE20RG --account-name ke20storage --output table
ke2-docker/ke2/cloud/azureci ディレクトリ上で Azure CLI を使用して ARM テンプレートのデプロイ。
> cd ./ke2-docker/ke2/cloud/azureci
> az deployment group create \
--resource-group KE20RG \
--template-file aci-deployment.json \
--parameters @aci-parameters.json
Azure ポータルの KE20RG リソースグループの配下に、azureci コンテナインスタンスが作成されるので、 そこから、各コンテナの状態を確認することができます。 azureci コンテナインスタンスの Public IP アドレスにブラウザから HTTP・HTTPS アクセスすると、Kompira Enterprise のログイン画面が表示されるので、ログインすることができます。
デプロイ時にパラメータをオーバーライドすることも可能です。
az deployment group create \
--resource-group KE20RG \
--template-file aci-deployment.json \
--parameters @aci-parameters.json \
--parameters databaseUrl=<database-url> \
--parameters storageAccountName=<storage-account-name> \
--parameters storageAccountKey=<storage-account-key>
オーバーライドできるパラメータは以下のとおりです。
- imageTag: イメージのタグ(デフォルト: ke2-docker 更新時点で公開されていた最新の kompira コンテナイメージのタグ。例えば "2.0.2" など)
- timezone: タイムゾーン(デフォルト: "Asia/Tokyo")
- dnsNameLabel: DNS 名ラベル(デフォルト: 空)。
DNS 名ラベルを追加する場合、
<dnsNameLabel>
.japaneast.azurecontainer.io にブラウザからアクセスできます。 - databaseUrl: データベースの接続 URL 形式:pgsql://<ユーザ名>:<パスワード>@<アドレス>:<ポート番号>/<データベース名>
- storageAccountName: ストレージアカウント名
- storageAccountKey: ストレージアカウントキー
特定のコンテナのログを確認するには、以下のコマンドを実行します。
■ コンテナ名
- kompira
- kengine
- jobmngrd
- redis
- rabbitmq
- nginx
az container logs --resource-group KE20RG --name azureci --container-name <コンテナ名>
特定のコンテナにシェルアクセスするには、以下のコマンドを実行します。
az container exec --resource-group KE20RG --name azureci --container-name <コンテナ名> --exec-command /bin/sh
以下でコンテナを削除します。
az deployment group delete --resource-group KE20RG --name azureci
コンテナを削除ではなく停止・起動・再起動したい場合は、以下のコマンドも利用できます。
停止:
az container stop --resource-group KE20RG --name azureci
起動:
az container start --resource-group KE20RG --name azureci
再起動:
az container restart --resource-group KE20RG --name azureci
このデプロイメントでは、以下のスペックを使用します。 vCPU リソース:4 コア メモリ:16GB OS: Linux SKU: Standard
プランについては、このリンクをご参照ください。