Azure Database for MariaDBを使ってCactiを構築してみた

 

今回は、Azure環境上に、Cactiをセットアップしてみました。Cent OS 7.7のAzure VMとAzure Database for MariaDB(10.3)を組み合わせて構築してみました。

今回構築したシステム環境は下記の通りになります。

    • CactiサーバはAzure VMを利用 (Market Placeからデプロイしたものを利用)
    • CactiサーバのOSはCentOS 7.7を利用
    • DBはAzure Database for MariaDB を利用
    • パッケージはRPMを使ってセットアップする

実際にやってみるとわかるのですが、Cactiセットアップ時の事前チェック(MySQLのパフォーマンス部分)で引っ掛かります。今回は勉強の為そのまま作成しています。実環境で使用するには注意して下さい。

なお構築にあたっては下記サイトを参考に進めております。

https://qiita.com/bashaway/items/47d8eb868f31ab3c20e1

1.作業にあたっての事前準備

今回は、以下の事前準備が完了している前提で作業を進めます。

    • Cactiサーバ用のAzure VM(CentOS 7.7)はすでにデプロイ済み。
    • Azure Database for MariaDBはすべてデプロイ済みである。
    • Azure Database for MariaDBのSSL強制は無効化しておく。
    • SElinuxやFirewalldは簡略化のため、停止している前提で作業を進めます。

※Azure Database for MariaDBへの接続は暗号化せずに実施しています。Cactiの設定ファイルのDB接続暗号化を設定してみたのですがDB接続でエラーとなりました。現時点では原因不明です。。。(何か情報があれば教えて頂きたい感じです。)

なお、Azure Database for MariaDBの構築は、以下の記事に纏めておりますので、こちらを参照願います。

Azure Database for MariaDBを作ってみた

Azure Database for MariaDBに接続してみた

.パッケージのインストール作業

まず、最初にパッケージのインストール作業を実施します。今回セットアップが必要なパッケージは下記の通りになります。(httpdが入ってない場合は併せてインストールしてください)

    • MariaDB関連のパッケージ (DB自体はAzure Database for MariaDBを利用しますので、Clientだけをインストールします。)
    • Cacti関連のパッケージ
    • その他のパッケージ

まず最初にMariaDBのパッケージをインストールします。

#MariaDBクライアントをインストールします。最初にリポジトリを登録しています。

[user@server ]#curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | bash
[user@server ]#vi /etc/yum.repos.d/MariaDB.repo 

#新規にファイルが作成されますので、以下の内容を貼り付けて保存します。

[mariadb]
name = MariaDB-10.3.14
baseurl=http://yum.mariadb.org/10.3.14/centos7-amd64
# alternative: baseurl=http://archive.mariadb.org/mariadb-10.3.14/yum/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

[user@server ]#yum -y install MariaDB-client mariadb-devel

次にCactiのパッケージをインストールします。

#cactiをインストールします。epelを利用しています。

[user@server ]#yum -y install epel-release
[user@server ]#yum -y install cacti  

最後にその他に必要となるパッケージをインストールします。

#cactiをセットアップする際に必要となるパッケージをインストールします。

[user@server ]#yum -y install php cacti-spine ipa-*-fonts  

これでパッケージのインストール作業は終了です。

.PHPの設定を行う

PHPの環境設定を行います。

#PHPの設定を行います

[user@server ]#cp -p /etc/php.ini /etc/php.ini.`date “+%Y%m%d”`
[user@server ]#vi /etc/php.ini

#以下の内容を変更しています。

max_execution_time = 60
memory_limit = 800M
date.timezone = ‘Asia/Tokyo’

4.apacheの設定を行う

Cactiを利用する為に、apacheの環境設定を行います。

#httpdの日本語設定を行います

[user@server ]#cp -p /etc/sysconfig/httpd /etc/sysconfig/httpd.`date “+%Y%m%d”`
[user@server ]#vi /etc/sysconfig/httpd

#以下の通り変更します。(オレンジ部分が修正部分になります。)

