読者です 読者をやめる 読者になる 読者になる

Azureの小ネタ (改)

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

Azure クイックスタートテンプレートを使う

Azureの管理方法がサービス管理API(ASM)からリソース管理API(ARM)に移り変わっていく感じですが、いかがおすごしでしょうか。取っつきにくい(と自分では感じている)ARMですが、クイックスタートテンプレートから試すことができるようになっています。

azure.microsoft.com

以前からGitHubにもありましたが、同じものでしょうか。

github.com

ARMでは、JSONのテンプレートをベースにして簡単にデプロイできますが、上記はそのテンプレート集です。今回はここから仮想マシンを作成してみたいと思います。

テンプレートの検索

多数のテンプレートが用意されていますので、適当に検索して絞り込んでみます。

f:id:StateMachine:20150703103835p:plain

ここでは、「Apache Webserver on Ubuntu VM」をデプロイしてみます。クリックすると、テンプレートの説明画面が表示されます。

パラメーターが引数として必要な情報ですが、まずは上のAzureへのデプロイボタンをクリックしてみます。

f:id:StateMachine:20150703104004p:plain

VM作成

認証後、Previewポータルのテンプレート編集画面に遷移します。

f:id:StateMachine:20150703105646p:plain

とりあえず保存したのちに、左のパラメーター編集から、各パラメーターを編集していきます。入力が必要なものや、選択しなければならないものはJSONテンプレート内に定義されています。実際設定した場合は、こんな感じになります。

f:id:StateMachine:20150703105914p:plain

次にリソースグループを選択するか、新規作成を選びます。最後に、法律条件のところを開いて「購入」を押せばOKです(リーソースを作成する=お金がかかる=購入なんですかね?はたまた、他のMarketplaceで何かを買う場合があるから?)

そして、「作成」ボタンを押せば完了です。デフォルトですと、スタート画面にピン止めされるので、作成が完了するまでしばらく待ちます。

f:id:StateMachine:20150703110350p:plain

VMの確認

このテンプレートで作成される仮想マシン、ストレージなど、全てのリソースはV2と呼ばれるもので、従来のものとは別の物です。したがってクラシックポータルからは参照できません。このテンプレートで作成されるリソースは以下の通りです。

  • 仮想マシン
  • NIC
  • パブリックIP
  • 仮想ネットワーク
  • ストレージ

f:id:StateMachine:20150703120655p:plain

VM V2 ですと、DNS名が従来と変わってます。DNS名はパブリックIPに紐づいていて、VM V2ではこれが必須みたいです。

<Domain>.<Location>.cloudapp.azure.com

URLは以下のように、パブリックIPのプロパティをたどって行けば表示されます。

f:id:StateMachine:20150703121444p:plain

また、このテンプレートで作成するとロードバランサー的なものがありません。仮想マシンでポートを開くとそのままダイレクトにインターネットに接続されるようです。ちなみに、このテンプレートでは、

  • SSH : 22
  • Apache2 : 80

が開いています。Pingも通ります(おそろしあ)

f:id:StateMachine:20150703122311p:plain

VMの削除

リソースグループを選択して、ざっくり削除してしまえば、このリソースグループに含まれるリソース(VMとかストレージアカウントとか)はざっくり消えてしまいます。

テンプレートを自前にカスタマイズすれば、ほぼ数クリックで仮想マシンが作成できそうなんですが、そこまでまだ理解できていません。

以上、もっと詳しく知りたい方は、 Azure Virtual Machines v2 | ブチザッキ を参照してくださいませませ。

Set-AzureReservedIPAssociation を使うと1つもエンドポイントが無くてもリザーブドIPを割り当てることができる

しょうも無い小ネタです。

ちょっと前にBLOGに書いた記事で、既存のVMにもリザーブドIPアドレスが割り当てられるようになったと書きました。

statemachine.hatenablog.com

