OpenShiftに関する
Habrの 記事を読んで、
私はすぐにこのプラットフォームで友達になりたかった。 それでも、512MBのRAMと1GBのスペースを備えた無料のリモートコンピューターは、経済的には不必要ではありません。 ;)さらに、プラットフォーム自体が提供するWebサーバーだけでなく、独自のWebサーバーも実行できます。 小さな個人プロジェクトでTomcatを選択しました。
次に、このアイデアを実装するためのアルゴリズムについて説明します。
1. sshアクセスを取得する
- OpenShiftでアカウントを作成する
- 承認後、アプリケーションの種類を選択するように求められます(アプリケーションの種類を選択 )、
リストから「 Do-It-Yourself」タイプを選択します - パブリックURLを設定し、[ アプリケーションの作成 ]をクリックします
- ああ、リモートコンピューターが私たちを待っています! sshを介して到達するために残ります。 ページの下部に[ 公開キーの設定]セクションが表示されます-公開キーを設定する必要があります。 PuTTYを介して公開鍵の生成を利用しました。 サーバーに公開鍵を送信することで、sshアドレスが利用可能になります(ssh://much-digit@your-application.rhcloud.comなど)
- これで、アプリケーションをデプロイできます!
2.彼らは何を与えますか?
最初に、受け取ったリモートマシンについて少し説明します。
- Java 1.6.0_22をインストールしました
- 外の世界では、ポート8080を使用できます。デフォルトでは、ルビースタブが使用されています
- 内部のニーズには、 ポート15000〜35530のみを使用できます。
- サーバーのデバッグのために、ポート8787を個別に有効にできます(詳細は以下を参照)
3. Tomcatを起動します
サーバーをリモートマシンにコピーする基本的なニュアンス
については、このすばらしい記事で説明しています 。 したがって、すでにTomcatを
app-root / data / tomcatフォルダーにコピーし、
app-root / data / tomcat / conf / server.xmlファイルでipとすべてのポートを構成していると仮定します($ OPENSHIFT_INTERNAL_IPからipを取得し、ポート値を設定します)ポート8080を除く15000を超える)、サーバーを起動する準備ができましたが、ポート8080で既に実行されているルビースタブが干渉します。さらに、ポート8787を介してサーバーをデバッグするオプションはありません。これらの問題を解決します。
- OpenShiftクライアントツールをインストールします 。 残念ながら、それなしでは、発言されたすべての問題を解決することはできません。
- クライアントツールをインストールしてコンソールで起動すると、sshキーを生成してサーバーに保存するように求められます。 必ず同意してください! なぜなら Gitはこのキーを使用し、PuTTY以外は誰もPuTTYキーについて何も知りません:)
- したがって、クライアントツールとGitがあり、ルビースタブをオフにできます。 最初に、Gitリポジトリを使用してアプリケーションを開始および停止する方法を説明した記事をご覧ください 。 一言で言えば、意味は次のとおりです。リモートコンピューターにプッシュすると、 .openshift / action_hooksフォルダーからshスクリプトを自動的に呼び出します (これはリポジトリーに対する相対パスですが、リモートマシン上のアドレスはapp-root / runtime / repo / .openshift / action_hooks )。 これらのスクリプトは、現在のWebサーバーを停止し、ビルドして再起動するように設計されています。 デフォルトでは、Rubyスタブはこれらのshファイルに書き込まれます。 アイデアは、このスタブを.openshift / action_hooks / startスクリプトから削除し、変更をリモートリポジトリに送信することです。 次に、 .openshift / action_hooks / stopスクリプトがスタブを停止し、ポート8080が解放されます。
- 実際には、上記のすべてを実行します。リポジトリをマシンにダウンロードし、 .openshift / action_hooks / startファイルを編集し、そのファイルからrubyスタブを削除して、変更をサーバーに送信します。 その結果、ポート8080が解放され、PuTTYを介してTomcatを起動できます。 いいえ、もちろん、あなたは.openshift / action_hooksファイルでトマトの開始と停止を登録できますが、私は興味がありませんでした-sshコンソールはどういうわけかより近いです;)
- ほとんどすべての準備が整いました。 Tomcatが起動され、外部の世界で利用可能になります。 デバッグで問題を解決するためだけに残っています。 解決策はこの記事にあります。 簡単に言うと、新しい.openshift / marker / enable_jpdaファイルを作成して、リモートリポジトリにアップロードする必要があります。 その後、ポート8787がトマト用に開かれます。 しかし、やめて! 結局のところ、ポート8080だけが突き出ています。どうすれば8787に到達できますか?
- 8080以外のポートにアクセスするには、クライアントツールを使用する必要があります。コンソールにrhc-port-forward –a applicationNameと入力すると、リモートマシンのすべてのポートがローカルマシン(127.6.242.5の精神のアドレス)で使用可能になります。
4.まとめ
OpenShiftのTomcat起動アルゴリズムはかなり退屈であることが判明しましたが、景品のために何もしません。 良い仕事をしてください!