#LANG=C
HTTPD_LANG=ja_JP.UTF-8

#Cron関連の設定を行います

[user@server ]#vi /etc/cron.d/cacti

#以下の行のコメントアウトを削除しています。

#*/5 * * * * apache /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1
 
*/5 * * * * apache /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1

#confの設定を行います

[user@server ]#cp -p /etc/httpd/conf.d/cacti.conf /etc/httpd/conf.d/cacti.conf.`date “+%Y%m%d”`
[user@server ]#vi /etc/httpd/conf.d/cacti.conf

#17行目をコメントアウトし、オレンジの部分(18行目)を追加します。

14 <Directory /usr/share/cacti/>
15  <IfModule mod_authz_core.c>
16   # httpd 2.4
17   #Require host localhost
18   Require all granted
19  </IfModule>

 

5.Azure Database for MariaDBでCactiを利用する為の設定を行う

事前にCactiをセットアップしているVMからAzure Database for MariaDBへ接続可能なように設定を行っておきます。これは以前のMariaDB接続の記事を参考にして下さい。

Azure Database for MariaDBの画面で、サーバパラメータを選択し設定を行います。

下記画面が表示されます。

サーバパラメータ設定を下記の通り実施します。

    • collation_server:utf8mb4_unicode_ci
    • character_set_client:utf8mb4
    • max_connections:最大(100以上がCacti推奨)
    • max_heap_table_size:最大(30MB以上がCacti推奨)
    • join_buffer_size:最大(60MB以上がCacti推奨)
    • innodb_io_capacity:最大(5000以上がCacti推奨)
    • innodb_io_capacity_max(10000以上がCacti推奨)
    • innodb_read_io_threads:32
    • innodb_write_io_threads:16
    • log_bin_trust_function_creators:ON

上記記載の通り、Cactiの推奨設定にできない内容があります。設定できるものは最大とし、tmp_table_size、innodb_file_per_table、innodb_doublewrite、innodb_buffer_pool_instancesについては設定できない為そのまま進めます。

また、log_bin_trust_function_creators をONにする必要があります。これをONにしないとCactiセットアップ用のSQL実行時にエラーになります。

設定が終わったら保存します。

6.Azure Database for MariaDBにCactiを利用する為の設定を行う

Azure Database for MariaDBの設定が終わったら、次にDB自体にCactiを利用する為の設定を行います。

サーバ名、サーバ管理者名はAzure Database for MariaDBの概要で確認します。

確認した値で、DBサーバに接続し、データベースとDBユーザーを作成します。DBユーザーはcactiで作成しています。DBユーザーを@Localhostで作成すると外部からアクセスできないので、今回はcactiをインストールしたサーバが接続に行くIPを設定します。DBユーザーのパスワードは適時設定して下さい。

#DBログイン時にAzure Database for MariaDBサーバ管理者のパスワードが必要になりますので適時入力してください。

[user@server ]#mysql -h サーバ名 -u サーバ管理者名 -p –ssl

MySQL [(none)]>create database cacti ;

MySQL [(none)]> garnt all on cacti.* to cacti@アクセス元のIP identified by ‘パスワード’;

MySQL [(none)]> garnt select on mysql.time_zone_name to cacti@アクセス元のIP identified by ‘パスワード’;

MySQL [(none)]> quit

次に、cactiの初期設定を行うSQLを流します。(PATHはセットアップしたバージョンに合わせて適時修正して下さい)

#Cactiの初期設定用SQLを実行する。

[user@server ]#mysql -h サーバ名 -u cacti cacti -p –ssl </usr/share/doc/cacti-1.2.12/cacti.sql

7.CactiのConfを設定する

config.php、spine.confにDB接続のための設定します。

#設定ファイルのバックアップを取得してから設定します。

[user@server ]#cp -p /usr/share/cacti/include/config.php /usr/share/cacti/include/config.php.`date “+%Y%m%d”`
[user@server ]# vi /usr/share/cacti/include/config.php

