[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. 保存 をクリックして、設定ファイルをコンピューターに保存します。
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
武田正樹