I read "Buying Somw Gloves".

今月からはじめた英語学習の一環で、簡単な本を読みました。

ラダーシリーズ「手袋を買いに」

情景がイメージしやすくすらすら読めました。

中学二年生レベルに語彙で記述されているレベルでしたが幾つか読めない熟語がありました。

hold out ~を差し出す

このレベルならどんどん読めそうです。次はなにを読もう。。

How To Pass MS 70-532 to 534

Azureに関する知識を深めたいと思い、MCSD70-532~534を次の目標にしました。合格した人がどうやって勉強したのか情報を集めました。

  • 70-532の概要

https://www.microsoft.com/ja-jp/learning/exam-70-532.aspx

  • 70-534の教材紹介ドキュメント(MS Learning)

https://borntolearn.mslearn.net/b/weblog/archive/2015/05/18/mcsd-azure-solutions-architect-study-resources-you-need-to-know

  • MS MVP Chris Pietschmann氏による70-532合格体験記

http://pietschsoft.com/post/2015/06/06/How-I-passed-the-70-532-Developing-Microsoft-Azure-Solutions-certification-exam

  • 上記のChris Pietschmann氏 が70-532学習過程でまとめられた資料

http://buildazure.com/

  • Chris Pietschmann氏が作成したテスト

http://crpietschmann.github.io/Azure-70-532-Practice-Test/?

  • YouTube に紹介されていた動画

https://youtu.be/gTpX4tZkYkw

 

その他、順次学習を進めていきたいと思います。

Hints to Automate Everything with MS Azure

クラウドを使うとVMの自動化~DB作成、アプリケーションのデプロイ、認証、なんでもスクリプトにして自動化して、コードをアプリケーションと一緒に管理できるようにできるってことがデモを通してよくわかります。

ASMで少し古いですが、本質は変わらないってことが分かりました。

https://channel9.msdn.com/Events/TechEd/Australia/2013/AZR324/player

 

こちらと組み合わせてみるといいと思います。

https://mva.microsoft.com/ja/training-courses/microsoft-azure--8391?l=IHKGoje8_1904984382

knife で Azure に VMを作成する方法

実行環境:

Windows 7 (64bit)

以下を参照し、Chef SDKをインストールします。

※以下の記事の内容そのままではうまくいかないので、注意。

注意箇所は後で述べます。

https://azure.microsoft.com/ja-jp/documentation/articles/virtual-machines-automation-with-chef/

1.Chef ワークステーションの構成

"chef-starter\chef-repo.chef にある~"とありますが、"C:/chef/chef-starter/chef-repo/.chef"と読み替えてください。

2.Knife.rbの編集

knife[:azure_publish_settings_file]を含め、以下の4つの設定が必要です。

knife[:azure_publish_settings_file] = "#{current_dir}/xxxxx.publishsettings" knife[:azure_subscription_id] = "xxxxxxxx-xxxx-xxxx-xxxxx-xxxxxxxxxxxx" knife[:azure_mgmt_cert] = "#{current_dir}/management-certificate.pem" knife[:azure_api_host_name] = "management.core.windows.net"

※区切り文字は、'/'でOKです。

※azure_mgmt_certの指定には、https://github.com/chef/knife-azure/blob/master/README.md を参照し、base64+openssl(Windows環境で実践している人は、cygwinなどが便利)をしてください。

3.Chef開発キットのインストール

インストール後に環境変数Pathに以下を追加します。

chefdkのフォルダ名が異なりますので注意です。

私はbinフォルダが無かったので、作成しました。(このPathが役に立っているかは謎です)

C:\opscode\chefdk\bin; C:\opscode\chefdk\embedded\bin; C:\Users\ユーザ名\AppData\Local\chefdk\gem\ruby\2.1.0\bin;

4.knife-azureのインストール

 chef gem install knife-azure ––pre

ありますが、"--pre"は不要です。

5.knife azure image list

この後knife azure server createコマンドを実行する際に、VMイメージを指定しますが、このリストの中からイメージ名を取得しますので、コマンドのバッファを2000くらいにしておいてください。

6.テンプレートの作成