#設定箇所は、下記の3か所です。

$database_hostname = サーバ名(XXX.mariadb.database.azure.com)
$database_username = ユーザ名(cacti@XXX)
$database_password = パスワード(DB上に作成したCactiユーザのパスワード)

#設定ファイルのバックアップを取得してから設定します。

[user@server ]#cp -p /etc/spine.conf /etc/spine.conf.`date “+%Y%m%d”`
[user@server ]# vi /etc/spine.conf

#設定箇所は、下記の3か所です。

DB_Host = サーバ名(XXX.mariadb.database.azure.com)
DB_User = ユーザ名(cacti@XXX)
DB_Pass = パスワード(DB上に作成したCactiユーザのパスワード)

8.cactiを起動する

Cacti(httpd)に関するサービスの起動設定を行います。

#cactiはhttpd上で動作する為、httpdサービスを起動設定をします。

[user@server ]# systemctl start httpd
[user@server ]# systemctl enable httpd

9.Cactiにアクセスして設定をする

Cactiにアクセスし利用開始設定を行います。初期設定では下記の通りになっています。

    • アクセス先URL : http://CactiサーバのIP/cacti/
    • ユーザー名、パスワード:admin

URLにアクセスすると下記画面が表示されます。ユーザー名、パスワードを入力しログインします。

確認し問題が無ければ、Accept GPLのチェックボックスにチェックを入れて開始をクリックします。

Cactiインストールの事前チェックが行われます。MySQL Settingの部分がNGになります。

これは、Azure Database for MariaDBで設定できない部分がある為です。今回は勉強の為に作成していますので、無視して次にをクリックします。

ここから先はそのまま次にをクリックして前に進めます。(実際の利用開始時に設定を見直します。)

Template Setupはすべてチェックを入れて次にをクリックします。

そのまま次にで進めていくと、確認画面が表示され、インストールが開始されます。

完了すると、下記画面が表示されます。これでCactiのセットアップは完了です。

※今回は勉強の為実施しております。実際の利用にあたってはパフォーマンス面や各種設定をご確認の上、利用可否を検討願います。



Azure Database for MariaDBのTime Zone設定をしてみた

 

Azure Database for MariaDBのTime Zone設定ですが、何もせずにAzure Portalを利用してサーバパラメータの設定を行うとエラーになります。

今回はAzure Database for MariaDBのTime Zone設定について、一連の作業実施内容のメモを記載します。

1 .Azure Database for MariaDBでTime Zoneを設定するとエラーが表示される

まず、いつも通りサーバパラメータを設定してみます。

設定のサーバパラメータを選択すると、下記のようにMariaDBのパラメータが表示されます。

下の方に行くと、TimeZoneの設定があり、デフォルトでは下記の通りsystemが表示されています。

これを下記の通り、Asia/Tokyoに設定し、保存してみます。

そうすると、以下のようなメッセージがAzure Portalに表示され保存ができません。

非常に誤解されそうなエラーメッセージが表示されます。

2 .Azure Database for MariaDBで正しくTime Zone設定をしてみる

調べてみた結果、下記サイトに記載がある通り、事前にストアド プロシージャを呼びだす必要がありました。

https://docs.microsoft.com/ja-jp/azure/mariadb/howto-server-parameters#working-with-the-time-zone-parameter

実際に実施してみます。今回はAzure Database for MariaDBに接続可能なCent OSの端末から実施しています。

#DBログイン時にAzure Database for MariaDBサーバ管理者のパスワードが必要になりますので適時入力してください。

[user@server ]#mysql -h サーバ名 -u サーバ管理者名 -p –ssl

#TimeZoneを引いてみます。初期設定のSYSTEMが戻ってきます。

MySQL [(none)]>select @@time_zone;
+————-+
| @@time_zone |
+————-+
| SYSTEM |
+————-+
1 row in set (0.003 sec)

#TimeZoneのストアドプロシージャを呼び出します

MySQL [(none)]>CALL mysql.az_load_timezone();

