使用uCommand执行复杂的任务

uCommand是一个CLI工具,提供了易于使用的功能以与IBM®UrbanCode Deploy一起使用。 您可以从UrbanCode开发人员中心插件部分下载uCommand。

使用UrbanCode Deploy时,大多数交互都是通过Web界面进行的。 要将UrbanCode集成到更广泛的管道结构中,在此结构中所有事物都已连接并自动化,您需要一种可靠的方式来通过CLI执行操作。

UrbanCode Deploy带有官方的CLI工具(udclient)。 但是,udclient缺少重要的功能,例如备份,还原和升级UrbanCode配置或请求等待完成的应用程序进程的可能性。

uCommand旨在填补这些空白。 它为预定义功能提供了简单的操作,并为大多数UrbanCode Deploy API提供了PHP实现。 易于设置和使用。 uCommand需要UrbanURL服务器的Web URL,用户名和身份验证令牌。 设置向导可帮助您在首次启动时配置工具,包括创建用于安全连接到服务器的授权令牌。

功能性

uCommand的一些优点包括:

  • 使用方便
  • 开发人员准备就绪
  • 提供的常用动作
  • 易于自动化UrbanCode Deploy任务

由于该工具基于UrbanCode Deploy udclient和REST API构建,因此您无需运行大量命令即可执行特定操作。

例如,要使用udclient和REST API手动备份UrbanCode Deploy配置:

  1. 查找组成每个应用程序的所有组件,流程和资源。
  2. 在备份应用程序本身之前,请备份每个单独的项目。

使用uCommand,这些手动步骤可以组合在一起。 要执行完整的备份,您不需要知道配置的每个元素之间的关系; 只需运行一个命令:

php ucommand.php backup

使用uCommand,您可以:

  • 备份服务器配置。
  • 将服务器配置恢复到具有相同IBM UrbanCode Deploy发行版的服务器。
  • 在多个UrbanCode Deploy服务器之间共享UrbanCode Deploy配置。
  • 为包含可部署工件的组件创建版本。
  • 将版本集合捆绑到一个可以一起部署的快照中。
  • 将快照从一台服务器升级到另一台服务器。
  • 运行部署过程。

本文使用带有相关组件和过程的简单UrbanCode Deploy应用程序:

  • 名称 :灯
  • 描述 :部署LAMP服务器的应用程序
  • 组成部分
    • 阿帕奇
    • 的MySQL
    • PHP
  • 流程 :部署

备份和还原UrbanCode Deploy配置

默认情况下,UrbanCode Deploy不提供备份和还原其整个配置的工具。 但是,uCommand提供了一些简单的操作来运行以下任务:

php ucommand.php --action=backup
php ucommand.php --action=restore --dir={{backup_directory}}

共享配置和工件

uCommand设计用于一台或多台UrbanCode Deploy服务器。 备份期间导出的文件可以在同一UrbanCode Deploy服务器中还原。 这些也可以轻松地同时与其他UrbanCode Deploy服务器共享。

使用uCommand,您可以与其他团队共享数据,从单个组件到整个配置,甚至是快照及其依赖项(工件文件)。

还可以将精确的配置和数据复制到多个服务器中,以执行与源服务器完全相同的部署。 这是一个例子:

使用uCommand共享配置和工件

要将应用程序从一个UrbanCode原始服务器共享到目标服务器:

php ucommand.php
  --action=promoteApplication
  --application{{application_name}}

共享快照,包括其工件:

php ucommand.php
  --action=promoteSnapshot
  --snapshot={{snapshot_name}}

运行申请流程

UrbanCode Deploy主要通过Web界面使用。 但是,在某些情况下,应该自动执行部署或在脚本中运行部署,例如,UrbanCode Deploy需要在部署自动化管道中或从不提供用户界面的服务器CLI中自动运行。

使用uCommand,您可以使用参数(应用程序名称,进程名称,属性等)运行应用程序进程。 uCommand还提供了易于使用的操作来请求执行应用程序进程并等待其完成。 完成后将返回部署的成功或失败:

