Azureの小ネタ (改)

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

ARMモードでのPoint to Site VPN接続ではまった

少しばかりハマったので備忘メモなのですが、これは2016/02/19 時点での情報です。数週間前の情報が既に古くなってしまうAzureの宿命でしょう。

Azure ARM PowerShellのバージョンは、1.0.4 です(Get-Moduleによる)

前提として、

  • 現在のNewポータルでは、P2Sを構成できないので、PowerShellでの操作が必要
  • そのためには証明書を作成しUploadする必要がある。
  • 既存のVPNゲートウェイは作成済み

ですぐにポータルで操作可能になるようなキがします。

チュートリアル的には以下のドキュメントです(分かり難いのですが) azure.microsoft.com

そして、はまりどころな話としては、おおよそ以下と同じです。既に一部コマンドで引数が古くなってたりしますが。

ARM環境で P2S VPN を構築する – MSKK Cloud OS Tech Blog

結局は、makecertで作成した証明書をBASE64形式でエクスポートしておく必要がありますというのと

Add-AzureRmVpnClientRootCertificate

で例示されているサンプル

$Text = Get-Content -Path "C:\Azure\Certificates\ExportedCertficate.cer"
$CertificateText = for ($i=1; $i -lt $Text.Length -1 ; $i++){$Text[$i]}

では改行が入ってしまって、うまく動きませんという話です。

いちいち、BASE64形式で再エクスポートするのは面倒なので、

[Convert]::ToBase64String([System.IO.File]::ReadAllBytes($cerfilename))

とかで直接BASE64化しても問題ないと思います。

$base64 = [Convert]::ToBase64String([System.IO.File]::ReadAllBytes($cerfilename))

Add-AzureRmVpnClientRootCertificate `
  -ResourceGroupName some-resource-group `
  -VirtualNetworkGatewayName some-gw-name `
  -VpnClientRootCertificateName "RootCertificate" `
  -PublicCertData $base64

削除は、

$cer = Get-AzureRmVpnClientRootCertificate `
  -ResourceGroupName some-resource-group `
  -VirtualNetworkGatewayName some-gw-name `
  -VpnClientRootCertificateName "RootCertificate"

Remove-AzureRmVpnClientRootCertificate `
  -ResourceGroupName some-resource-group `
  -VirtualNetworkGatewayName some-gw-name `
  -VpnClientRootCertificateName "RootCertificate" -PublicCertData $cert.PublicCertData 

以上

Azure ADのアプリ情報でログイン(サービスプリンシパル認証)

自分向け備忘録です。Azure ADで登録したアプリの認証情報からAzure CLIにログインする方法です、サービスプリンシパル認証とか言うらしいですね。

azure.microsoft.com

必要な情報は、

  • テナントID
  • アプリケーションID=クライアントID
  • アプリケーションキー=パスワード
azure login  --service-principal --username XXXXXXX 
                                 --password YYYYYYY
                                 --tenant   ZZZZZZZ

でログイン可能です。サブスクリプションIDは不要です。 ログイン後

azure account list
azure account set XXXXXX

で既定のアカウントを確認後使用できます。

書評 プログラマのためのDocker教科書

WINGプロジェクトの書評レビューで献本いただいたので、その書評でございます。いちおうソフトウェアエンジニアだと思ってますのあまりインフラ的なことは分かっていません、という立ち位置で。

プログラマのためのDocker教科書 インフラの基礎知識&コードによる環境構築の自動化

プログラマのためのDocker教科書 インフラの基礎知識&コードによる環境構築の自動化

ここ昨今、Dockerがブームとなっています。アプリケーションの仮想化程度のことは知っていましたが、実際に手を動かそうとすると中々重い腰が上がらないわけです。

また、Web上には玉石混交のコンテンツもありますし、やる気をだせばそれらで、いくらでも同様な情報は探しだせなくはないと思いますが、それはそれで疲れてしまいます。書籍としてまとまっているだけで、価値があるかと思います。

最初は、一般的なインフラやネットワーク、ハードウェアの基礎知識です。「プログラマのための」と銘打っているだけ合って、基本からの解説がありがたいです。とかく、アプリからみて下回りの話などは、一般的なプログラマからするとあまり知らない部分かもしれませんし、知っている方でも復習としてキチン読めるようになってます。

なぜ仮想化なのか?みたいな話もあり、全体的な業界のバックグラウンドや課題が認識できると思います。

それ以降、いよいよのDockerの話となっていきますが、やっぱりDockerといえばインフラ的な話は避けて通れません。プログラマとしては普段意識しないようなことも、逐一丁寧に解説されており心配無用でしょう。そして本題であるDockerを理解するのにあたって必要な操作や概念などが、みっちり解説されています。

開発環境としてWindowsの話も掲載されており、Windowsでちょっと試してみたいという方にも対応していますが、やはりLinux向けのツールですから、Linux上で動かした方が色々簡単だと思います。いまは、Dockerに対応したクラウドも多々あって、それらは、最後に解説されています。

これを機会にクラウドでDockerするのがよいと思います。

最後に惜しむらくは、P10ページのAzureロゴが、「Windows Azure」となっているくらいでしょうか。AzureでDockerしてみるのは冬休みの宿題とさせていただきます。

以上、献本ありがとうございました。