ストアドプロシージャを呼び出した後に、再起動するように記載がありましたので、再起動を実行します。

Auzre Portalの概要に戻ると、再起動が表示されますので、こちらをクリックします。しばらくすると再起動が完了します。

再起動後、再度以下のようにTimeZoneを設定し、保存をクリックします。

そうすると、今度はちゃんと保存されました。

DB上でTime Zoneを確認してみます。

#再度DBに接続し、SQLを実行します。

[user@server ]#mysql -h サーバ名 -u サーバ管理者名 -p –ssl

MySQL [(none)]> select @@time_zone;
+————-+
| @@time_zone |
+————-+
| Asia/Tokyo |
+————-+
1 row in set (0.003 sec)

Asia/Tokyoに設定されている事が確認できました。

Azure Database for MariaDBに接続してみた

 

Azure Database for MariaDBへの接続を試してみました。

Azure Database for MariaDBへの接続には、MySQL Workbenchを利用しています。

大きな作業手順としては、以下の通りになります。

1)Azure Database for MariaDBでクライアントから接続許可設定を行う。

2)MySQL Workbenchで、Azure Database for MariaDBへの接続用の設定を行う。

3)MySQL WorkbenchでSSL接続用の設定を行う。

Azure Database for MariaDBの作成はこちらの記事を参考頂ければと。

Azure Database for MariaDBを作ってみた

1 .Azure Database for MariaDBで接続用の設定を行う。

デプロイ直後は、ネットワークの接続が許可されていません。

最初に接続のセキュリティでクライアントIPの許可設定を行います。

1)Azure Database for MariaDBのメニューで接続のセキュリティを選択します。

2)クライアントIPの追加を選択します。選択すると現在アクセス中のグローバルIPからのアクセス許可が追加されますので保存します。(今回はテスト接続なので、アクセス中のIPのみ許可しています。)

これでアクセス許可の設定は完了です。

※接続元にIPは環境に合わせて設定下さい。

2 .MySQL WorkbenchでAzure Database for MariaDBへの接続設定をしてみる

マイクロソフト様のサイトに詳細な解説がありますので、こちらを参考に進めます。

https://docs.microsoft.com/ja-jp/azure/mariadb/connect-workbench

※今回はMySQL Workbenchはインストール済みである前提とします。

1)MySQL Workbenchを起動します。

2)MySQL Connectionsの横にある、+ボタンをクリックし新規コネクションを追加します。

3)選択すると下記画面が表示されますので、Connection Name、ホスト名、UserNameを入力します。

なお、ホスト名、UserNameについては、Azure Database for MariaDBのメニュープロパティにサーバ名、サーバ管理者ログイン名の記載がありますので、こちらを選択します。

入力が完了したら、OKで保存します。

※SSLの設定が終わってから接続確認しますので、今回はそのまま保存します。

3.MySQL WorkbenchでSSL接続設定をしてみた

こちらについても、マイクロソフト様のサイトに詳細な解説があります。こちらを参考に進めます。

https://docs.microsoft.com/ja-jp/azure/mysql/howto-configure-ssl

なお、前回作成時に、SSL強制を有効にしていますので、その手順は今回飛ばしてます。

1)マイクロソフト様のサイトから、SSL接続に必要な証明書をダウンロードします。

証明書のダウンロードは下記サイトから実施します。(保存時のファイル名はBaltimoreCyberTrustRoot.crt.pemとします。)

https://www.digicert.com/CACerts/BaltimoreCyberTrustRoot.crt.pem

2)先ほど作成したMySQL Workbenchのコネクションを選択し、右クリックをするとEdit Connectionという項目が表示されますので、こちらを選択しますj。

3)設定画面が表示されますので、SSLのタブを選択します。

4)下記画面が表示されますので、以下の通り選択し、OKを押します。

      • Use SSLはRequireを選択します。
      • SSL CA Fileで先ほどダウンロードしたファイル選択する。

4.MySQL Workbenchを使ってAzure Database for MariaDBへ接続してみた

