OpenShift是什么?
OpenShift is Red Hat's free, auto-scaling Platform as a Service (PaaS) for applications. As an application platform in the cloud, OpenShift manages the stack so you can focus on your code.
对了,它就是RedHat的云服务,支持几乎所有的主流开发语言和开发框架,而且拥有相当高的自主性,对建立的每个应用程序能最高能免费使用1536M内存,3000M空间,具体解释请看这里。
它有一个很有特色的功能,叫DIY模式,用于支持OpenShift官方没有本地支持的开发语言和开发框架。后面我们来详细看看它的DIY模式,并使用DIY模式来运行基于Play1.2.X的Web Application。
OpenShift有一个命令行工具,使用ruby开发的,所以在安装之前需要首先安装ruby环境。如何安装请看这里,linux和mac os 安装都很容易,几个命令行就能搞定,在windwos上安装需要注意一个细节,其中的RubyInstaller 不要安装太带有空格的文件夹里面,在Git的bash中使用OpenShift的命令行工具时会出问题。
OpenShift使用Git作为代码同步工具,Git For Windows 的安装方式网上已经有很多教程了,不清楚的可以直接Google,这里就不多做说明了,只是需要注意在安装Git For Windows的时候记住勾选这里
看到这里,你应该已经安装了rhc和Git,如果其中遇到什么问题,不好意思,这个特别不好贴图,我没办法Step By Step。
现在,我们来一步一步的创建一个DIY的应用,并最终运行一个Play Application。
1、注册openshift账号,传送门在这里
2、创建Domain
命令行输入 rhc domain create -n [你的Domain的名称,通常可以用自己的英文表示,这里我使用modun] -l [你的openshift邮箱账号,这里我使用modunzhang@xxmail.com],所以,我自己的完整的命令时这样的: rhc domain create -n modun -l modunzhang@xxmail.com.首次运行的时候rhc会给你创建一对公私密匙,此密匙通常保存在“C:\Users\Modun\.ssh”文件夹下,你按照rhc的提示步骤很轻松的就能走下来。
3、创建DIY应用
在第二步完成后,你应该已经创建了自己的domain,下面来让我们走上自己关键的一步,创建DIY应用。
在输入命令之前,你需要使用命令行先导航到你希望创建Play工程的文件目录下,比如我自己的“H:\JAVA-Play APPs” ,因为在应用创建完成后rhc默认会创建一个本地Git仓库,仓库名称为你的应用名称,然后使用Pull命令将OpenShift云端的应用程序结构和数据同步到你的本地仓库中。
现在让我们来创建自己的应用吧,输入rhc app create -a [应用名称] -t diy-0.1,提示输入密码,然后等待创建成功,这里我使用 rhc app create -a play1demo -t diy-0.1。命令行成功执行后,你的本地文件夹里面应该已经存在了应用程序Git目录了。走到这里其实你已经在OpenShift的云上创建了一个可运行的Web Application。
程序地址大概是这样的http://play1demo-modun.rhcloud.com/,Git仓库地址大概是这样的ssh://xxxxxxxxxxxxxxxxxx@play1demo-modun.rhcloud.com/~/git/play1demo.git/,为了方便后面的Push,我们将仓库地址添加到remote中去,git remote add origin ssh://xxxxxxxxxxxxxxxxxx@play1demo-modun.rhcloud.com/~/git/play1demo.git/。
4、修改DIY应用,让其支持Play1.2.x
DIY应用的原理其实非常简单,就是它会给你一个TCP端口号,你需要做的事情就是使用你自己喜欢的语言或框架启动一个Http服务器,然后监听它给你的端口号(现在为8080端口),OpenShift会将此端口的所有东西转发出去。
同步下来的目录中有两个非常重要的目录,看这里,一个叫diy的目录可以直接删除掉,因为里面有一个ruby写的小型http服务器,它会和你抢占服务端口,有它没你,有你没它,所以你需要将它删除掉。然后呢,就是.openshift这个目录了,DIY的特别之处就在这里了,此目录中有两个子目录,一个是action_hooks,应用程序钩子,另一个是cron,定时任务触发器。我们要着重看看action_hooks这个目录。里面有6个Bash文件,没错了,是可以执行你自己编写的bash的文件哦,爽不爽?执行顺序分别是stop,pre_build,build,deploy,start,post_deploy,每次我们从本地Git Push到OpenShift上后,就会依次执行这几个文件的。
为了让OpenShift能本地支持PlayFramework的编译和运行(注意,不是打包成War运行哦),我们需要修改其中的pre_build,start,和stop这三个文件。
我并不会linux bash,需要走这里下载这几个文件,不过需要说明的是,直接使用这几个文件有一点小问题,会造成不能正常的开启和关闭Play自带的Jetty服务器。原因是在这几个文件编写后,OpenShift的云端目录结构改变了。
所以,你可能需要使用我附件中提供的文件了,虽然我不会写bash,但是修改几个小地方还是没问题的哦。
好了,现在说说这几个文件的作用吧。pre_build主要是做服务器端PlayFramework的版本和环境监测,如果服务器端还没有下载PlayFramework,pre_build可以立即下载并解压到正确的地方去。start当然就是让你有机会执行play Run 命令了,stop是让你有机会执行play stop 命令。
5、Git Push 到OpenShift
当代码修改好后,先执行git add -A,然后 git commit -m"modified",最后使用自己修改后的代码 git push origin 或者使用附件中的代码直接push都是可以的
结束语
当然了,这是我第一次如此认真的写一篇技术文章,看了下时间,从晚上9点30分写到凌晨1点,中途大概有半个小时和一个朋友聊QQ去了。我只是想说,这样短短的一篇文章肯定不能让您真正的了解OpenShift,我只是尽量做一个大概的介绍,然后将我在这过程中遇到的一些问题提前分享出来,避免对OpenShift有兴趣的人花无谓的时间。下面我将您可能需要的拓展阅读知识贴在下面。
1、OpenShift 官方网站
2、OpenShift 官方微博(没错,有新浪微博哦)
3、牛人博客一(请备好梯子)
4、官方社区牛人博客
5、投票吧,票票多了OpenShift会考虑原生支持Play应用的,喜欢Play的朋友要顶哦
自己认真写了这些东西后才发现前人写的那些经验文章确实不易,对于google重度使用者的我,真的要衷心感谢你们,自己也在此自勉一下,将来有时间也要多写,将此精神传承下去,Modun 加油,你能行!
分享到:
相关推荐
CoinMarketCapAPI, 在 node 中并托管在OpenShift上,用于 coinmarketcap.com 编写的JSON API 简介OpenShift上承载的coinmarketcap.com的JSON API 。 这里服务的文档在 index.html 中可用。服务本身由我在 ...
### webpy简介及其在OpenShift上的部署 #### 一、Webpy概述 Webpy是一款用Python编写的轻量级Web框架,它具有简洁、高效的特点,非常适合用来开发中小型的Web应用。由于其易于上手且功能强大,在学习或构建简单的...
这个 git 存储库将帮助您在 OpenShift Express 上利用自己动手做的墨盒快速启动和运行 Play Framework 2(在 2.0.x、2.1.x、2.2.x、2.3.x 上测试)应用程序。 注意:自 2.3.x 起play命令行实用程序已替换为...
2. **选择应用模板**:在OpenShift控制台,选择Python运行时环境,这将为你创建一个预装了Python环境的Cartridge。 3. **上传代码**:将你的WebPy源码上传到OpenShift应用的git仓库。这通常通过`git clone`获取应用...
根据提供的文件信息,本知识讲解将以中文详细描述OpenShift的用户手册内容,包括OpenShift的应用管理和架构概览。...通过阅读和理解手册,用户能够有效地创建和管理运行在OpenShift平台上的应用程序。
Red Hat 的 OpenShift PaaS 上的 Tornado(带有 Websockets) Tornado 在 OpenShift 上运行,支持 Websocket。 此 git 存储库是一个示例应用程序,可帮助您开始在 Red Hat 的 OpenShift PaaS 上使用 Tornado。在 ...
Tomcat7 在 OpenShift 上运行,支持 Websocket。 此 git 存储库是一个示例应用程序,可帮助您开始在 Red Hat 的 OpenShift PaaS 上使用 Tomcat7。 在 OpenShift 上运行 Tomcat7 的步骤 在创建一个帐户 创建一个...
与Kubevirt的区别在于,Kubevirt的目标是在OpenShift上运行VM镜像,让这些VM看起来和感觉就像是在运行传统的虚拟机(通过Kubernetes的CRD定义虚拟机)。而Kata Containers则专注于在OpenShift上以隔离方式运行容器...
OpenShift在Kubernetes之上添加了额外的功能,如安全增强、用户界面和开发工具,以满足企业的需求。 OpenShift Container Platform包括以下几个核心组件: 1. **Master节点**:这是集群的控制平面,包含API服务器...
OpenShift是一个开源的PaaS(平台即服务)产品,它为开发者提供了在云上创建、测试、运行和管理应用程序的平台。OpenShift支持多种编程语言,包括PHP、Python、Ruby和Java等。开发者可以利用OpenShift提供的工具快速...
openshift-playbooks, 在OpenShift容器平台的文档站点上,添加添加的源 OpenShift剧本的文档站点OpenShift剧本是OpenShift的一个文档站点,由OpenShift社区维护,由北美新兴技术实践在红帽咨询中进行。概述这个站点...
更新:2018年6月移至OpenShift Express上的GateIn门户在OpenShift上安装GateIn项目从未如此简单! 该git存储库可帮助您快速启动GateIn项目并开始运行。在OpenShift上运行在创建一个帐户创建一个jbossas-7.0应用程序...
一个node.js Hapi服务器,使用MongoDB和Redis在本地和OpenShift上运行
Tornado 在 OpenShift 上运行,支持 Websocket 和 Django。 这个 git 存储库是一个示例应用程序,可帮助您开始在 Red Hat 的 OpenShift PaaS 上使用 Tornado 和 Django 和 Websocket 支持。 Python 包 本应用使用...
第 1 章 在在次次版版本本间更更新新集集群群 1.1. 关于 OPENSHIFT CONTAINER PLATFORM 更新... (可选)添加 HOOK 以在RHEL系统上执行ANSIBLE任务 4.5. 更新集群中的RHEL COMPUTE 系统 33467779111111 13161617182021
在OpenShift上运行 在创建一个帐户并安装客户端工具(首先运行“ rhc安装程序”) 创建具有MySQL支持PHP应用程序 rhc app create zabbix ...
1. 创建三个环境:这部分内容会指导读者如何在OpenShift上建立开发、集成测试和生产这三个标准环境,以支持软件开发生命周期的不同阶段。 2. 配置访问权限:为了确保安全性和合规性,手册详细讲解了如何配置角色...