「C:\chef\cookbooks\webserver\templates\default\Default.htm.erb ファイルに移動します。シンプルな「Hello World」 HTML コードを追加して、」とありますが、本当にこのファイルにHello Worldと書き込むだけでいいです。

7.knife azure server createコマンドを実行

書かれている通り通りに実行すると躓きます。

--tcp-endpoints の指定の仕方がこれだと内部IPしか指定されていません。アクセスするには外側のポートも指定する必要があります。

--tcp-endpoints '80:80,3389:3389'と指定してください。

knife azure server create --helpからでも調べることが出来ます。

ヘルプは多用しましょう。

また、このままだとWindowsVMイメージの場合、リモートアクセスの為のボタンがAzure portal上で非活性のままです。

--bootstrap-protocol 'winrm' と指定してあげましょう。

Windows VM Imageの場合、winrmがデフォルトなので、このオプション自体を指定しなくてもOKです。

コマンドはこんな感じになります。

knife azure server create --azure-dns-name 'test01' --azure-vm-name 'testsv01' --azure-vm-size 'Small' --bootstrap-protocol 'winrm' --azure-source-image 'a699494373c04fc0bc8f2bb1389d6106__Windows-Server-2012-Datacenter-20151120-en.us-127GB.vhd' --azure-service-location 'Japan West' --winrm-user azureuser --winrm-password 'myPassword123' --tcp-endpoints '80:80,3389:3389' --r 'recipe[webserver]'

この辺のオプションはKnife.rbに指定しても良いと思います。

以上で、出来上がったcloudサービスのURLに接続すると、6で追加した"Hello World"を記載されたページが表示されます。

VM作成時にIISがプロビジョニングされてるんですね。すごいです。

これでSeleniumTomcatもプロビジョニングできるようにしたいですね。

ただこれ、VMがASMモードでできます。

ARMモードで作成したいな。

Azure クラウドサービス(クラシック)をローカルでエミュレートしようとした時に躓いたこと

Azureの使い方にも慣れてきてAzureを使って開発をしたいなと思い、Azureクラウドサービスにアプリケーションをデプロイする方法を試してみました。

参考 https://msdn.microsoft.com/ja-jp/library/azure/hh690944.aspx

その時、ちょっと躓いたことをメモします。

  • やったこと
    1. Azure クラウドサービスにデプロイする
    2. Azure Compute Emulatorを使ってローカルでアプリケーションを動かす
  • 躓いたこと

1.デプロイ先が、Azure Preview Portalで作成したクラウドサービスではなく、Azure Portalで作成したクラウドサービスだったこと。

Azure Toolkit for Eclipseでは、Azure Preview PortalクラウドサービスApp Serviceへのデプロイ方法は以下のサイトに掲載されていました。次に試してみようと思います。

参考 https://azure.microsoft.com/ja-jp/documentation/articles/web-sites-deploy/#

2.Azure Compute Emulatorを起動できない

3回躓きました。

1回目は、Azureデプロイプロジェクトのサーバ構成の設定で、Local server pathを参照ボタンから指定しても「そのアプリケーションサーバは認識できない的な」エラーメッセージが出てしまって、サーバ構成の設定ができなかったこと。結局、参照ボタンを使わずに直接パスをコピペしたらエラーメッセージが出ずにサーバ構成の設定が出来ました。

SnapCrab_WorkerRole1 のプロパティー_2015-12-20_15-31-48_No-00

2回目は、ビルドパスが長かったこと。Cドライブの直下にeclipseのディレクトリを作り、その中にAzureにデプロイするアプリのworkspaceを配置 しましたが、「256文字以内でパスを指定してください」的なメッセージが出た為、workspaceをCドライブ直下に変更して実行。

3.アプリケーションを起動できない

3回目は、Azure Compute Emulatorまでは起動できたものの、「java.exe has not started - waiting...」がWorkerRoleのログに出力されてアプリケーションが起動できなかったこと。このログでググって出た以下のサイトから、「パスが間違ってた」というコメントを見つけたので、Eclipseのビルドパスを見るとEclipseJVMを使うようになっていました。Azureデプロイプロジェクトのサーバ構成では、任意のフォルダにインストールしたJDKパスを指定していたので、サーバ構成で指定したパスのJDKEclipseのビルドパスに指定し直したところ動くようになりました。

