去年見證了云計算革命,如今,確實有許多選擇可供選擇。 似乎每個中型到大型IT播放器都必須推出自己的平臺即服務(PaaS)云產品。
在這種情況下,Red Hat的產品不會被忽視。 紅帽工程師確實對管理服務器非常了解,而且幸運的是,他們對Java Web應用程序也很了解。 幸運的是,他們接受了挑戰,他們所提供的一切肯定不會使我們失望。
![]() |
那只熊貓熊不是很可愛嗎? |
因此, Openshift來了 。 Openshift是Red Hat針對Java,Perl,PHP,Python和Ruby應用程序提供的免費,自動縮放,基于云的平臺即服務。 這是一個快速發展的平臺,它成功地形成了一個充滿活力和樂于助人的社區來支持它。 此外,它的免費提供很大程度上替代了能力所提供的任何東西。 只需輸入電子郵件并選擇密碼,您就會獲得五個applicacions名稱空間,每個名稱空間都有一個git存儲庫和半GB的數據(代碼+數據庫),您可以根據需要使用它們。 加上對mysql(帶有phpmyadmin), PostgreSQL , MongoDB 2.0 (帶有MongoRock)甚至全功能Jenkins實例的支持,以具有持續集成環境。
將Java Web應用程序部署到openshift真的很容易,只需git add
, git commit
, git push
…就是這樣。 但是我們,游戲開發者,由于被我們鐘愛的框架所寵壞,寧愿只鍵入play rhc:deploy
類的東西,而忘了它。
這就是用于游戲框架的openshift模塊。
短篇小說
因此,您已準備就緒,可以將所有播放框架應用程序部署到openshift。 這意味著您已經安裝了JDK 1.6或1.5 , play framework , ruby , ruby gems , openshift客戶端工具 ,并且已經在openshift上注冊并創建了一個域。
在這種情況下,您只需要:
$ play install openshift
然后
$ play new <my app> --with openshift
$ cd <my app>
$ play rhc:deploy -o
…就是這樣。
![]() |
您的應用程序已準備好……并在Openshift上運行! |
每次要將更改部署到openshift時,只需再次發出play rhc:deploy -o
。 -o
參數僅告訴模塊在部署后立即在Web瀏覽器上打開您的應用程序。
從零到云端
提醒自己,以下是從裸機安裝到在openfhit上進行部署所需的步驟:
1.安裝Java jdk 1.6 在基于Debian的Linux發行版上(例如ubuntu,mint等)
$ sudo apt-get install openjdk-6-jdk
在基于rmp的linux發行版上(例如fedora,red hat,centos等)
$ sudo yum install java-1.6.0-openjdk-devel.i686
2.安裝播放框架
這是我安裝播放框架的快速而骯臟的命令列表。
$ cd ~
$ mkdir dev
$ cd dev
$ wget http://download.playframework.org/releases/play-1.2.4.zip
$ unzip play-1.2.4.zip $ echo "export PATH=$PATH:~/dev/play-1.2.4" >> ~/.profile$ source ~/.profile
然后使用以下命令進行測試:
$ play version
~ _ _
~ _ __ | | __ _ _ _| |
~ | '_ \| |/ _' | || |_|
~ | __/|_|\____|\__ (_)
~ |_| |__/
~
~ play! 1.2.4, http://www.playframework.org
~
1.2.4
注意:如果您在fedora上運行,則可能需要發出
sudo yum remove sox
,因為sox軟件包附帶了它自己的play命令,該命令與play框架沖突。
3.注冊openshift
轉到https://openshift.redhat.com/app/user/new/express輸入您的電子郵件并選擇一個密碼。
4.安裝,git和ruby寶石
在基于Debian的Linux發行版上:
$ sudo apt-get install git ruby rubygems
RPM版本:
$ sudo yum install git ruby rubygems
5.安裝openshift客戶端工具
一旦安裝了ruby gem,安裝紅帽云工具就很容易了:
$ sudo gem install rhc
6.創建一個域
域名稱空間用于幫助識別您的應用程序,并用作應用程序URL的一部分。 它對您來說是獨一無二的。 例如,假設您擁有一個很棒的名稱空間,當您創建一個名為wicked的新應用程序時,您可以在http://wicked-awesome.rhcloud.com上找到它。 當您創建一個名為freakin的新應用程序時,它將位于http://freakin-awesome.rhcloud.com。
因此,請轉到位于https://openshift.redhat.com/app/control_panel的 openshift控制面板 ,然后單擊“名稱空間”部分的“ 編輯 ”。 然后輸入諸如playdemo之類的東西 (好,那已經被錄用 ),然后單擊Save。
7.創建并注冊您的SSH密鑰
現在,您必須創建一對密鑰,一個私有密鑰和一個公共密鑰..,以便openshift可以驗證它是否真的是您嘗試將某項推送到遠程git存儲庫的密鑰。 只需按照http://help.github.com/linux-set-up-git/上的步驟操作,您只需要打開一個終端,然后
$ cd ~/.ssh
如果收到“ 沒有此類文件或目錄”錯誤,請不要擔心,這意味著您的系統上沒有任何SSH密鑰。 另一方面,如果您已經擁有SSH密鑰,則最好進行備份。
$ ssh-keygen -t rsa -C "<my email>"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/sas/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/sas/.ssh/id_rsa.
Your public key has been saved in /home/sas/.ssh/id_rsa.pub.
The key fingerprint is:
22:7b:cd:f3:98:4f:92:de:80:1d:ad:d6:ea:73:20:c2 <my email>
The key's randomart image is:
+--[ RSA 2048]----+
| |
| |
| |
| . |
| .. . S . |
| Eo.*.= |
| ..o.@.o |
| . o.@. |
| .*++ |
+-----------------+
然后,您可以設置用戶名和電子郵件,如下所示:
$ git config --global user.name "<my name>"
$ git config --global user.email "<my email>"
現在,您必須在openshift上注冊此密鑰。 只需復制id_rsa.pub的內容(注意不要復制文件id_rsa ,它是您的私鑰,并且應該將其保留給自己),然后從控制面板中將其添加為新的SSH KEY。
在Fedora上,每次執行git操作時都必須輸入密碼很煩人。 為了避免這種情況,只需運行
ssh-add
并最后一次輸入密碼即可。
另外,您也可以使用以下命令
$ rhc-create-domain -l <your email> -p <your password> -n <pick a domain>
并讓openshift在您的.ssh /目錄中創建一對私鑰和公用密鑰,分別為libra_id_rsa和libra_id_rsa.pub 。 我自己的SSH密鑰和openshift創建的libra密鑰之間存在一些沖突,因此我更愿意自己處理ssh密鑰。
注意:除非在openshift上注冊了有效的公共密鑰,否則您將無法將任何內容推送到git存儲庫。 考慮到您可以根據需要添加任意多個鍵。
轉到https://openshift.redhat.com/app/control_panel上的控制面板 ,以檢查所有內容是否正確。
走向云端
現在是的,我們準備將我們的游戲框架應用程序部署到云中。
$ play install openshift
$ play new <my app> --with openshift
$ cd <my app>
現在,對于每個命令,您至少必須輸入用戶名和密碼。 您可以通過將以下密鑰添加到conf / application.conf文件中來避免此麻煩:
# Openshift module configuration
openshift.rhlogin=<my login>
openshift.password=<my password>
之后,您應該檢查是否已安裝所有先決條件。 趕緊跑:
$ play rhc:chk
它將檢查Java 1.6或1.5安裝,git,ruby,rubygem和openshift客戶端工具0.84.15或更高版本。 它還將檢查該應用程序在openshift上是否存在,否則將要求您創建它,最后它將檢查您在openshift上是否具有指向遠程存儲庫的本地git存儲庫。
然后,您可以通過以下方式部署應用程序:
$ play rhc:deploy -o
第一次需要花費相當長的時間來發布部署,因為該模塊必須上載所有播放框架庫。 最初的部署之后,后續的提交將更快,因為git足夠聰明,只發送更改的文件。 此外,該模塊將詢問您的許可以在openshift上創建應用程序,并創建本地存儲庫。 如果只希望腳本創建所有內容而無需征求許可,則只需在命令中添加--bypass
或-b
參數。
您的應用程序現在將在以下位置可用: http:// <我的應用程序>-<我的域> .rhcloud.com 。
如果您已經將應用程序部署到openshift,并且只想從遠程git存儲庫中檢索它,則發出:
$ play rhc:fetch
考慮到這是一種破壞性操作。 它將完全刪除您的本地應用程序,并將其替換為遠程存儲庫的內容。
要查看您的服務器日志,請發出:
$ play rhc:logs
![]() |
用“ play rhc:logs”查看openshift日志文件 |
要在openshift運行時顯示有關您的應用程序的信息:
$ play rhc:info
這只是rhc-domain-info命令的簡寫形式 。
您可以在任何時候通過openshift打開應用程序:
$ play rhc:open
這也是在http:// <我的應用程序>-<我的域> .rhcloud.com上打開Web瀏覽器的快捷方式 。
最后,如果您想從openshift刪除應用程序,請運行:
$ play rhc:destroy
安裝openshift模塊
有兩種安裝openshift模塊的方法。 一種只是發出play install openshift
,它將直接與您的框架一起安裝模塊,位于<play install folder> /modules/openshift-0.1.0 。 這樣,您創建的每個應用程序都可以使用它
$ play new my-app --with openshift
另一種方法是將其手動配置為依賴項。 只需將以下行添加到您的conf / dependencies.yml文件中:
# Application dependencies
require:- play- play -> openshift 0.1.0
然后發出
play deps
注意:play在?/ .ivy2 / cache處保留獲取的依賴項的緩存 。 如果您在依賴項方面遇到麻煩,請清理該部分,然后重試。
與模塊一起,在<openshift模塊文件夾> / samples_and_tests / openshift-demo中有一個示例應用程序。 只需轉到該文件夾??并發出play deps
,然后play run
以查看其在本地運行。 它僅顯示播放配置和主機環境變量,讓您檢查您的應用程序是否在openshift上運行。
![]() |
Openshift模塊演示應用程序 |
然后運行play rhc:chk
以確認您已安裝所有先決條件。 解決該問題后,播放rhc:deploy -o
以在openshift上創建遠程應用程序,創建本地git repo,將應用程序打包為war文件,提交新應用程序,然后部署到openshift。 借助-o
參數,該模塊將在部署后在Web瀏覽器中打開您的openshift應用程序。
獲得幫助
您可以看一下該模塊的命令發布:
$ play help
~ _ _
~ _ __ | | __ _ _ _| |
~ | '_ \| |/ _' | || |_|
~ | __/|_|\____|\__ (_)
~ |_| |__/
~
~ play! 1.2.4, http://www.playframework.org
~[...]
~
~ Modules commands:
~ ~~~~~~~~~~~~~~~~~
~ rhc:chk Check openshift prerequisites, application and git repo.
~ rhc:deploy Deploys application on openshift.
~ rhc:destroy Destroys application on openshift.
~ rhc:fetch Fetches application from remote openshift repository.
~ rhc:info Displays information about user and configured applications.
~ rhc:logs Show the logs of the application on openshift.
~ rhc:open Opens the application deployed on openshift in web browser.
~
~ Also refer to documentation at http://www.playframework.org/documentation
~
然后,您可以使用-h
或--help
參數獲得有關參數的更多幫助:
$ play rhc:chk -h~ _ _
~ _ __ | | __ _ _ _| |
~ | '_ \| |/ _' | || |_|
~ | __/|_|\____|\__ (_)
~ |_| |__/
~
~ play! 1.2.4, http://www.playframework.org
~
Usage: play [options]Options:-h, --help show this help message and exit-a APP, --app=APP Application name (alphanumeric) (required)-s SUBDOMAIN, --subdomain=SUBDOMAINApplication subdomain, root by default (alphanumeric)(optional)-l RHLOGIN, --rhlogin=RHLOGINRed Hat login (RHN or OpenShift login with OpenShiftExpress access)-p PASSWORD, --password=PASSWORDRHLogin password (optional, will prompt)-d, --debug Print Debug info-m MESSAGE, --message=MESSAGECommit message--timeout=TIMEOUT Timeout, in seconds, for connection-o, --open Open site after deploying-b, --bypass Bypass warnings
您還可以使用以下鍵在conf / application.conf文件中指定這些選項:
openshift.rhlogin: Red Hat login (RHN or OpenShift login with OpenShift Express access)
openshift.password: RHLogin password (optional, will prompt)
openshift.application.name: Application name (alphanumeric) (required)
openshift.application.subdomain: Application subdomain, root by default (alphanumeric)
openshift.debug: Print Debug info
openshift.timeout: Timeout, in seconds, for connection
您可以在http://www.playframework.org/modules/openshift上的openshift模塊頁面上看到該模塊的所有版本。
您可以在http://www.playframework.org/modules/openshift-0.1.0/home上查看文檔,也可以通過play run
在開發模式下本地運行您的應用,然后訪問http:// localhost:9000 / @ documentation / modules / openshift / home 。
![]() |
本地瀏覽模塊文檔 |
你可以問的問題, 發揮框架討論列表在https://groups.google.com/group/play-framework ,或者你可以用它來試試西班牙表弟在https://groups.google.com/group/play-拉坦
已知的問題
不幸的是,目前openshift模塊不適用于Windows。 這是因為該模塊發出許多git命令,并且您無法在標準外殼程序的Windows上執行此操作,它需要特殊的“ git bash”提示。
進一步的步驟
在下一個版本中,我將探討使用openshift的java api構建模塊的僅Java版本的可能性。 這樣,我們將不需要git,ruby或rhc工具安裝。 Morevoer,我們也應該能夠從Windows上使用它。
資源資源
- 播放框架openshift模塊頁面: http ://www.playframework.org/modules/openshift
- 最新版本: http : //www.playframework.org/modules/openshift-0.1.0/home
- github上的項目: https : //github.com/opensas/openshift
- 有關如何將Play框架應用程序部署到openshift的詳細教程: https : //github.com/opensas/play-demo/wiki/Step-12.5-deploy-to-openshift
- 關于將Java應用程序部署到openshift的優秀教程: https ://gist.github.com/1637464#file_tutorial.rst
- 關于jboss Planet的幾篇文章:
- http://planet.jboss.org/post/let_s_play_on_the_red_hat_cloud_using_the_play_framework_on_openshift_express_with_jboss_as_7
- https://community.jboss.org/blogs/thomas.heute/2011/06/29/play-framework-on-jboss-as-7?_sscc=t
參考: 云上的播放框架變得簡單:來自JCG合作伙伴的 Openshift模塊 ? Sebastian Scarano在“ 玩轉Play框架”中! 博客。
翻譯自: https://www.javacodegeeks.com/2012/02/play-framework-on-cloud-made-easy.html