如何在 UCD(UrbanCode Deploy) 中创建可重用组件?

How to create reusable component in UCD(UrbanCode Deploy)?

假设我在 UCD(Urban Code Deloy)中配置了 4 个代理,并且名为 test_component 的组件标记为所有 agents.Now 我需要确保该组件仅在两个代理(节点)中运行.谁能告诉我该怎么做? 我还听说可重用组件是我们在 UCD 中需要遵循的最佳实践之一 谁能指定任何我可以探索的 material。

你是说Components映射到Agents?您实际上可以向资源或组件添加标签。 (添加到资源树中的代理实际上是代表代理的资源)。然后,您可以创建一个应用程序流程,其中的一个步骤仅限于所选标签。更多信息在这里: https://www.ibm.com/support/knowledgecenter/SS4GSP_7.0.5/com.ibm.udeploy.doc/topics/groupingtags_tsk.html https://www.ibm.com/support/knowledgecenter/SS4GSP_7.0.5/com.ibm.udeploy.doc/topics/component_tags.html

要创建可重复使用的组件,请使用组件模板。您还可以使用包含环境模板的应用程序模板。

有关详细信息,请参阅:

https://www.ibm.com/support/knowledgecenter/SS4GSP_7.0.5/com.ibm.udeploy.doc/topics/comp_template.html

https://www.ibm.com/support/knowledgecenter/SS4GSP_7.0.5/com.ibm.udeploy.doc/topics/app_template.html

您可以使用通用流程,甚至可以从组件或应用程序流程中调用它们。但是,如果一个进程被多个组件使用,则最好创建一个组件模板并将该进程放入模板中。这样,从该组件模板继承的所有组件也将继承该过程。 (这些组件然后可以有其他进程,不是来自模板)。

请注意,继承过程在组件模板中只存在一次,尽管您可以在每个派生组件中看到它。 如果你从一个组件修改它,你实际上修改了模板中的过程,所以它会在从同一模板继承的所有其他组件中出现修改。

通常您不会为每个节点创建单独的组件。节点由环境中的资源表示。您可以为同一环境中的每个节点或多个节点设置单独的环境。 一个应用程序可以有多个环境。开发您的流程以便它们可以应用于任何环境是一种很好的做法。对于依赖于环境特征的流程的可变部分,最好使用环境属性。 但是请注意,环境属性在通用进程中不可见。

通用进程的更好替代方案是操作类型的进程(不需要版本),它可以访问环境变量。

这描述了组件进程类型: https://www.ibm.com/support/knowledgecenter/SS4GSP_7.0.4/com.ibm.udeploy.doc/topics/comp_process_types.html 这描述了流程类型和其中可见的属性: https://www.ibm.com/support/knowledgecenter/SS4GSP_7.0.4/com.ibm.udeploy.doc/topics/ud_properties_avail.html

您可以使用创建为跨其他环境共享的单个组件进行部署。但是要完成这项工作,您可能需要使用推送的概念。甚至推送应该是最佳实践!让我们看看如何做到这一点。

https://www.urbancode.com/2019/03/14/ibm-urbancode-deploy-codestation-push-or-pull/

在您的机器上下载 UCD 客户端。构建工件后,假设您有一个 EAR,XML 个文件...要部署。现在创建一个文件夹并将所有这些添加到同一文件夹中。

执行以下命令:

第 1 步:

java -jar udclient -weburl "ucd-url" -username "ucd-username" -password "ucd-password" createVersion -component "ucd-component -name" -name "VERSION_NAME"

//上面的步骤会在urban代码deploy

中的现有组件里面创建一个版本

第 2 步:

java -jar udclient -weburl "ucd-url" -username "ucd-username" -password "ucd-password" addVersionFiles -component "ucd-component -name" -version "VERSION_NAME" -base "FOLDER_WHICH_HAS_EAR_AML_FILES"

//以上步骤会将本地目录下的文件提升到UCD中组件内的版本目录下

至此以上push已经完成,你可以使用ucd的restful交互方式使用payload中的组件和版本进行部署,也可以直接登录ucd服务器&select 部署所需组件的版本。因此,使用单个组件,您可以制作不同的版本以部署在不同的服务器上。

您也可以在 bamboo、teamcity 等构建工具中使用它 - 只需确保代理中有 udclient 文件。