php ucommand.php
  --action=runAndWait
  --file={{request_json_file}}

请求JSON文件包含以下信息:

{
    "application": "APPLICATION_NAME",
    "applicationProcess": "APPLICATION_PROCESS",
    "description": "GENERIC_DESCRIPTION",
    "environment": "ENVIRONMENT_TO_DEPLOY",
    "onlyChanged": "APPLY_CHANGED_VERSIONS_ONLY",
    "post-deploy-message": "MESSAGE_POST_DEPLOYMENT",
    "snapshot": "SNAPSHOT_NAME"
}

您可以将uCommand用作CLI工具,以从持续集成/连续交付(CI / CD)管道运行部署。

设置uCommand

uCommand使用PHP编写的包装脚本,该脚本结合了udclient和REST API,以便用户可以执行日常操作。 该工具首先生成API请求,将登录信息(Web URL,用户名,身份验证令牌)与要执行的操作和相关参数结合在一起。 然后,通过PHP exec函数在CLI中执行生成的请求。

uCommand不仅为可用的UrbanCode API提供了一个PHP层,而且将它们组合在一起以创建更复杂的功能。 这意味着,对于某些操作,将依次调用多个API,并将结果组合在一起。

ucommand.php

ucommand.php是可执行PHP脚本,可触发该工具中可用的众多操作,以在UrbanCode Deploy中检索或创建数据。

它负责:

  • 对象实例
  • 配置设置
  • 参数验证
  • 执行动作
  • 救命

动作”部分提供了uCommand可以执行的可用动作的列表。

配置uCommand

uCommand带有一组默认设置,尽管正确执行该工具需要某些服务器特定的值。 配置文件位于工具的config子目录中。

设定精灵

可以使用安装脚本来帮助您进行uCommand配置。 从uCommand主目录运行安装脚本:

cd {{ucommand_directory}}
php ucommand.php --action=setup

系统将指导您完成一系列配置步骤,包括请求身份验证令牌以安全连接到UrbanCode Deploy服务器。 安装程序还会检查是否满足所有先决条件才能正确运行uCommand。

安装脚本会在config / servers /文件夹中生成服务器配置文件。 该文件以您提供的别名命名:

alias: '{{my_server}}'
file: '{{my_server}}.server.php'

可以保存多个服务器配置,然后选择要使用的服务器配置。

选择要与uCommand一起使用的服务器配置:

php ucommand.php
  --action=config
  --alias={{alias_name}}

运行uCommand

为了正常工作,uCommand要求:

  • PHP 5.4以上
  • Java 1.6.0以上
  • 读取,写入和执行整个uCommand文件夹的权限
  • 有效配置

要执行任何操作,请在完成所有设置后运行以下命令:

cd {{UCOMMAND_DIRECTORY}}
php ucommand.php
  --action={{ACTION}}
  --{{argument_2}}={{VALUE_2}}
  ...

该操作的结果是CLI或文件中的输出。 这基于配置文件中设置的输出类型。 带有反馈的日志信息也可用于每个操作。 此信息包括操作成功或失败的通知。

动作

uCommand有许多可用的操作。 要求采取行动:

php ucommand.php
  --action={{ACTION}}
  --{{argument_1}}={{VALUE_1}}
  --{{argument_2}}={{VALUE_2}}
  ...

注意:指定参数的顺序与正确执行操作无关。

对于每个受支持的操作,uCommand都会提供联机帮助,并提供有关使用该工具的详细信息。 要获得特定操作的帮助,请执行以下操作:

php ucommand.php
  --action={{ACTION}}
  --help

申请流程动作

行动 细节
requestStatus 返回请求进程的当前状态
必需:-- --process 流程请求的ID

当将应用程序进程请求标识作为参数传递时,将返回进程的状态:

  • 0-成功完成
  • 2-已初始化
  • 3-执行
  • 4-待处理
  • 5 –已取消
  • 100-代理未在线
  • 255-失败完成

可以从Web浏览器中的UrbanCode Deploy URL获取应用程序请求ID。

