しばやん雑記

Azure とメイドさんが大好きなフリーランスのプログラマーのブログ

Azure Web サイトに Ruby / Perl / Go をインストールするスクリプトのリポジトリを作った

これまで当ブログでは Azure Web サイトに Ruby / Perl / Go など色んな言語を独自にインストールして、FastCGI や httpPlatformHandler などで動かしてきましたが、いい加減にランタイムのインストールがだるくなってきたので、インストールの処理を簡単にするためのスクリプトを作りました。

とりあえず Ruby / Perl / Go に関しては GitHub にリポジトリ作って置いてあります。

shibayan/AzureWebSitesSetupScripts · GitHub

README が中途半端で Ruby しか書いてないですが、このあたりは追い追い対応する方向で。

ぶっちゃけ、この時に作ったバッチファイルが思ったより楽だったので、色んな言語やバージョン用にちょっとずつ修正したものです。

複数バージョンや言語に対応するために、この時のスクリプトからインストールするディレクトリ名などを少し変えてあります。

例えば Ruby であれば以下のような感じに。

f:id:shiba-yan:20141014011742p:plain

環境変数として RUBY_HOME とか追加するようにして、その環境変数を使って httpPlatformHandler で起動するようにすれば楽ですね。直接パスを指定すれば、同時に複数のバージョンを動かすことも出来そうです。

実際に Ruby や Perl などを使ったアプリケーションを動かすためには環境変数の追加などが必要になるので、そのあたり含めて自動的に行いたいです。なので、将来的には Site Extension としてインストーラー的なものを公開して、XHR で Kudu の REST API を叩くようにするのが、割と現実的かなと考えています。

rbenv 的なものがあった方が楽なんだろうなと思いつつ、今は特に何もしてません。

おまけ

Rails や Go を動かす時に必要な httpPlatformHandler の設定が含まれている Web.config も一緒に公開してあります。おまけで Go は revel を動かすバッチも入れてあります。

AzureWebSitesSetupScripts/Web.Rails.config at master · shibayan/AzureWebSitesSetupScripts · GitHub
AzureWebSitesSetupScripts/Web.config at master · shibayan/AzureWebSitesSetupScripts · GitHub

追い追い、Strawberry Perl を動かす時に必要なスクリプトも追加しておこうかと思ってます。