Windows AzureでのRubyの歴史

Ruby開発者は、プラットフォームの開発のごく初期の段階からWindows Azureを使用でき、毎年、Windows Azure用のRuby開発ツールの作成と開発、および間接的に(たとえば、仮想マシンのリリースにより、Rubyを開発する機会) IaaS環境のアプリケーション。 インフラストラクチャの現実に困りたくない人のために、VMDepot仮想マシンストレージにRuby用の事前構成済みイメージが既にあります。 以下では、Windows AzureでRubyを開発するいくつかの方法について説明します。これらの方法のうち、どちらがより便利になります-あなたが決定します。



Rubyの開発に向けたプラットフォームの開発マイルストーンを検討した結果、いくつかの段階を区別できます。各段階は、それ自体が重要です。



•Ruby 用Windows Azure SDKWindows Azure SDK Ruby )の作成。RubyアプリケーションからさまざまなWindows Azureサービスを使用できます。 これは非常に重要なマイルストーンです。プラットフォームベンダーが特定の方向に向けた努力がなければ、この方向がエコシステムの本格的な「レジデント」であるとは言えないからです。 他の多くのMicrosoftツールと同様に、Ruby SDKはオープンソースであり、GitHubにあります-github.com/WindowsAzure/azure-sdk-for-ruby

•仮想マシンの形でのIaaSのリリース。 これにより、すべてが明確になります-自分で仮想サーバーを作成できます。

•イメージストレージVMDepotのリリース 。 既製の画像を取得してすぐに作業を開始したい人向け。



方法1:Windows Azure Linuxサーバー、Ubuntu 12.04 LTS



Linuxサーバーを手動で展開し、自分用に作業環境を構成します。 これを行うには、 Windows Azure 管理ポータルに移動し 、[新規] => [コンピュート] => [仮想マシン] => [クイック作成]をクリックします。



データを入力してください:



•DNS NAME:外部から仮想マシンにアクセスできる名前

•IMAGE:仮想マシンの展開元のイメージ。 Ubuntu Server 12.04 LTSを選択します。

•サイズ:利用可能なVMサイズの1つ。 中を選択します。

•ユーザー名:デフォルトはazureuserです。 ポータルは変更できません。

•新しいパスワード/確認:パスワード。

•REGION / AFFINITY GROUP:VMが配置される地域、またはアフィニティグループ(データセンター内で最大の近接性を確保するため)。



より正確なパラメーター設定を行うには、FROM GALLERYを選択します-より多くの設定が利用可能になります。







接続データ(たとえば、Puttyによる)は、[ダッシュボード]タブの[SSHの詳細]セクションでVM名をクリックした後に取得されます。







sudo apt-get updateコマンドを実行します。 Linux上のVMでsudoを使用することを忘れないでください。これは追加のセキュリティと信頼性です。 さらに、便宜上ウィンドウマネージャをインストールすることが望ましいです。



sudo apt-get install ubuntu-desktop
      
      







GUIへのRDPアクセスを有効にします。 これは[エンドポイント]タブで行います。[追加]をクリックして、データ(TCPおよびポート値3389を介したアクセスポイント)を入力する必要があります。

VMで、xrdpをインストールします。



 sudo apt-get install xrdp
      
      







これで、Ruby On Railsの環境を設定できます。



 sudo apt-get upgrade sudo apt-get install ruby1.9.1 ruby1.9.l-dev build-essential libsqlite3-dev nodejs -y sudo gem install bundler –no-rdoc –no-ri sudo apt-get -y install git-core curl curl -L https://get.rvm.io | bash -s stable
      
      







また、Rubyバージョンマネージャー(RVM)をインストールします。これは、Rubyのさまざまなバージョンやその他の機能を管理するのに役立ちます。 環境にRVMを追加します。



 echo 'source ~/.rvm/scripts/rvm' >> ~/.bash_aliases && bash
      
      







そして、すべてが正しく機能するように設定されているかどうかを確認します。



 rvm requirements
      
      





すべてが正常な場合、Rubyをインストールし、デフォルトで使用するように指定できます。



 rvm install 1.9.3 rvm use 1.9.3 –default
      
      







方法2:VMDepotからVMをインストールする



VMDepotから、事前に構成されたコミュニティVMイメージをインストールできます。これらのイメージは、アカウントのWindows Azureに自動的に展開および実行されます。

必要な画像のページに直行しましょう。

展開スクリプトをクリックして、展開スクリプトを取得します。 このスクリプトはAzure CLI用に設計されており、CLIがインストールされていない場合は使用できません( リンクからダウンロードできます)。