SnapCrab_WorkerRole1 のプロパティー_2015-12-20_15-30-10_No-00

SnapCrab_MyHelloWorld のプロパティー_2015-12-20_16-18-22_No-00

とても簡単にWebにアプリケーションをデプロイできました。

内部的にはAzureデプロイプロジェクトにデプロイ先のOSバージョン、JDK、Webアプリケーションサーバ、その他諸処設定を持っており、その設定を基にデプロイをしているみたいです。VMを自分で構築して、Webアプリケーションサーバを構築して、…といった手続きを踏む必要がないので、とても簡単にサービスの開始ができる印象を受けました。

 

今後はPortalでリソースを構築するを利用することはないので、Azure Preview PortalのApp Serviceへのアプリケーションのデプロイにも挑戦してみたいと思います。

 

 

AzureのVMでDockerを体験する方法

AzureにLinuxVMを作成して、Dockerを試してみるときに役立つ記事を紹介します。

https://azure.microsoft.com/ja-jp/documentation/articles/virtual-machines-docker-with-portal/

「イメージ ギャラリーからの新しい VM の作成」をやると、以下からdockerがインストールされていることの確認をすることになります。

https://docs.docker.com/engine/installation/#installation

 

このサイトで、たまたま「Get Started」をクリックしたら、Dockerの利用方法を一通り分かるチュートリアルがあったので紹介します。

https://docs.docker.com/linux/started/

簡単な概要は以下の通りです。

試しに動かしてみる

  1. apt lineにdockerを追加する
  2. docker-engineをインストールする
  3. docker imageをdocker runで動かしてみる
  4. rootユーザグループのdockerを通常のユーザグループに追加する
    1. sudoなしでdockerコマンドを動かせるようにする

自分でビルドしてみる

  1. 任意のフォルダを作成する
  2. Dockerfileを書く
  3. docker buildでビルドする
  4. docker imagesで作成したイメージを確認する
  5. docker runでイメージを動かす
  6. docker tagでイメージにタグ付けする
  7. Docker Hubにアカウント登録する
  8. docker loginでDocker Hubにログインする
  9. docker pushで作成したイメージをpushする
  10. docker rmi -f 名前空間/ID でローカルにあるイメージを削除する
  11. docker pull イメージ名 でイメージをpullする
  12. docker pullしたイメージをdocker runする

 

こんな流れで体験することが出来ます。

AzureでVMを自動作成する方法

先日マイクロソフトさんのDEVOPSハッカソンに参加してきました。

私は個人的に統合テストの自動化に取り組んでおり、AzureのVMでブラウザテストを実行する環境を構築しています。

ただ、これにはVM作成や、VMに幾つかのモジュールのインストールする必要が在り、必要なときに環境構築がすぐに出来ないという課題がありました。また、テスト時にしか使用しないので常にVMを用意しておくのも金銭的にも勿体ないと思っていました。

ハッカソンを通して、VM作成の自動化を実現する方法を様々な方から教えて頂きましたので紹介します。

私はAzureCLIの方法を実践しましたが、ここにも2つのデプロイモデルがあるのでご紹介します。

  • リソースマネージャ
  • 発行設定ファイル

私は発行設定ファイルの方法で実践しました。手順についてはこちらを参考にしました。

簡易的な手順 https://azure.microsoft.com/ja-jp/documentation/articles/xplat-cli-connect/

AzureCLIコマンド https://azure.microsoft.com/ja-jp/documentation/articles/virtual-machines-command-line-tools/

AzureCLIにはnmpが必要になるので、Dockerに慣れてる方はこちらの方が楽です。 http://qiita.com/uchidake/items/e74205578cd4c089a493

VMを作る方法 こちらを参考にしました。コマンド名でググると何を変数に設定すべきか分かります。 http://qiita.com/uchidake/items/e74205578cd4c089a493

次はこちらの方法で実践して、テスト用のリソースを管理出来る基礎を作るところまで実践してみたいと思います。

https://azure.microsoft.com/ja-jp/documentation/articles/xplat-cli-azure-resource-manager/#