それ以前は、New-AzureVM時にしか指定できなかったのですが、その時にたまたま以下のようなエラーがでて、1つもエンドポイントなかったら、リザーブドIPアドレス割り当てる必要ないよねと納得していたんですが。

New-AzureVM : BadRequest: Deployment hogehogeservice uses 
ReservedIP testip but does not contain any endpoints. 
Deployment must contain at least one endpoint in order to
 use a ReservedIP.

Set-AzureReservedIPAssociation を使うと1つもエンドポイントが無くてもリザーブドIPを割り当てることができるってのを最近発見したという小ネタでした。

以上

Azure 仮想マシン(Linux)の診断機能を有効にする

今回は、Linux が実行されている仮想マシンで診断機能を有効にする方法です。OSがWindowsの場合は以前から診断機能を有効にできましたが、いつの間にLinux仮想マシンに対しても有効にできるようになっていました。

拡張機能の存在自身は、以下のGitHubで公開されており知っていたのですが、そこには肝心なインストール方法がかかれていません。

通常、仮想マシンの拡張機能はPowerShell から入れられますし、 Get-AzureVMAvailableExtension を使えば一覧に表示されるのですが、これを試した時点では、この一覧にはありませんでした。

github.com

インストール方法

前述したとおり、現時点ではPowerShellからインストールする方法は提供されてないため、新ポータルから行います。 仮想マシン作成時、作成後ともに診断機能を有効にできます。以下、画像ですが、Windowsの時ほど細かく設定できるわけではなく、ホントにON/OFFくらいです。

f:id:StateMachine:20150520151613p:plain

診断ログなど

診断ログなどはWindows版と同じくAzure ストレージに出力されます。ドキュメントがまったくないので、どのようなログが取れるかも不明です。ただしテーブルを見ると、

  • CPU
  • Disk
  • Memory

などの各データが転送されている感じです。また、Syslogもテーブルに転送されてます。必要なものはSyslogに出せ的な感じなのでしょうか。

ただ、Windowsでは特定のフォルダに格納されたログをBLOBに転送する「カスタムログ」機能がありましたが、Linux版に同様な機能があるのか分かりません。あったほうが便利だと思うのですが。

あと、以下にパフォーマンスカウンタ的なメトリクス情報が出ています。PT1Hが1時間間隔、PT1Mが、1分間隔だと思います。

  • WADMetricPT1HP10DV2S20150511
  • WADMetricPT1MP10DV2S20150511

あとスキーマは、SchemaTableに出てますけど、ドキュメントとして期待した内容ではないです。

f:id:StateMachine:20150520172907p:plain

以下、テーブルの内容などを。

CPUテーブル f:id:StateMachine:20150520173935p:plain

Diskテーブル f:id:StateMachine:20150520174043p:plain

Memoryテーブル f:id:StateMachine:20150520174207p:plain

Syslogテーブル f:id:StateMachine:20150520174247p:plain

メトリック的な何か f:id:StateMachine:20150520174933p:plain

仕組み

GitHubを見ると分かりますが、各ディストリビューション毎のDLLファイルや、シェルスクリプトにバイナリが埋め込まれていてRPM/DEBファイルに展開されるのが分かります。なので、GitHubで公開されていてもあまり意味が無い感じです。

インストールされるパッケージは、/var/log/dpkg.log (Ubuntuだったので)から拾ってみると以下の通りで、

