使用 IDE,您不仅可以管理 OpenShift 在线应用程序的源代码,还可以进行管理。OpenShift Online 允许通过标记和操作挂钩自定义构建和部署流程,每个标记和操作挂钩都可以使用 OpenShift 工具和现有 IDE 功能添加到应用程序配置文件中。此外,还可以通过 IDE 首选项自定义变更的应用程序源代码和配置文件的 Git 提交和推送流程,以满足您的需求。
此处说明演示如何完成以下任务
1. 为应用程序添加标记
OpenShift 工具提供“配置标记”向导,用于向您的 OpenShift 应用程序添加标记和从中删除标记。该向导列出已应用于您的应用程序的标记以及根据应用程序盒配置可添加的标记。该向导负责向应用程序添加和从中删除标记、创建或删除标记文件以及向 Git 索引中添加或从中删除标记。
例如,此处向应用程序添加了热部署标记,这将触发 OpenShift 在不首先重新启动应用程序盒的情况下发布应用程序变更,从而使重新发布速度更快。
若要将热部署标记添加到应用程序,请完成以下步骤
-
在“项目资源管理器”视图中,右键单击“{项目名称}”,然后单击
。 -
从“标记”表中选择“热部署”,然后单击“确定”。
图 1. 已选择热部署标记空“.openshift/markers/hot_deploy”文件被添加到应用程序中。OpenShift 工具会自动完成“git add”操作,以便将这个新文件添加到 Git 索引中,并且可以在准备就绪时提交该文件并将它推送到 OpenShift 应用程序存储库。
2. 为应用程序添加操作挂钩
使用 IDE 功能,你可以快速向 OpenShift 应用程序添加操作挂钩。添加操作挂钩要求创建根据要运行的阶段命名的脚本文件,将其放在应用程序.openshift/action_hooks
目录中,将此文件添加到 Git 索引并确保对所有用户具有执行权限。
例如,这里向应用程序添加了一个部署后操作挂钩,它在应用程序部署后触发在应用程序主齿轮上执行一个简单的 bash 脚本。
若要向应用程序添加部署后操作挂钩,请完成以下步骤
创建部署后操作挂钩
-
在
导航器
视图中,展开{项目名称} > .openshift
。 -
右键单击
action_hooks
并单击 。 -
在
文件名
字段中,键入post_deploy
并单击完成
。 -
在文件编辑器中,向 post_deploy 文件添加以下行
#!/bin/bash echo "This is my post-deploy bash script”
-
按 Ctrl+S(或 Cmd+S)保存文件。
使部署后操作挂钩具有可执行权限
-
在
导航器
视图中,右键单击post_deploy
文件并单击属性
。 -
在
权限
表中,针对所有用户类型选中执行
复选框。图 2. 为所有用户选中执行权限复选框 -
单击
应用
并单击确定
。
3. 延长 Git 远程连接超时
随着应用程序源代码的增大,从 IDE 到 OpenShift Online 应用程序 Git 存储库的远程连接可能无法保持足够的打开时间以完成推送过程。默认 Git 远程连接超时设置为 30 秒,此后将关闭连接。但你可以通过 IDE 偏好项延长 Git 超时,以确保为推送过程提供足够的完成时间。
若要延长 Git 远程连接超时,请完成以下步骤
-
单击
。 -
在
远程连接超时(秒)
字段中,键入秒数。图 3. 设置 Git 远程连接超时 -
单击
应用
并单击确定
关闭首选项
窗口。
4. 重新发布应用程序
在标记和操作挂钩对应用程序构建和部署流程生效之前你必须提交文件并将更改推送到 OpenShift 应用程序存储库。OpenShift 工具帮你执行这些 Git 操作,作为重新发布流程的一部分。
要重新发布该应用程序,请完成以下步骤
-
在
Servers
视图中,右键单击{应用程序名称} at OpenShift
并单击Publish
。 -
完成以下与应用程序更改相关字段的信息,以提交并推送到 OpenShift Online 应用程序代码库
-
在
Commit message
字段中,键入以下信息Added hot_deploy marker and post_deploy bash script
-
在
Files
表中,确保选中hot_deploy
文件,并选择post_deploy
文件。图 4. 为提交和发布提供提交信息和所选文件
-
-
单击
Commit and Publish
。
Console
视图变为焦点视图,显示应用程序发布进度。以下显示了示例应用程序中演示热部署标记和部署后操作挂钩效果的输出片段
Not stopping cartridge xyz because hot deploy is enabled
Building git ref 'master', commit abc123
...
Activating deployment
Deploying xyz cartridge
Not starting cartridge xyz because hot deploy is enabled
This is my post-deploy bash script
-------------------------
Git Post-Receive Result: success
Activation status: success
Deployment completed with status: success
请注意,服务器并未停止并重新启动,因为启用了热部署,并且部署应用程序后按要求运行了 bash 脚本。