Azure Automation を使うと、クラウドで実行されるスクリプトを作成し、オンデマンドで、またはスケジュールに基づいて、Azure リソースを管理できます。 この記事では、Azure HDInsight クラスターを作成および削除するための PowerShell Runbook を作成する方法について説明します。
このチュートリアルでは、以下の内容を学習します。
- HDInsight との対話に必要なモジュールをインストールする。
- クラスターの作成時に必要な資格情報を作成して保存する。
- HDInsight クラスターを作成するための新しい Automation Runbook を作成する。
Azure サブスクリプションがない場合は、開始する前に無料アカウントを作成してください。
前提条件
- 既存の Automation アカウント。
- 既存の Azure Storage アカウント。クラスター記憶域として使用される場合があります。
HDInsight モジュールをインストールする
Azure portal にサインインします。
Automation アカウントを選択します。
[共有リソース] で [モジュール ギャラリー] を選択します。
ボックスに「AzureRM.Profile」と入力し、Enter キーを選択して検索します。 使用可能な検索結果を選択します。
AzureRM.profile の画面で、[インポート] を選択します。 Azure モジュールを更新するチェックボックスをオンにして、[OK] を選択します。
モジュール ギャラリーに戻ります。 [共有リソース] で [モジュール ギャラリー] を選択します。
「HDInsight」と入力し、[AzureRM.HDInsight] を選択します。
[AzureRM.HDInsight] ペインで、[インポート]>[OK] を選択します。
資格情報を作成する
[共有リソース] で、[資格情報] を選択します。
[資格情報の追加] を選択します。
[新しい資格情報] ペインで必要な情報を入力します。 この資格情報は、クラスターのパスワードを格納するために使用されます。 これを使用して Ambari にサインインします。
プロパティ 値 名前 cluster-password
ユーザー名 admin
Password SECURE_PASSWORD
[パスワードの確認入力] SECURE_PASSWORD
[作成] を選択します
新しい認証情報 ssh-password について同じ手順を繰り返し、ユーザー名 sshuser と任意のパスワードを使用します。 [作成] を選択します この資格情報は、クラスターの Secure Shell プロトコル パスワードを格納するために使用されます。
クラスターを作成するための Runbook を作成する
[プロセス オートメーション] の [Runbook] を選択します。
[Runbook の作成] を選択します。
[Runbook の作成] ペインで、Runbook の名前を入力します (例: hdinsight-cluster-create)。 [Runbook の種類] ドロップダウン リストで [PowerShell] を選択します。
[作成] を選択します
[PowerShell Runbook の編集] 画面で次のコードを入力し、[発行] を選択します。
Param ( [Parameter (Mandatory= $true)] [String] $subscriptionID, [Parameter (Mandatory= $true)] [String] $resourceGroup, [Parameter (Mandatory= $true)] [String] $storageAccount, [Parameter (Mandatory= $true)] [String] $containerName, [Parameter (Mandatory= $true)] [String] $clusterName ) ### Authenticate to Azure $Conn = Get-AutomationConnection -Name 'AzureRunAsConnection' Add-AzureRMAccount -ServicePrincipal -Tenant $Conn.TenantID -ApplicationId $Conn.ApplicationID -CertificateThumbprint $Conn.CertificateThumbprint # Set cluster variables $storageAccountKey = (Get-AzureRmStorageAccountKey –Name $storageAccount –ResourceGroupName $resourceGroup)[0].value # Setting cluster credentials #Automation credential for Cluster Admin $clusterCreds = Get-AutomationPSCredential –Name 'cluster-password' #Automation credential for user to SSH into cluster $sshCreds = Get-AutomationPSCredential –Name 'ssh-password' $clusterType = "Hadoop" #Use any supported cluster type (Hadoop, HBase, etc.) $clusterOS = "Linux" $clusterWorkerNodes = 3 $clusterNodeSize = "Standard_D3_v2" $location = Get-AzureRmStorageAccount –StorageAccountName $storageAccount –ResourceGroupName $resourceGroup | %{$_.Location} ### Provision HDInsight cluster New-AzureRmHDInsightCluster –ClusterName $clusterName –ResourceGroupName $resourceGroup –Location $location –DefaultStorageAccountName "$storageAccount.blob.core.windows.net" –DefaultStorageAccountKey $storageAccountKey -DefaultStorageContainer $containerName –ClusterType $clusterType –OSType $clusterOS –Version “3.6” –HttpCredential $clusterCreds –SshCredential $sshCreds –ClusterSizeInNodes $clusterWorkerNodes –HeadNodeSize $clusterNodeSize –WorkerNodeSize $clusterNodeSize
クラスターを削除するための Runbook を作成する
[プロセス オートメーション] の [Runbook] を選択します。
[Runbook の作成] を選択します。
[Runbook の作成] ペインで、Runbook の名前を入力します (例: hdinsight-cluster-delete)。 [Runbook の種類] ドロップダウン リストで [PowerShell] を選択します。
[作成] を選択します
[PowerShell Runbook の編集] 画面で次のコードを入力し、[発行] を選択します。
Param ( [Parameter (Mandatory= $true)] [String] $clusterName ) ### Authenticate to Azure $Conn = Get-AutomationConnection -Name 'AzureRunAsConnection' Add-AzureRMAccount -ServicePrincipal -Tenant $Conn.TenantID -ApplicationId $Conn.ApplicationID -CertificateThumbprint $Conn.CertificateThumbprint Remove-AzureRmHDInsightCluster -ClusterName $clusterName
Runbook の実行
このセクションでは、Runbook の実行方法について説明します。
クラスターの作成
Automation アカウントの Runbook の一覧を表示します。 [プロセス オートメーション] の [Runbook] を選択します。
hdinsight-cluster-create またはクラスター作成 Runbook の作成時に使用した名前を選択します。
[開始] を選択すると、Runbook がただちに実行されます。 Runbook が定期的に実行されるようにスケジュールすることもできます。 詳細については、Automation での Runbook のスケジュールに関する記事を参照してください。
スクリプトに必要なパラメーターを入力して、[OK] を選択します。 このステップにより、CLUSTERNAME パラメーターで指定した名前で新しい HDInsight クラスターが作成されます。
クラスターの削除
作成した hdinsight-cluster-delete Runbook を選択してクラスターを削除します。 [開始] を選択し、CLUSTERNAME パラメーターを入力して、[OK] を選択します。
リソースをクリーンアップする
リソースが不要になったら、意図しない料金を避けるため、作成した Automation アカウントを削除します。 Azure portal に移動し、Automation アカウントを作成したリソース グループを選択し、Automation アカウントを選択して、[削除] を選択します。