假设我在 UCD(Urban Code Deloy) 中配置了 4 个代理,并将名为 test_component 的组件标记为所有代理。现在我需要确保该组件仅在两个代理(节点)中运行。谁能告诉我该怎么做?另外我听说可重用组件是我们在 UCD 中需要遵循的最佳实践之一。任何人都可以指定我可以探索的任何材料。
4 回答
你的意思是组件映射到代理?您实际上可以将标签添加到资源或组件。(添加到资源树的代理实际上是代表代理的资源)。然后,您可以创建一个应用程序流程,其中包含一个仅限于所选标签的步骤。更多信息在这里: 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
要创建可重用组件,请使用组件模板。您还可以使用包含环境模板的应用程序模板。
有关更多信息,请参阅:
您可以使用通用流程,甚至可以从组件或应用程序流程中调用它们。但是,如果一个进程被多个组件使用,最好创建一个组件模板并将该进程放入模板中。这样,从该组件模板继承的所有组件也都继承了该流程。(这些组件可以有其他进程,不是来自模板)。
请注意,继承的进程在组件模板中只存在一次,尽管您可以在每个派生的组件中看到它。如果从一个 Component 修改它,实际上是修改了模板中的流程,因此它会在从同一模板继承的所有其他组件中显示为已修改。
通常,您不会为每个节点创建单独的组件。节点由环境中的资源表示。您可以为每个节点或同一环境中的多个节点拥有一个单独的环境。一个应用程序可以有多个环境。开发您的流程以便它们可以应用于任何环境是一种很好的做法。对于依赖于环境特性的流程的可变部分,最好使用环境属性。但是请注意,环境属性在通用进程中不可见。
通用进程的更好替代方法是操作类型的进程(不需要版本),它可以访问环境变量。
这描述了组件流程类型: 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"
//上述步骤将在城市代码部署中的现有组件内创建一个版本
第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中组件内的版本目录
现在上面的推送已经完成,你可以使用 ucd 的 restful 交互方式使用 payload 中的组件和版本进行部署,也可以直接登录 ucd 服务器并从需要部署的组件中选择版本。因此,使用单个组件,您可以制作不同的版本以部署在不同的服务器中。
您也可以在竹子、teamcity 等构建工具中使用它——只要确保代理中有 udclient 文件即可。