2012-02-23 6 views
1

数ヶ月前、私は新しいバーチャルマシンに関する情報を入力するためのフォームをhtml/phpで作成しました。HTMLフォームからルビースクリプトを実行する

私はまた、新しい仮想マシンの新しいIPアドレスを見つけるシンプルなルビースクリプトに取り組んでいます。

これらの2つのプロジェクトはリンクされていませんでしたが、今はそれができて欲しいです。しかし、私は苦労しています。私がしたいのは、Webフォームでユーザが提供する情報を使ってrubyスクリプトを実行することです。

ユーザーが新しいVM名(vm1)とそのvlan id(1)などのいくつかのものを入力するとします。フォームを右のパラメタ(./script.rb --add vm1 --vlanid 1 --...)で起動するようにしたいと思います。私はこれを行う簡単な方法を見つけようとしましたが、それを管理しませんでした。私は乗客をインストールしましたが、私はそれで失われてしまいました。

ありがとう!

+2

はランダムなフォーム入力とシステムコール...フォーム入力のいくつかの並べ替えを使用してスクリプトを実行していると注意することがあります:非常に単純なWebインタフェースのための偉大な宝石はあなただけで、基本的なハンドラを定義することができ、Sinatraですあなたのシステムへの 'rm'呼び出しのような何かを無害なものにするのと同じように、何でもかまいません。 : – summea

+0

このアプリケーションは会社内にのみ存在するので、私はそれでも問題ないと思いますが、それでもあなたは正しいと思います。 – Cocotton

+0

RailsやSinatraのようなフレームワークを使用していますか? ?(私がフォームを扱っているからといって) – summea

答えて

2

():それを行うには

<?php 
// TODO: Security checks! 
exec("./script.rb --arg1 $arg1 --arg2 $arg2 &"); 
?> 

もう一つの方法は、あなたのRubyスクリプトにWebインターフェイスを追加しています。

require 'rubygems' 
require 'sinatra' 

get "/" do 
    # do what you need to do, all the GET arguments are in the params Hash 
end 
+0

私はsinitraしようとしています。私はそれを使ってWebフォームを作成しようとします。 – Cocotton

+0

うん、Sinatraそうだよ! – Cocotton

1

限り、あなたは、フォームの入力(約確信しているとして、以前からのコメントで述べたように:)

あなたはちょうどこの記事のように(そのフォームにPOSTデータを使用してに見たいと思うかもしれません:http://biodegradablegeek.com/2008/04/how-to-post-form-data-using-ruby/ )。

そして、systemコール(like this)(またはexeclike this)をVMスクリプトに実行してみてください。あなたが幹部でそれを行うことができ

関連する問題