如何控制私有 jelastic 环境

How to version a private jelastic environment

为了跟踪我们的 Jelastic 托管环境的配置,我想在 git 存储库中对其进行版本控制。该存储库应该是私有的,并且包含几个不同版本的不同分支(例如 masterabc123v1.1)。

我的第一个尝试是创建一个私有 github 存储库,其中包含:

现在,我想知道:

A) 如何将环境从私有 git(hub) 存储库导入 Jelastic?我可以使用仪表板导入 URL 功能来执行此操作吗?或者我必须使用 CLI 吗?

B) 如何确保 manifest.json 引用与 manifest.json 本身相同版本的配置文件?如何传递 Jelastic 的凭据以便能够检索配置文件?

我查看了其中一个 Jelastic 示例环境: https://github.com/jelastic-jps/basic-examples/blob/master/automatic-environment-migration-after-cloning/manifest.jps

那里: 配置文件(例如 alfresco-global.properties)是从 public github 存储库加载的。因此,不需要凭证,manifest.json 和配置文件都不需要。此外,配置文件将始终从 master 分支加载。

相比之下,

这可能吗?有最佳实践吗?

如何将环境从私有 git(hub) 存储库导入 Jelastic?我可以使用仪表板导入 URL 功能来执行此操作吗?或者我必须使用 CLI 吗?

为此,我们需要使用任何体面的 GIT SCM 提供的 webhook 功能。检查生成令牌 link。

在打开的安装 window 中,指定以下数据:

  • Git 回购 Url - HTTPS link 到您的应用回购
  • Branch - 要使用的项目分支
  • 用户- 您的Git 帐户登录
  • Token - 用于生成 webhook 的个人 Git 访问令牌(可以在 GitHub/GitLab 帐户设置中创建)
  • 环境名称 - 您的应用程序应部署到的目标环境
  • Nodes - 应用程序服务器名称(在选择环境时自动获取)

成功安装后,提交到源存储库的所有进一步更改,将自动交付到您在 Jelastic Cloud 中的环境。

如何确保 manifest.json 引用与 manifest.json 本身相同版本的配置文件?如何传递 Jelastic 的凭据以便能够检索配置文件?

由于我们正在使用 Jelastic,因此我们可以使用 Jelastic 提供的功能。目前你可以设置分支名称,所以你可以:

  • 存储库数量与 manifest.jps 一样多
  • 与 manifest.jps 一样多的分支

有最佳实践吗?

可以使用 与 manifest.jps 一样多的存储库 并使用 git 流向版本控制:

Master 作为 manifest.jps 的稳定生产版本。 manifest.jps 的任何更改都必须由团队审核或审查,以防止出错。您也可以使用标签对此 manifest.jps 进行版本控制,并轻松将 master 恢复为任何标签。

参考资料

A) How can I import an environment from a private git(hub) repository into Jelastic? Can I use the Dashboard Import URL feature to do so? Or do I have to use the CLI?

B) How can I make sure that the manifest.json refers to the configuration file of the same version as the manifest.json itself? How do I pass the credentials for Jelastic to be able to retrieve the configuration files?

要将环境从私有 Github 存储库导入 Jelastic,您应该通过仪表板 Import 功能导入带有令牌的清单文件 URL。

为此,您需要:

清单文件示例:

type: install
name: Test Private Repo

baseUrl: https://raw.githubusercontent.com/{user}/{repo}/{branch}
settings: 
 fields: 
- name: token
  caption: Token
  type: string
  default: 

globals: 
  token: ${settings.token}

description: README.md?access_token=${globals.token}

onInstall:
  # Shell script by URL
  - cmd: script.sh?access_token=${globals.token}

  # Base URL inside shell script
  - cmd: |
      wget '${baseUrl}/script.sh?access_token=${globals.token}' -O script.sh
      chmod +x script.sh
      ./script.sh

  # Javascript by URL
  - script: script.js?access_token=${globals.token}