{{SERVER_URL}}/#applicationProcessRequest/82d6119e-b9fd-4396-9cee-7cc484be4d77

或者,可以从uCommand action run的CLI输出中获取ID。

行动 细节
run 根据作为参数传递的JSON文件中设置的详细信息请求应用程序进程
必需:-- --file 申请流程请求JSON文件的路径

运行在JSON文件中定义的应用程序过程,如下所示:

{
 "application": {{APPLICATION_NAME}},
   	"applicationProcess": {{APPLICATION_PROCESS}},
   	"description": {{GENERIC_DESCRIPTION}},
   	"environment": {{ENVIRONMENT_TO_DEPLOY}},
   	"onlyChanged": {{APPLY_CHANGED_VERSIONS_ONLY}},
   	"post-deploy-message": {{MESSAGE_POST_DEPLOYMENT}},
   	"snapshot": {{SNAPSHOT_NAME}},
 "properties" : {
    {{PROPERTY}} : {{VALUE}}
  }
}

如果应用程序过程需要运行一个或多个属性,则可以在JSON文件的properties值中列出并定义这些properties

行动 细节
runAndWait 根据作为参数传递的JSON文件中设置的详细信息,请求应用程序进程。 轮询请求,直到完成。 返回完成状态。
必需:-- --file 申请流程请求JSON文件的路径

结合runrequestStatus动作。 传递JSON文件后,将请求应用程序进程(由run操作定义)并等待其完成。

runAndWait操作会在控制台中打印应用程序处理请求的每个状态更改(例如,从PENDINGEXECUTINGCLOSED )。 当进程完成(退出代码runAndWait )或代理不在线(退出代码100)时, runAndWait操作退出。

行动 细节
waitRequestCompletion 轮询请求直到完成,然后返回完成状态。
必需:-- --process 流程请求的ID
可选:-- --timeout 以分钟为单位的超时

等待应用程序过程完成,然后退出并返回过程结果。 有关退出代码的列表,请参阅requestStatus

UrbanCode配置操作

行动 细节
addVersionFiles 将文件添加到组件版本。
需要:

--component

--version

--base

组件名称

组件版本名称

要上传文件的基本目录

可选的:

--include

--exclude

以逗号分隔的文件列表,包括在上载中

以逗号分隔的文件列表,不包含在上载中。 这优先于包含。

行动 细节
backup 运行UrbanCode Deploy的完整备份。
备份输出是保存在结构良好的文件夹中的JSON文件列表。

备份不需要任何特定的配置。 导出的JSON文件将保存到ucd.config.php配置文件中定义的输出文件夹中。 输出文件夹的结构为:

导出目录

  • 应用领域
    • 应用名称
      • 组件
      • APPLICATION_NAME.json
  • 蓝图
  • 组件
  • componentTemplates
  • 流程
  • 资源
  • resourceTemplates
  • 设定
行动 细节
cleanAll 从与配置文件clean.config.php中定义的特定模式匹配的未使用数据中清除UrbanCode Deploy服务器。

在配置了clean.config.php文件(示例请参阅附录 )之后, cleanAll将采用此文件中定义的规则,并验证UrbanCode Deploy配置中的哪些元素与该规则匹配。

特别是, cleanAll验证UrbanCode Deploy配置的元素名称是否包含在配置文件的include部分中定义的特定模式。 如果元素名称与模式匹配,则将其删除。

exclude规则优先于include规则。 例如,如果一个元素同时被includeexclude rules所匹配,则不会从服务器中清除该元素。

例如,配置(提取):