最後に接続確認を行います。

1)MySQL Workbenchで先ほど作成したコネクション設定をダブルクリックします。

2)パスワード画面が表示されますので、入力しOKをクリックします。

3)無事接続が完了すると、下記画面が表示されます。

※途中でWarnning等が表示される場合がありますが、そのまま進めばOKなようです。

Azure Database for MariaDBを作ってみた

 

Azure Database for MariaDBのデプロイをAzure PortalとAzure Resource Manager(ARM)テンプレートの2つパターンで実施してみました。

ARMテンプレートでは、少し利用しやすいように直してみました。

    • デフォルト値の設定を追加しています。
    • Power Shellを使ってデプロイする場合に、ARMテンプレートのパラメータをCSVから読み込むようにしてみた。

ARMテンプレートを使ってデプロイするにあたっては、以下の3つのファイルを作成しています。

    • Azure Database for MariaDBを定義するARMテンプレート(JSONファイル)
    • Azure Database for MariaDBプランのパラメータを指定するCSV
    • ARMテンプレートをデプロイするPower Shell

作成したものは GitHub上にも公開しております。

https://github.com/Tama-negi/Li-akb-branch-office/tree/PowerShell_Azure/AzureDatabase_MariaDB_Tempalte_20200530

1 .Azure Portal上でAzure Database for MariaDBを新規作成する

Azure Portalを利用して、Azure Database for MariaDBを作成してみました。

手順はマイクロソフト様のサイトに記載されていますので、その通り実施してみました。

https://docs.microsoft.com/en-us/azure/mariadb/quickstart-create-mariadb-server-database-using-azure-portal

Azure Portalを利用して作成する場合、以下の内容を選択します。実際に利用するリソースに合わせて設定します。

    • リソースグループ
    • サーバ名
    • データソース(新規に作成する場合はなしを選択します。バックアップからリカバリする際にはバックアップを選択します。)
    • 場所(リージョン)
    • バージョン(MariaDBのバージョンを選択します。2020年5月現在では10.2か10.3になります。)
    • コンピューティングとストレージ(価格レベルです。MariaDBを利用する為のリソースになります。)
    • 管理者ユーザー名(MariaDBにアクセスする管理者ユーザーになります。)
    • パスワード(管理者ユーザーのパスワードになります。)
    • タグ

1)すべてのサービスでMariaと入力します。Azure Database for MariaDBが表示されますので選択します。

2)下記画面が表示されますので、+追加をクリックします。

3)基本設定の画面が表示されますので、適時入力します。

コンピューティングとリソースにあるサーバの構成をクリックします。なお、場所(リージョン)を変更すると、サーバの構成が初期値に戻るので要注意です。

5)価格レベルやvCore、ストレージ容量を選択します。

今回は下記記載の設定で作ってみました。(一番お安い構成にしています。)

    • 価格レベルはBasicを選択
    • vCore:1
    • ストレージ:5GB
    • 自動拡張:いいえ
    • バックアップ保持期間:7日間

一度作成しまうと、後からBasicから汎用目的への変更はできません。注意が必要となります。

6)OKを選択すると、基本のページに戻ります。

タグを設定しない場合はそのまま確認および作成を選択します。

7)確認画面が表示されますので、問題がなければそのまま作成します。

完了すると、Azure Database for MariaDBが作成されます。

 

2 .Azure Database for MariaDBのAzure Resource Manager(ARM)テンプレート

マイクロソフト様のサイトを参考にし、Azure Database for MariaDBのARMテンプレートを作成してみました。

https://docs.microsoft.com/en-us/azure/mariadb/quickstart-create-mariadb-server-database-arm-template?tabs=azure-portal

サンプルを使いやすくする為に、少しだけシンプルにしてみました。

    • デフォルト値を設定しています。今回はAzure Portalを利用して作成した場合の値をデフォルト値としています。
    • パラメータをAzure Portalを利用して作成した場合+SSLの有効化指定の設定のみに変更(サンプルからvirtualNetwork関連の情報を抜きました。)
    • コンピューティング世代(SkuFamily)が現時点ではGen5のみなので、variablesで固定値にしています。

