前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Openshift 指南

Openshift 指南

作者头像
星哥玩云
发布2022-06-29 18:57:31
1.1K0
发布2022-06-29 18:57:31
举报
文章被收录于专栏:开源部署开源部署

Openshift 是 RedHat 推出的 PaaS. 从 wr 那里听说的, 这几天一直在玩儿, 感觉很不错, 相比一直以来在压榨的 gae 来说, 更自由, 更像个 vps, 没有明确的配额限制, 用 git 直接提交, 有多个数据库可选, 有简单的 ssh 等等. 简单记录一下, 方便再折腾。 首先在 https://openshift.redhat.com/app/ 注册, 看看首页上的那些语言, 总有一门适合你! 进入后, 可以在 web 上建立 app, 选择语言和平台就好了. 点进去 app 的管理页面, 没有意象之中的繁杂的各种管理选项, 只列出了当前用的语言和本项目的 git 地址. 等等, 这里还有一个隐藏功能, 就是添加 cartridge. 点右上角那个加号, 可以看到可以添加 MongoDB, MySQL, PostgreSQL 这几个数据库和对应的管理界面 RockMongo, PhpMyAdmin, 还有 Cron 可以定时执行任务, 还有个废柴的 Openshift Metrics 会显示 cpu 和 mem 消耗, 最后还有个不明真相的 Jenkins Client. 这个界面不能显示安装了的 cartridge 的端口啊密码啊等信息, 也不能删除 cartridge, Orz. 言而总之, web 界面就是个摆设, 牛逼的工具都在叫 rhc 的命令行工具包里. 在下面链接里有 mac, win, linux 下的安装指南. 看到上面说 win 下需要 Cygwin, 原来觉得这个挺好, 现在觉得挺不伦不类的, 还不如直接到 linux 里折腾. Arch 里 AUR 里就有 rhc, 可以看出丫其实就是一个 Ruby gem, 安装过程也主要就是补齐 gems 依赖: ruby-rest-client, ruby-parseconfig, ruby-json. 在 web 上创建 app 时, 应该就已经让你选一个 domain 做为 app 的后缀了, 不得不说又长又难看. 下面举例说明一下命令用法. console 下创建 domain, 即使在 web 端做了, 本地也有必要做一下:

rhc domain create -n $NAMESPACE -l $USERNAME

会在 ~/.ssh 下生成 libra_id_rsa.pub 文件, 可在 web 的 My account 页面加入 public keys.

创建 app:

rhc app create -a $APPNAME -t python-2.6

app 这个子命令下还有 start, stop, tail, add-alias, cartridge 等有用的子命令, 用法类似. add-alias 可以绑定域名, tail 可以看 log, 这个超有用, cartridge 下 又有 add, remove 等子命令可以操作 cartridges. git clone 一下 app 的 git 地址, 会得到一个如下的目录(以python为例):

.

|-- .git/

|-- .gitignore

|-- .openshift/

|-- data/

|-- libs/

|-- README

|-- README.md

|-- setup.py

`-- wsgi/

|-- application

`-- static/

`-- README

README 必读, 有各目录的用法, 一些有用的环境变量. wsgi/ 目录里放代码, application 是主程序, 如何修改参见下面链接里的例子. wsgi/static/ 目录里放静态文件, 放进去后代码里用 href='https://www.linuxidc.com/static/...' 就行了. data 和 libs 尚不会用. setup.py 文件里可以配置 install_requires 项包含项目所需的包如 pymongo, bottle, django, 尚不知那些包可自动安装. app 的 git 地址里的那个 ssh 可以直接登录的! 有 .git/ 和一些 logs 可以看. 关于 bottle 需要说明的一点是,在 "./views" 下是找不到模板的,请添加这一句,其他本地文件操作也请参考:

bottle.TEMPLATE_PATH.append(

os.path.join(os.environ['OPENSHIFT_GEAR_DIR'],

'runtime/repo/wsgi/views/'))

另外关于 mongodb 有一些诡异, 用的不是 README 里说的环境变量, 而是 'OPENSHIFT_NOSQL_DB_USERNAME' 这种的, 第一次用会怎么也连不上, 需要在代码里替换变量为在命令行下添加 mongodb 时给出的信息, 连一次以后就好了. 如果不是在命令行下添加的或者没有记下, 可以参考下面链接里的例子里的 '/DEBUG/env' 查看所有环境变量, 或者可能可以 ssh 进去看.

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档