$config['include']['component'] = ".DEV";
$config['exclude']['component'] = ".TEST";
$config['include']['application'] = ".APP";
组件名称 清洁后
DeployPHP.DEV 已删除 (匹配".DEV"
DeployPHP.APP 未删除".APP"仅指应用程序)
DeployPHP.DEV.TEST 未删除 (匹配排除项".TEST"
DeployPHPDEV 删除 (模式不匹配)

如果没有为特定配置元素定义任何规则,则为包括和排除都定义一个默认规则:

$config['include']['default']
$config['exclude']['default']

position参数定义了应将给定模式放置在何处,以便被视为匹配。

位置值为:

  • start :模式在名称的开头
  • end :模式在名称的结尾
  • empty :模式在名称中的任何位置

配置(提取)示例如下:

$config['include']['component'] = ".DEV";
$config['exclude']['component'] = ".TEST";
$config['include']['position'] = "end";
$config['exclude']['position'] = "";
组件名称 清洁后
DeployPHP.DEV 已删除 (名称末尾匹配".DEV"
DeployPHP.DEV.Deploy 未删除".DEV"不在名称末尾)
DeployPHP.TEST.DEV 未删除 (即使".DEV"位于名称的末尾,也与排除项".TEST"匹配,该名称可以在名称中的任何位置)
DeployPHP.DEV.TEST 未删除 (匹配排除项".TEST"".DEV"不在名称的末尾)
行动 细节
forkApplication 分叉现有应用程序以创建具有不同后缀的新副本。
需要:

--application

--old

--new


应用名称或ID

旧应用后缀

新的应用程序后缀

要派生一个应用程序,请将完全相同的应用程序复制到同一UrbanCode Deploy服务器中。 在应用程序名称和组件名称的末尾添加一个新的后缀。

在由于开发原因而有必要为UrbanCode Deploy开发新功能而又不冒破坏有效配置集风险的情况下,这可能很有用。

操作forkApplication获取应用程序名称和旧的后缀,以定义该应用程序及其相关组件和通用过程,然后创建它们的精确副本。 旧的后缀将替换为新的后缀。

例如,使用以下应用程序:

  • 应用名称:LAMP_v1
  • 组件:
    • Apache_v1
    • MySQL_v1
    • PHP_v1
  • 通用过程:Deploy_v1

运行命令:

php ucommand.php
  --action=forkApplication
  --application=LAMP_v1
  --old="_v1"
  --new="_v2"

结果创建:

  • 应用名称 :LAMP_v2
  • 组成部分
    • Apache_v2
    • MySQL_v2
    • PHP_v2
  • 通用过程 :Deploy_v2
行动 细节
restore 从结构化的文件夹中运行UrbanCode Deploy的完整还原。 文件夹结构与备份过程生成的相同。
必需:-- --dir 恢复的源路径
可选:- --environments 如果设置为“ true”,请导入应用程序随附的环境。

restore操作将重新创建已从第一台UrbanCode Deploy服务器导出到第二台UrbanCode Deploy服务器的UrbanCode Deploy配置,并使用一个由backup操作定义的文件夹作为参数。

建议对干净且空的UrbanCode Deploy服务器运行restore操作。 如果不这样做,可能会导致意外结果。

使用promoteConfigpromoteApplication行动,以导入配置为不为空的UrbanCode部署服务器。

行动 细节
restoreApplication 从JSON文件还原应用程序,或从文件夹还原应用程序及其组件。
必需:-- --file 应用程序JSON文件的路径或应用程序文件夹的路径。

应用程序JSON文件应该是备份操作提供的文件。 这是由UrbanCode Deploy Web UI中的导出按钮生成的文件。

不建议对已经包含您要导入的应用程序的UrbanCode Deploy服务器运行restore操作;建议不要将其运行。 请改用promoteApplication操作。

行动 细节
restoreComponent 从JSON文件还原组件,然后创建它。
必需:-- --file 组件JSON文件的路径。

组件JSON文件应该是backup操作提供的文件。 这是由UrbanCode Deploy Web UI中的导出按钮生成的文件。

不建议对已经包含您要导入的应用程序的UrbanCode Deploy服务器运行restore操作;建议不要将其运行。 使用promoteConfigpromoteApplication行动来代替。

行动 细节
restoreComponentTemplate 从JSON文件还原组件模板,然后创建它。
必需:-- --file 组件模板JSON文件的路径。

组件模板JSON文件应该是backup操作提供的文件,该文件与UrbanCode Deploy Web UI的导出按钮生成的文件相同。

行动 细节
upgradeApplication 从JSON文件升级现有应用程序,或从文件夹升级应用程序及其组件。 如果目标UrbanCode Deploy服务器中缺少该应用程序(和相关组件),则创建该应用程序。
必需:-- --file 应用程序JSON文件或应用程序文件夹的路径。

应用程序JSON文件应该是backup操作提供的文件,它与UrbanCode Deploy Web UI的导出按钮生成的文件相同。 升级包括环境,但不包括资源模板和蓝图。

行动 细节
upgradeComponent 从JSON文件升级现有组件。 如果目标UrbanCode Deploy服务器中缺少该组件,则创建该组件。
必需:-- --file 组件JSON文件的路径。

组件JSON文件应该是backup操作提供的文件,它与UrbanCode Deploy Web UI的导出按钮生成的文件相同。

行动 细节
upgradeComponentTemplate 从JSON文件升级组件模板。 如果组件模板不在目标UrbanCode Deploy服务器中,则将创建它。
必需:-- --file 组件模板JSON文件的路径。

组件模板JSON文件应该是backup操作提供的文件,该文件与UrbanCode Deploy Web UI的导出按钮生成的文件相同。

环境行动

行动 细节
createEnvironment 根据作为参数传递的JSON文件的内容创建一个新环境。
必需:-- --file JSON文件的路径,描述了要创建的环境的详细信息。

环境JSON文件的结构应与模板中定义的环境创建相同

如果发生以下情况之一, createEnvironment操作将失败:

  • 应用程序不存在
  • 环境名称已存在
  • 蓝图没有退出
  • 基础资源不存在
行动 细节
exportEnvironmentProperties 导出环境属性并将其保存到JSON文件中。
必需:- --environment 环境ID或名称
可选:-- --application 申请编号或名称

当将环境ID作为参数传递时,uCommand会将环境属性导出到JSON文件中。 如果传递了环境名称,则还需要应用程序名称。 如果多个组件使用相同的值,则将属性组合到一个文件中。 如果将属性设置为安全 ,则该值将导出为四星(****),以避免暴露密码。 例如:

{
"propertyName":"PROPERTY_NAME",
"value":"PROPERTY_VALUE",
"secure":false,
"components":[
"COMPONENT_1",
"COMPONENT_2",
"COMPONENT_3"
]
},
{
"propertyName":"PROPERTY_NAME",
"value":"****",
"secure":true,
"components":[
"COMPONENT_1"
]
},
行动 细节
importEnvironmentProperties 将环境属性从导出的JSON文件导入到现有环境中。
需要:

--file

--environment


使用exportEnvironmentProperties导出的JSON文件的exportEnvironmentProperties

环境ID或名称

当将环境ID作为参数传递时,uCommand将环境属性导入到JSON文件中。 如果传递了环境名称,则还需要应用程序名称。 JSON文件的结构应按照动作exportEnvironmentProperties定义进行构造。 可以设置任何属性值,每个属性一个,一组批次一个。

如果安全属性值设置为****(屏蔽的安全值),则uCommand无法导入它,它将中止操作,提示用户执行操作。 要导入安全属性值,用户需要手动将其设置为JSON文件。

警告 :在JSON文件中手动设置的任何安全属性值(例如密码)均以纯文本形式显示。 导入后,UrbanCode Deploy会加密这些值,并从Web UI中隐藏它们。 我们建议您在导入后清理JSON文件,以避免任何数据泄露。

促销行动

升级操作需要一个有效的promote.config.php文件:

php ucommand.php
  --action=config
  --origin={{ORIGIN_ALIAS}}
  --destination={{DESTINATION_ALIAS}}

按照设置uCommand中的定义使用别名。

这两个别名都需要有效的配置,并且应该在/ config / servers文件夹中可用。

行动 细节
promoteApplication 将应用程序从一台UrbanCode Deploy服务器升级到另一台。
必需:- --application 应用名称或ID

当将应用程序名称作为参数传递时,uCommand会验证该应用程序是否可从源服务器获取,导出该应用程序并将其导入到目标服务器。

如果目标UrbanCode Deploy服务器中缺少该应用程序,则创建该应用程序; 否则,将升级现有应用程序。

promoteApplication操作将导入或升级应用程序随附的所有组件,组件模板,流程,资源模板和蓝图。 环境将不会导入。

行动 细节
promoteConfig 将整个UrbanCode Deploy配置从一台服务器升级到另一台服务器。 如果可选参数设置为clean ,则不会导入环境。
可选的:

--dir

--environments


如果提供了目录,请从那里还原配置。

如果设置为true ,则导入应用程序随附的环境。

promoteConfig动作下载从源服务器整个UrbanCode部署配置(如完成backup操作)。 然后将配置导入到目标服务器。 它涵盖了以下方面的推广:

  • 应用领域
  • 组件
  • 资源模板
  • Craft.io流程
  • 环境(除非设置了clean参数)

创建缺少的元素。 现有元素已升级。

行动 细节
promoteResourceTemplate 提升资源模板的名称或ID。
必需:-- --template 资源模板名称或ID

当将资源模板名称或ID作为参数传递时,uCommand从原始服务器导出资源模板,然后将资源模板导入到目标服务器。

如果目标服务器中不存在资源模板,则将创建该模板; 否则,将对其进行升级以反映与原始服务器相同的结构。

行动 细节
promoteSnapshot 根据配置文件中设置的详细信息,将快照从一台UrbanCode Deploy服务器升级到第二台。 此处包含组件版本的创建。
必需:- --snapshot 快照名称
可选:-- --force 如果设置为true ,则即使所有组件版本均已存在,也会强制创建快照。

当两台UrbanCode Deploy服务器上具有相同的应用程序时,uCommand可以:

  • 检查服务器配置文件中为promove.config.php中设置的别名定义的应用程序是否在两个服务器中都存在
  • 检查目标服务器中是否所有必需的组件都可用
  • 检查目标服务器中快照是否尚不可用
  • 从原始服务器(包括工件)导出快照
  • 在目标服务器的快照中创建列出的组件版本
  • 上载与组件版本相关的所有工件
  • 在目标服务器中创建快照

如果目标服务器中已经存在所有组件版本,则不会创建快照,除非您设置参数force

快照和版本控制操作

行动 细节
createSnapshot 基于JSON文件创建快照。
JSON文件应包含有关快照名称,应用程序和组件版本列表的信息。
必需:- --snapshot 快照JSON文件

createSnapshot操作基于作为参数传递的JSON文件中定义的描述创建快照。 有关所需的JSON文件示例,请参见附录

如果UrbanCode Deploy服务器缺少JSON文件中列出的组件版本,则快照创建失败。

行动 细节
createVersion 创建一个新的组件版本。
需要:

--component

--version


组件名称或组件ID

版本名称

可选:-- --description 版本说明

createVersion操作会在给定组件名称和版本名称的情况下创建组件版本。 如果版本已经存在,则操作失败。

注意 :此API不会将文件(工件)添加到版本中。

行动 细节
createVersionAddFiles 创建一个新的组件版本并添加工件文件。
需要:

--component

--version

--base


组件名称

组件版本名称

要上传文件的基本目录

可选的:

--include

--exclude


以逗号分隔的文件列表,包括在上载中

以逗号分隔的文件列表,不包含在上载中。 这优先于包含。

将动作createVersion与动作addVersionFiles结合addVersionFiles 。 当将组件名称,版本和基本目录作为参数传递时,将创建新的组件版本,并将随附的工件附加到基本目录中。 使用includeexclude选项,可以过滤要上传到版本的文件。

行动 细节
c 获取一个包含快照配置PHP或JSON文件。 获取列出的组件版本并创建它们。 之后,它将创建快照。 这还将文件(工件)添加到创建的组件版本中。
必需:-- --file 快照配置文件(PHP或JSON)

组合动作createSnapshotcreateVersion 。 当作为参数传递时,快照JSON文件(如附录中所定义)将创建缺少的组件版本,上传工件并创建快照。

注意 :如果所有组件版本或快照已经存在,则创建失败。

行动 细节
setSnapshotStatus 设置快照状态。 状态可以是“通过”或“失败”。
需要:

--snapshot

--status


快照名称

快照状态:已通过| 失败的

setSnapshotStatus操作将快照设置为“通过”或“失败”。 这意味着快照将根据已作为参数传递的状态进行重命名,例如:

php ucommand.php
  --action=setSnapshotStatus
  --snapshot="TestSnapshot"
  --status="PASSED"

结果将快照重命名为TestSnapshot_PASSED。

如果已经设置了快照,则setSnapshotStatus操作将接受带有或不带有状态的快照名称,例如:

php ucommand.php
  --action=setSnapshotStatus
  --snapshot="TestSnapshot_FAILED"
  --status="PASSED"

和:

php ucommand.php
  --action=setSnapshotStatus
  --snapshot="TestSnapshot"
  --status="PASSED"

都成功,并生成快照TestSnapshot_PASSED。

杂项行动

本节列出了不属于本文已经讨论的任何类别的操作。

要创建团队,请在UrbanCode部署设置页面上单击安全性 > 团队

使用addTeamToComponent将团队关联到组件。 如果未指定名称或ID,则会添加所有可用组件。

行动 细节
addTeamToComponent 向团队添加一个组件。 如果未将组件名称/ ID作为参数传递,则UrbanCode Deploy中所有可用的组件都将添加到团队中。
必填: --team 队伍名称或编号
可选:-- --component 组件名称或ID

使用addTeamToResource将团队与特定资源相关联。 如果未设置资源名称/ ID,则团队将与UrbanCode Deploy中的所有可用资源相关联。

行动 细节
addTeamToResource 向团队添加资源。 如果没有将资源作为参数传递,则UrbanCode Deploy中可用的所有资源都将添加到团队中。
必填: --team 队伍名称或编号
可选:-- --resource 资源名称或ID

addTeamToAll适用于以下元素:

  • 代理商
  • 代理池
  • 应用领域
  • 云连接
  • 组件
  • 组件模板
  • 环境环境
  • Craft.io流程
  • 资源资源
  • 资源模板
行动 细节
addTeamToAll 将团队分配给整个UrbanCode Deploy配置。
必填: --team 队伍名称或编号

使用config ,可以将每个别名设置为在uCommand中用于默认操作(别名)和升级操作(目的地和来源)。 您可以同时设置一个或多个。 必须输入有效的别名。

行动 细节
config 配置要在uCommand中使用的别名。
可选的:

--alias

--destination

--origin


用作默认名称的别名

用作目的地的别名

用作来源的别名


行动 细节
ver 打印有关uCommand和受支持的UrbanCode Deploy版本的信息。

结论

在本文中,您学习了如何检索,配置和使用uCommand作为命令行工具在UrbanCode Deploy上执行操作。 使用提供的详细API,您学习了如何执行基本任务以及如何使用UrbanCode Deploy服务器管理复杂的任务集。 有了这些知识,您就可以从命令行终端和Web UI进行工作。 uCommand使您可以通过一个命令灵活地执行复杂的任务。 使用uCommand,您可以轻松地在服务器之间复制数据,并与他人快速共享现有应用程序。

附录

查找示例,模板和升级值。

ucd.config.php的示例

<?php
// Urban Code Deploy settings
$config['alias'] = 'template';

// Path where Urban Code Deploy client is saved
$config['udcpath'] = '';

/* * Path where to save the results* If NOT Set, will be defaulted to: %path_to_current_working_directory%/backups/
$config['output'] = '';

// Path for JAVA HOME
$config['java_home'] = '/usr/lib/j2sdk1.6-ibm/';

// Silent mode for outputs
$config['silent'] = false;

// Run a scan of exported files and verify that are valid JSON
$config['json_check'] = false;

// CURL settings for secure connection
$config['insecure'] = true;
$config['certificate'] = '';

/* * Implement Component::Process Steps - Impersonation * Impersonation actions configuration is set up in: /udclient/config/ucd.impersonation.config.php */
$config['apply_impersonation'] = false;
?>

template.server.php配置文件示例

<?php
$config = array (
    'alias' => 'template',
    'weburl' => 'https://myucdserver.example.com:8443',
    'username' => 'username@email.com',
    'authtoken' => 'abcd1234-abcd-1234-abcd-abcd12345678',
    'application' => 'MyApplication',
    'environment' => 'MyEnvironment'

);

例如promote.config.php

<?php
$config = array();
$config['origin_alias'] = 'ALIAS_NAME';
$config['destination_alias'] = 'ALIAS_NAME';

环境属性文件示例

[
  {
    "propertyName":"Property_Name",
    "value":"Property_Value",
    "secure":false,
    "components":[
      "Component_Name"
	]
  },
  {
    "propertyName":"Property_Name_Multiple_Components",
    "value":"Property_Value",
    "secure":false,
    "components":[
      "Component_Name_1",
      "Component_Name_2"
    ]
  },
  {
    "propertyName":"Property_Name_Secure",
    "value":"****",
    "secure":true,
    "components":[
      "Component_Name_1",
      "Component_Name_2"
    ]
  }]

快照创建示例

$ snapshot作为数组的必需内容:

$snapshot [ 'snapshot' ] [ 'name' ] = SNAPSHOT_NAME
$snapshot [ 'application' ] = APPLICATION_NAME
$snapshot [ 'snapshot' ] [ 'description' ] = SNAPSHOT_DESCRITPTION
$snapshot [ 'components' ] = array ( COMPONENT => VERSION )
$snapshot [ 'artifacts' ] = array ( 
COMPONENT => array (
'base' = BASE_DIRECTORY,
'include' = array ( INCLUDED_FILES_AND_DIRECTORIES ),
'exclude' = array ( EXCLUDED_FILES_AND_DIRECTORIES )
)
)

$ snapshot的必需内容作为JSON文件

{ 
"snapshot" : {
	"name" : SNAPSHOT_NAME ,
	"description" : SNAPSHOT_DESCRIPTION
},
 	"application" : APPLICATION_NAME ,
	"components" : {
	COMPONENT : VERSION ,
	COMPONENT : VERSION ,
},
"artifacts" : [
{ COMPONENT : {
'base' : BASE_DIRECTORY,
'include' : { INCLUDED_FILES_AND_DIRECTORIES },
'exclude' : { EXCLUDED_FILES_AND_DIRECTORIES }
}
]

}

示例clean.config.php

/* Include in clean */
$config['clean']['include']['rule'] = 
array(
'default' => '.DEV',
'application' => '',
'component' => '',
'applicationProcess' => '',
'componentProcess' => '',
'genericProcess' => '',
'postProcessScript' => ''
);
$config['clean']['include']['position'] = '';

/* Exclude from clean */
$config['clean']['exclude']['rule'] = 
array(
'default' => '.DEV',
'application' => '',
'component' => '',
'applicationProcess' => '',
'componentProcess' => '',
'genericProcess' => '',
'postProcessScript' => ''
);
$config['clean']['exclude']['position'] = '';

创建环境的模板

{
    "application":"Your_Application_Name",
    "baseResource":"Path_For_Base_Resource",
    "blueprint":"Your_Application_Blueprint_Name",
    "name":"Your_Environment_Name"
 }

升级值

行动
USE_EXISTING_IF_EXISTS 如果模板/进程已经存在,请使用UrbanCode Deploy服务器中的模板/进程。
CREATE_NEW_IF_EXISTS 如果模板/进程已经存在,请基于作为参数传递的组件中存储的模板/进程创建一个新的模板/进程。
FAIL_IF_EXISTS 如果模板/进程已经存在,则升级过程将失败。
FAIL_IF_DOESNT_EXIST 如果模板/进程不存在,则升级过程将失败。
UPGRADE_IF_EXISTS 如果模板/进程已经存在,则使用存储在作为参数传递的组件中的模板/进程对其进行升级。

翻译自: https://www.ibm.com/developerworks/library/d-perform-complex-tasks-uCommand-trs/index.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值