Azure Database for MariaDBのARMテンプレートはこういう形になりました。

{

    “$schema”: “https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#”,
    “contentVersion”: “1.0.0.0”,
    “parameters”: {
        “serverName”: {
            “type”: “string”,
            “minLength”:3,
            “maxLength”:63
        },
        “administratorLogin”: {
            “type”: “string”,
            “minLength”:1,
            “maxLength”:16
        },
        “administratorLoginPassword”: {
            “type”: “securestring”
        },
        “location”: {
            “type”: “string”,
            “defaultValue”: “japaneast”
        },
        “skuCapacity”: {
            “type”: “int”,
            “defaultValue”: 1
        },
        “skuName”: {
            “type”: “string”,
            “defaultValue”: “B_Gen5_1”
        },
        “skuSizeMB”: {
            “type”: “int”,
            “defaultValue”: 5120
        },
        “skuTier”: {
            “type”: “string”,
            “defaultValue”: “Basic”,
            “allowedValues”: [
                “Basic”,
                “GeneralPurpose”,
                “MemoryOptimize”
            ]
        },
        “version”: {
            “type”: “string”,
            “defaultValue”: “10.3”,
            “allowedValues”: [
                “10.2”,
                “10.3”
            ]
        },
        “backupRetentionDays”: {
            “type”: “int”,
            “defaultValue”: 7
        },
        “geoRedundantBackup”: {
            “type”: “string”,
            “defaultValue”: “Disabled”,
           “allowedValues”: [
                “Disabled”,
                “Enabled”
            ]
        },
        “storageAutoGrow”: {
            “type”: “string”,
            “defaultValue”: “Disabled”,
           “allowedValues”: [
                “Disabled”,
                “Enabled”
            ]
        },
        “sslEnforcement”: {
            “type”: “string”,
            “defaultValue”: “Disabled”,
            “allowedValues”: [
                “Disabled”,
                “Enabled”
            ]
        },
        “infrastructureEncryption”: {
            “type”: “string”,
            “defaultValue”: “Disabled”,
            “allowedValues”: [
                “Disabled”,
                “Enabled”
            ]
        }
    },
    “variables”: {
        “skuFamily”:”Gen5″
    },    
    “resources”: [
        {
            “apiVersion”: “2018-06-01-preview”,
            “kind”: “”,
            “location”: “[parameters(‘location’)]”,
            “name”: “[parameters(‘serverName’)]”,
            “properties”: {
                “version”: “[parameters(‘version’)]”,
                “administratorLogin”: “[parameters(‘administratorLogin’)]”,
                “administratorLoginPassword”: “[parameters(‘administratorLoginPassword’)]”,
                “storageProfile”: {
                    “storageMB”: “[parameters(‘skuSizeMB’)]”,
                    “backupRetentionDays”: “[parameters(‘backupRetentionDays’)]”,
                    “geoRedundantBackup”: “[parameters(‘geoRedundantBackup’)]”,
                    “storageAutoGrow”: “[parameters(‘storageAutoGrow’)]”
                },
                “sslEnforcemen”: “[parameters(‘sslEnforcement’)]”,
                “infrastructureEncryption”: “[parameters(‘infrastructureEncryption’)]”
            },
            “sku”: {
                “name”: “[parameters(‘skuName’)]”,
                “tier”: “[parameters(‘skuTier’)]”,
                “capacity”: “[parameters(‘skuCapacity’)]”,
                “size”: “[parameters(‘skuSizeMB’)]”,
                “family”: “[variables(‘skuFamily’)]”
            },
            “tags”: {},
            “type”: “Microsoft.DBforMariaDB/servers”
        }
    ]
}

 

3.Azure Database for MariaDBのパラメータ設定CSV作成する