2015-05-20 07:58:29 install libglibmm-2.4-1c2a:amd64 <none> 2.39.93-0ubuntu1
2015-05-20 07:58:29 status half-installed libglibmm-2.4-1c2a:amd64 2.39.93-0ubuntu1
2015-05-20 07:58:30 status installed libglibmm-2.4-1c2a:amd64 2.39.93-0ubuntu1
2015-05-20 07:58:33 status installed libc-bin:amd64 2.19-0ubuntu6.6
2015-05-20 07:58:44 startup archives install
2015-05-20 07:58:45 install omi:amd64 <none> 1.0.8.1
2015-05-20 07:58:45 status half-installed omi:amd64 1.0.8.1
2015-05-20 07:58:45 status half-installed omi:amd64 1.0.8.1
2015-05-20 07:58:47 status installed omi:amd64 1.0.8.1
2015-05-20 07:58:47 status installed ureadahead:amd64 0.100.0-16
2015-05-20 07:58:47 startup archives install
2015-05-20 07:58:48 install scx:amd64 <none> 1.6.0.166
2015-05-20 07:58:48 status half-installed scx:amd64 1.6.0.166
2015-05-20 07:58:49 status installed scx:amd64 1.6.0.166

コアとなるパッケージは、omiと、scx らしく/opt/microsoftにインストールされます。検索してみると、

上記のようなリンクが見つかって、MS謹製のUNIX/Linux向けエージェントみたいでした。SystemCenterとかのコンポーネントのようです(この辺りはよく知らないので)

拡張機能自身のログは以下にありました。

azureuser@linuxdiagtest:/var/log/azure/Microsoft.OSTCExtensions.LinuxDiagnostic/2.0.6$ ls -al
total 60
drwxr-xr-x 2 root root  4096 May 20 07:58 .
drwxr-xr-x 3 root root  4096 May 20 07:58 ..
-rw-r--r-- 1 root root  1658 May 20 07:58 CommandExecution.log
-rw-r--r-- 1 root root 47367 May 20 07:58 extension.log

拡張機能の本体は、以下です

root@linuxdiagtest:/var/lib/waagent/Microsoft.OSTCExtensions.LinuxDiagnostic-2.0.6# ls -al
total 32036
drwxr-xr-x 14 root root     4096 May 20 07:58 .
drwx------  5 root root     4096 May 20 07:58 ..
drwxr-xr-x  2 root root     4096 May 20 07:58 config
-rw-r--r--  1 root root      283 May 20 07:58 daemon.log
drwxr-xr-x  2 root root     4096 May 20 07:58 debian
-rwxr--r--  1 root root    24164 May 20 07:58 diagnostic.py
-rw-r--r--  1 root root      480 May 20 07:58 HandlerEnvironment.json
-rwxr--r--  1 root root      399 May 20 07:58 HandlerManifest.json
drwxr-xr-x  2 root root     4096 May 20 07:58 mdsd
-rwxr--r--  1 root root     1366 May 20 07:58 mdsdConfig.xml.tmplate
-rw-r--r--  1 root root        0 May 20 07:58 mdsd.log
-rw-r--r--  1 root root        1 May 20 07:58 mrseq
-rw-r--r--  1 root root        0 May 20 07:58 omfileconfig
-rwxr--r--  1 root root     7006 May 20 07:58 portal.xml.template
drwxr-xr-x  2 root root     4096 May 20 07:58 redhat
drwxr-xr-x  2 root root     4096 May 20 07:58 rsyslog5
drwxr-xr-x  2 root root     4096 May 20 07:58 rsyslog7
drwxr-xr-x  2 root root     4096 May 20 07:58 rsyslog8
-rwxr--r--  1 root root 16017057 May 20 07:58 scx-1.6.0-166.universald.1.x64.sh
-rwxr--r--  1 root root 16661427 May 20 07:58 scx-1.6.0-166.universalr.1.x64.sh
drwxr-xr-x  2 root root     4096 May 20 07:58 shared
drwxr-xr-x  2 root root     4096 May 20 07:58 status
drwxr-xr-x  2 root root     4096 May 20 07:58 suse
drwxr-xr-x  2 root root     4096 May 20 07:58 suse12
drwxr-xr-x  2 root root     4096 May 20 07:58 Utils
-rw-r--r--  1 root root    11564 May 20 07:58 xmlCfg.xml

xmlCfg.xml がコンフィグファイルのようですが、変更方法不明です。

あまり情報がありませんが以上です。何か分かったら別BLOGに書くつもりです。