Azureの小ネタ (改)

~Azureネタを中心に、色々とその他の技術的なことなどを~

Azureのエンドポイントを一括して定義

Azureのエンドポイントは、レンジを指定することができないので、ループでぐるぐる回す備忘録。ただ登録数にも上限があるので、あまりたくさんは開けなかったはず。

$startPort = 9000
$endPort   = 9100
$prefix    = "Port-"

$vm = Get-AzureVM -ServiceName cloudserviename -Name vmname

For($port = $startPort; $port -le $endPort; $port++) 
{
    $name = $prefix + $port
    $vm = $vm | Add-AzureEndpoint -Name $name -Protocol tcp -PublicPort $port -LocalPort $port
}

$vm | Update-AzureVM

Azure と 組織アカウント と 私

Azure(だけではありませんが)を利用するためのアカウントとして、

  • Microsoft アカウント
  • 組織アカウント

と2種類の物があります。

利用者にとっては、どーでもいい話だったりしますが、あるメールアドレスがMSアカウントであるかつ、組織アカウントな場合もあるわけです。

細かい違いなどは、マイクロソフト 双子のクラウド - 一般消費者向けと企業向けクラウド - ビジネスプロダクティビティ製品チーム - Site Home - TechNet Blogs を見ると書かれているらしいです。

Azure では

最近のAzureのコマンドラインツールでは、従来の証明書型認証に加えて、これらのアカウントで認証できるようになりました。

Azure PowerShell で以下を実行すると、認証のダイアログがでて、MSアカウントでも組織アカウントでも認証できます。たまにバグって組織アカウントしか機能しなくなってしまうことがあるみたいですが。

Add-AzureAccount

二つ目に、Credential を指定して認証することもできるのですが、この場合、組織アカウントでのみ機能します。

$userName = "ユーザ名"
$password = "パスワード"
$secPassword = ConvertTo-SecureString $password -AsPlainText -Force
$Credential = New-Object System.Management.Automation.PSCredential( $userName,$secPassword )
Add-AzureAccount -Credential $Credential

3つ目に、Azure Cross-Platform Command Line Tools (Azure CLI) でも最近、このような認証が出来るようになりました。

azure login 

上記実行すると、User/Passwordを聞かれますが、やはり組織アカウントのみです。

以下でも書かれています。

http://azure.microsoft.com/ja-jp/documentation/articles/xplat-cli/

ログインによる方法は組織のアカウントで機能します。

Workaround

で、通常はMSアカウトにAzureサブスクリプションが紐付いていることが多い(自分)ので、オレオレ組織アカウントを1つ作成しておくのが、面倒がなくて良いかと思います。 手順は、上記URLにも書いてありますが、

  1. Azureにログイン
  2. Azure Active Directoryを開き、既存のディレクトリに任意の組織アカウントユーザを追加
  3. 多分、hogefuga@xxxxx.onmicrosoft.com みたいな名前
  4. 管理にいって、↑のアカウントを共同管理者(Co-Admin)に設定。
  5. いちど、その組織アカウントでログインして、パスワードを再設定する

ことで、組織アカウントを求められる部分で、利用できるかと思います。

ほんと、ID管理はよく分かりませんね、それではまた。

Azure CLI で仮想ネットワーク作成

色々とバグがありますしおすし。

リージョン仮想ネットワークがサポートされてないです。locationを指定すると、勝手にAffinity Groupを作成しにいくのですが、前記事のLabelプロパティのバグを勝手に踏んでエラーになります。

既存の仮想ネットワークが定義されていないとエラーになります。

以下、既存の仮想ネットワークがない場合

$ azure network vnet create azurestudy-vnet --affinity-group "japan-west"
info:    Executing command network vnet create
info:    Using default address space start IP: 10.0.0.0
info:    Using default address space cidr: 8
info:    Using default subnet start IP: 10.0.0.0
info:    Using default subnet cidr: 11
+ Getting network configuration
error:   Network configuration does not exist.
info:    Error information has been recorded to azure.err
error:   network vnet create command failed

以下、既存の仮想ネットワークがある場合。

$ azure network vnet create azurestudy-vnet --affinity-group "japan-west"
info:    Executing command network vnet create
info:    Using default address space start IP: 10.0.0.0
info:    Using default address space cidr: 8
info:    Using default subnet start IP: 10.0.0.0
info:    Using default subnet cidr: 11
+ Getting network configuration
+ Getting or creating affinity group
+ Getting affinity groups
info:    Using affinity group japan-west
+ Updating Network Configuration
info:    network vnet create command OK