Azure Database for MariaDB を作成する為にCSVから読み込むパラメータは以下の通りになります。リソースグループ名はデプロイ先のリソースグループ名になります。

    • リソースグループ(ResourceGroupName)
    • DBサーバ名(serverName)(小文字のみです)
    • 管理者ユーザ名(AppServicePlanName)
    • 管理者ユーザーパスワード(administratorLoginPassword)
    • リージョン名(location)
    • SKU名(skuName)
    • ストレージサイズ(skuSizeMB)
    • 価格レベル(skuTier)
    • MariaDBのバージョン(version)
    • バックアップ保存日数(backupRetentionDays)
    • バックアップ冗長(geoRedundantBackup)
    • ストレージの自動拡張(storageAutoGrow)
    • SSKの強制(sslEnforcement)
    • DB暗号化(infrastructureEncryption)

CSVのサンプルは以下のようになりました。(CSVが長くなっためPart1、Part2、Part3の3行に分割しています。)

#Part1
ResourceGroupName,location,serverName,administratorLogin,administratorLoginPassword,skuName,
RG1,japaneast,mariadb-01,mariadatabaseadmin,mariadbadminpassword,B_Gen5_1,5120,
 
#Part2
skuSizeMB,skuTier,version,backupRetentionDays,geoRedundantBackup,
5120,Basic,10.3,7,Disabled,Disabled,Enabled,Disabled
 
#Part3

storageAutoGrow,sslEnforcement,infrastructureEncryption

Disabled,Enabled,Disabled

4.Azure Database for MariaDBをARMテンプレート+Power Shellでデプロイする

ARMテンプレートのパス、CSVのパスを指定してARMテンプレートをデプロイするPower Shellを実行します。MariaDBがデプロイされます。

Azure Database for MariaDBのARMテンプレートをデプロイするPower Shellはこんな感じになりました。

#Azure Database for MariaDB ARMTemplate Deploy

 
#基本設定
#serverName DBサーバ名
#administratorLogin 管理者ユーザー名
#administratorLoginPassword 管理者ユーザーパスワード
#location リージョン名
#skuName SKU名(skuTier略称(B,GP,MO)+Gen5+vCore数)
#skuSizeMB ストレージサイズ
#skuTier 価格レベル(Basic,GeneralPurpose,MemoryOptimize))
#version MariaDBのバージョン(10.2,10.3))
#backupRetentionDays バックアップ保存日数(最低7日)
#geoRedundantBackup バックアップでGeo冗長を利用するか
#storageAutoGrow ストレージの自動拡張
#sslEnforcement MariaDBへアクセスする際にSSLを強制するか
#infrastructureEncryption DB暗号化

$TemplateFilePath = “ARMテンプレートファイルのパス”
$ImportCSVPath = “CSVファイルのパス”

# Inclued Configure Entries
$csv = Import-Csv -path $ImportCSVPath 

# Template Deploy
foreach( $c in $csv ){

$secureadminpass = ConvertTo-SecureString $c.administratorLoginPassword -AsPlainText -Force

New-AzResourceGroupDeployment `
  -ResourceGroupName $c.ResourceGroupName `
  -TemplateFile $TemplateFilePath `
  -serverName $c.serverName `
  -administratorLogin $c.administratorLogin `
  -administratorLoginPassword $secureadminpass `
  -location $c.location `
  -skuName $c.skuName `
  -skuSizeMB $c.skuSizeMB `
  -skuTier $c.skuTier `
  -version $c.version `
  -backupRetentionDays $c.backupRetentionDays `
  -geoRedundantBackup $c.geoRedundantBackup `
  -storageAutoGrow $c.storageAutoGrow `
  -sslEnforcement $c.sslEnforcement `
  -infrastructureEncryption $c.infrastructureEncryption `
}

デプロイが成功すると、Power Shellの実行ログにProvisioningState : Succeededと表示され、実際にPortal上で確認するとPortalを利用した場合と同じ設定通り出来ている事が確認できます。

なお、接続方法については、以下の記事に記載しておりますので、こちらも参考ください。

Azure Database for MariaDBに接続してみた