Azureの小ネタ (改)

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

Azure Cloud Shell

build 2017 も終わりAzureに関する様々な新しい機能が発表されました。自己学習を兼ねて、すこしづつ試した結果を備忘録として書いていきたいと思います。

Azure Cloud Shell(Preview)が使えるようになりました。Azureのポータルからボタンをポチっとするだけ、ブラウザ内でShellが起動し、Azureを色々操作できてしまう機能です。

いちおう確認画面がでます。

f:id:StateMachine:20170515123555p:plain

サブスクリプションに何もない状態で、最初にCloud Shellを起動しようとすると、リソースが作成できず失敗したので、そういう場合は、捨てのストレージアカウントでも作成しておくと良いと思います。

Azure Cloud Shell (Preview) overview | Microsoft Docs

f:id:StateMachine:20170515121435p:plain

  • Storageアカウントが必要で勝手に作られます。
  • Azure Files でホームディレクトリが保持される感じで、5GBまでになってます
  • OSは、Ubuntu 16.04 LTS のコンテナです。
  • ユーザ名はかってにMSアカウントのファーストネームを使われました
  • 自分の場合は、リソースグループが cloud-shell-storage-westus なので、West USに作られた模様です。インドとかの人もいるので、なんらかのルールで割り振られるのかもしれません。
  • PowerShell 版は、もうじきだそうです。

操作

あらかじめ az コマンドがインストールされており、ログインしたサブスクリプションが認証されているので、そのまま操作可能です。

az group create --name hoge --location japaneast
az vm create --resource-group hoge --name myVM --image UbuntuLTS --admin-username azureuser --authentication-type password --admin-password '...'

とでもやれば、さくっとLinux VMが起動するでしょう。

Linuxとしてつらつら

  • Emacs/Vim は入ってます。
  • apt はあるけど、sudo とかないのでパッケージ的ななにかはインストールできません。ただし、gccとかあるので、普通に configure && make すれば色々動くでしょう。

cpuinfoとか

~$ cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 63
model name      : Intel(R) Xeon(R) CPU E5-2673 v3 @ 2.40GHz
stepping        : 2
microcode       : 0xffffffff
cpu MHz         : 2394.439
cache size      : 30720 KB
physical id     : 0
siblings        : 1
core id         : 0
cpu cores       : 1
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx lm constant_tsc rep_good nopl eagerfpu p
ni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm fsgsbase bmi1 avx2 smep bmi2 erms xsaveopt
bugs            :
bogomips        : 4788.87
clflush size    : 64
cache_alignment : 64
address sizes   : 42 bits physical, 48 bits virtual
power management:

meminfoとか

~$ cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 63
model name      : Intel(R) Xeon(R) CPU E5-2673 v3 @ 2.40GHz
stepping        : 2
microcode       : 0xffffffff
cpu MHz         : 2394.439
cache size      : 30720 KB
physical id     : 0
siblings        : 1
core id         : 0
cpu cores       : 1
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx lm constant_tsc rep_good nopl eagerfpu p
ni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm fsgsbase bmi1 avx2 smep bmi2 erms xsaveopt
bugs            :
bogomips        : 4788.87
clflush size    : 64
cache_alignment : 64
address sizes   : 42 bits physical, 48 bits virtual
power management:
...

とりあえず、気になる人は要チェックです。

DocumentDB Emulator が動かない場合の対処

DocumentDB Emulatorが提供されていますが、手元の環境で動作しなかったので、その解決作などをメモッて起きます。

DocumentDB Emulatorは以下から入手可能です。

docs.microsoft.com

DBが作成できない

動作しない大抵の現象はDBが作成できないようです。Emulatorを起動すると、データエクスプローラが起動します。そこからDBを作成してみてウンともスンとも言わなかったら、この現象に遭遇している可能性が高いです。またサンプルを起動して動かすと、DB作成時に例外が発生するでしょう。

調査

有名どころのIssueとして、以下があります。結果、完全に解決しておらず、個別の環境問題だから、トレースファイル取得して送ってくれとのこと。

github.com

トレースファイル取得は、1番うえのURLにも書かれていますが、以下の手順を実行しつつ、DBを作成してみます(作成できませんが)

cd /d "%ProgramFiles%\DocumentDB Emulator"
DocumentDB.Emulator.exe /shutdown
DocumentDB.Emulator.exe /starttraces
DocumentDB.Emulator.exe
DocumentDB.Emulator.exe /stoptraces
DocumentDB.Emulator.exe /shutdown

トレース、DocumentDBを停止しますと、docdbemulator_000001.etl が作成されます。それを、メールに投げれば個別に調査してくれます(宛先はリンク先参照)

原因

自分の場合は、結果は一晩(時差)で返信がありました。LANアダプタに割り当てられている、IPアドレス以外をリッスンしているよ、とのことでした。そのIPアドレスは、特定のVPN接続時に利用するアドレスでしたので、そのアダプタを無効(Disable)にしてみたら、無事動作しました。

たぶん、そんなことだろうなとは思っていましたが、具体的な追求に時間を費やすのもあれなので、さくっとメール投げて解決できたので良かったと思います。

Emulatorのバグだとは思いますが、事例が蓄積され将来修正されると思いますが。 類似事例で参考になれば。

既存の仮想マシンをManaged Disksを使った仮想マシンに変換する

タイトル通りです。Unmanaged から Managed Disksへの変換は、ConvertTo-AzureRmVMManagedDisk コマンド1つでできます。 VMは停止しておく必要があります。

> ConvertTo-AzureRmVMManagedDisk -ResourceGroupName hoge-VMName fuga

Name      : 8af88137-cc93-487a-b326-9aad1444ba6a
Status    : Succeeded
StartTime : 2017/02/10 12:22:50
EndTime   : 2017/02/10 12:24:11
Error     : 

1分もかからず変換が終わりました。VMの情報を見てみるとManaged Disksに変換されています。Portalを見てもディスクが出来ていることを確認できるでしょう。(変換前にどうなっているか見ておくのを忘れたので比較できなかった)

> $vm = Get-AzureRmVM -ResourceGroupName hoge -Name fuga
> $vm.StorageProfile.OsDisk


OsType             : Windows
EncryptionSettings : 
Name               : pbivm_pbivm
Vhd                : 
Image              : 
Caching            : ReadWrite
CreateOption       : FromImage
DiskSizeGB         : 
ManagedDisk        : Microsoft.Azure.Management.Compute.Models.ManagedDiskParameters

失敗した人もいるみたいですから、本番への適用は慎重に。