[MEMO] Powershell から Linux OS の仮想マシンを作成する

執筆時点(2012年11月19日)では、仮想ネットワークにLinux OS の仮想マシンを構築する場合、コマンドラインツールを使用する必要があります。以下に手順を紹介します。  

事前に下記 URL からコマンドラインツールをダウンロードいただく必要があります。

https://www.windowsazure.com/en-us/manage/downloads/


1. 設定ファイルのダウンロードとインポート

1. Internet Explorer で https://windows.azure.com/download/publishprofile.aspx を開きます。

2. Windows Azure で利用している マイクロソフト アカウント を使ってサインインします。

3. 保存 をクリックして、設定ファイルをコンピューターに保存します。

image

4. スタートメニューから Windows Azure を開き、 Windows Azure PowerShell を右クリックして管理者として実行します。

5. PowerShellの実行ポリシーを RemoteSigned に変更します。確認を求められた場合は、 Y と入力し Enter を押します。

Set-ExecutionPolicy RemoteSigned

Note: Set-ExecutionPolicy によって、Windows PowerShell でのスクリプトの実行を許可します。Windows PowerShell には以下の4つのポリシーがあります。

o Restricted - スクリプトを実行させることは出来ません。Windows PowerShell はインタラクティブモードでのみ利用できます。

o AllSigned - 署名されているスクリプトのみ実行可能です。

o RemoteSigned - ダウンロードしたスクリプトは署名されたもののみ実行可能です。

o Unrestricted - 全てのスクリプトが実行可能です。

ポリシーに関する詳細については次の記事を参照してください。 https://technet.microsoft.com/en-us/library/ee176961.aspx (英語)

6. 以下のスクリプトによって設定ファイルをインポートし、アカウント情報を含む XML ファイルを生成します。ハンズオンの間、Windows Azure サブスクリプションを管理するために、この値を利用します。スクリプトを実行する際は、パスをダウンロードした設定ファイルのものに置き換えてください。

Import-AzurePublishSettingsFile '[ダウンロードしたXMLファイルのパス+ファイル名]'  

7. 以下のコマンドを実行し、このハンズオンで利用するサブスクリプション名、ストレージアカウント名をメモして置いてください。

Get-AzureSubscription | select SubscriptionName Get-AzureStorageAccount | select StorageAccountName

8. もしストレージアカウントを作成していない場合には、はじめに作成します。

New-AzureStorageAccount -StorageAccountName '[任意のアカウント名]' -Location 'East Asia'

9. ストレージアカウントをセットするために、以下のコマンドを実行します。

Set-AzureSubscription -SubscriptionName '[SUBSCRIPTION 名]' -CurrentStorageAccount '[STORAGE ACCOUNT 名]'


 2. 仮想マシンの作成

1. CentOS で仮想マシンを作成する場合は以下のコマンドを実行します。$image の値を変更すれば他の Linux OS をインストールすることができます。

$vmname = '[仮想マシン名]'

$image = 'OpenLogic__OpenLogic-CentOS-62-20120531-en-us-30GB.vhd'

$linuxUser = '[SSH接続時のユーザー名]'

$adminPassword = '[SSH 接続時のパスワード]'

$subnet = '[サブネット名]'

$cloudSvcName = '[DNS名, xxxx.clouapp.net の xxxx の箇所]'

$affinitygroup = '[アフィニティグループ名]'

$vnetname = '[仮想ネットワーク名]'

$vm = New-AzureVMConfig -Name $vmname -InstanceSize Small -ImageName $image | Add-AzureProvisioningConfig -Linux –LinuxUser $linuxUser -Password $adminPassword | Set-AzureSubnet -SubnetNames $subnet

New-AzureVM -ServiceName $cloudSvcName -AffinityGroup $affinitygroup -VNetName $vnetname -VMs $vm


 武田正樹