CLIを実行します。 次に、次のコマンドを実行して、CLIの環境を構成します。



 azure account download (     ) azure account import [____] azure storage account list (    ,   ,  ) azure storage account set [__]
      
      







すべてのコマンドを実行した後、VMDepotからコピーしたスクリプトを実行できます。 これには時間がかかります。その後、新しいVMがWindows Azure管理ポータルのVMのリストに表示されます。 このVMは、PHP、Ruby、Python、Java、さまざまなフレームワーク、mysql、postgresql、apache / nginxなどのDBMSを含む、さまざまな開発環境と環境の優れたセットです。



方法3:PaaS、Ruby + Sinatra + Azure





Windows AzureのPaaSとして、クラウドサービスの概念が使用されます-いくつかの従来のプロジェクト(たとえば、フロントエンドとバックエンド)で構成されるアプリケーションと1つの新しい-実際には、クラウドでアプリケーションをデプロイおよび構成するためにプラットフォームで使用されるすべての構成を含むクラウドサービス。 詳細はこちら



Visual Studioでクラウドサービスプロジェクトを作成し、それにワーカーロールを追加します。 この役割プロジェクトでは、環境とRubyアプリケーションがインストールされます。 次に、Rubyインストーラーをダウンロードする必要があります。それをWorkerロールに配置し、その環境でVMをデプロイします。 インストーラーはRubyInstaller.comからダウンロードできます。 ワーカーロールプロジェクトにインストーラーを追加し、[出力ディレクトリにコピー]属性を[新しい場合はコピー]に設定して、パッケージに含まれるようにします。 また、同じ出力ディレクトリへのコピー属性値と次の内容を持つinstall.cmdファイルを追加します。



 rubyinstaller-2.0.0-p0-x64.exe /silent D:\Ruby200-x64\bin\gem.bat install sinatra --no-ri --no-rdoc
      
      







すべてのファイルはUS-ASCIIエンコードで保存する必要があります。保存しないと、エラーが発生する可能性があります。

main.rbファイルを、copy if newer属性とコンテンツの値とともにWorker Roleに追加します。



 require 'sinatra' set :environment, :production set :port, 8080 get '/' do "Hello World!" end
      
      





同じ属性値と次の内容を持つstart.cmdファイルを追加します。



 D:\Ruby200-x64\bin\ruby.exe main.rb
      
      





ただし、すべてが自動的に開始されるわけではないため、Cloud Serviceプロジェクトのロール自体の構成を調整する必要があります。 ServiceDefinition.csdefファイルを開き、以下で強調表示されているコードを追加します。



 <?xml version="1.0" encoding="utf-8"?> <ServiceDefinition name="RubyTest" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2013-10.2.2"> <WorkerRole name="WorkerRole1" vmsize="Small"> <Startup> <Task commandLine="install.cmd" executionContext="elevated" taskType="simple"></Task> <Task commandLine="start.cmd" executionContext="elevated" taskType="background"></Task> </Startup> <Imports> <Import moduleName="Diagnostics" /> </Imports> <Endpoints> <InputEndpoint name="Endpoint1" protocol="tcp" port="80" localPort="8080" /> </Endpoints> </WorkerRole> </ServiceDefinition>
      
      







したがって、VMの起動時に、install.cmdおよびstart.cmdファイルが昇格された特権で起動され、ポート80(外部クライアント用)が開き、トラフィックが内部ポート8080にリダイレクトされるように構成しました。

Windows Azureエミュレーターがインストールされている場合は、F5キーを押して(起動中、実行するファイルに注意してください-これらはinstall.cmdとstart.cmdの実行結果です)、 localhostで結果を確認できます:81(ローカルエミュレーターは80から自動的に再マップします競合を避けるためにポート81)。



さらなる開発プロセスは、いくつかの段階に分けることができます。

1)プログラムコードと.rbファイルの作成

2)install.cmdおよびstart.cmdファイルの変更、または変更を自動化するか、まったく新しい開発環境を作成してServiceDefinitions.csdefの対応するセクションを編集するための新しい実行可能ファイルの開発

3)コード管理コマンドをstart.cmdに挿入する



この記事では、最も単純なRuby開発エコシステムのデプロイについて簡単に説明しました。 次に、選択はあなた次第です。ローカルで開発するか、どこからでもアクセスでき、どこからでもアクセスできる絶えずアクセス可能な開発環境を持つことです。最新のデータによると、これはますます重要になっています。 :)



UPD:そしてコメントでは、自動化のためのアドオンがあることを示唆しています。 取って使っています。 :)






All Articles