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配置:
- 查找组成每个应用程序的所有组件,流程和资源。
- 在备份应用程序本身之前,请备份每个单独的项目。
使用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文件的路径 |
结合run
和requestStatus
动作。 传递JSON文件后,将请求应用程序进程(由run
操作定义)并等待其完成。
runAndWait
操作会在控制台中打印应用程序处理请求的每个状态更改(例如,从PENDING
到EXECUTING
到CLOSED
)。 当进程完成(退出代码runAndWait
)或代理不在线(退出代码100)时, runAndWait
操作退出。
行动 | 细节 |
---|---|
waitRequestCompletion | 轮询请求直到完成,然后返回完成状态。 |
必需:-- --process | 流程请求的ID |
可选:-- --timeout | 以分钟为单位的超时 |
等待应用程序过程完成,然后退出并返回过程结果。 有关退出代码的列表,请参阅requestStatus
表 。
UrbanCode配置操作
行动 | 细节 |
---|---|
addVersionFiles | 将文件添加到组件版本。 |
需要: --base | 组件名称 组件版本名称 要上传文件的基本目录 |
可选的: --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
规则。 例如,如果一个元素同时被include
和exclude 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 | 分叉现有应用程序以创建具有不同后缀的新副本。 |
需要: | 应用名称或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
操作。 如果不这样做,可能会导致意外结果。
使用promoteConfig
或promoteApplication
行动,以导入配置为不为空的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
操作;建议不要将其运行。 使用promoteConfig
或promoteApplication
行动来代替。
行动 | 细节 |
---|---|
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文件的路径,描述了要创建的环境的详细信息。 |
如果发生以下情况之一, 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文件导入到现有环境中。 |
需要: | 使用 |
当将环境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 ,则不会导入环境。 |
可选的: | 如果提供了目录,请从那里还原配置。 如果设置为 |
该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 | 创建一个新的组件版本。 |
需要: | 组件名称或组件ID 版本名称 |
可选:-- --description | 版本说明 |
createVersion
操作会在给定组件名称和版本名称的情况下创建组件版本。 如果版本已经存在,则操作失败。
注意 :此API不会将文件(工件)添加到版本中。
行动 | 细节 |
---|---|
createVersionAddFiles | 创建一个新的组件版本并添加工件文件。 |
需要: | 组件名称 组件版本名称 要上传文件的基本目录 |
可选的: | 以逗号分隔的文件列表,包括在上载中 以逗号分隔的文件列表,不包含在上载中。 这优先于包含。 |
将动作createVersion
与动作addVersionFiles
结合addVersionFiles
。 当将组件名称,版本和基本目录作为参数传递时,将创建新的组件版本,并将随附的工件附加到基本目录中。 使用include
和exclude
选项,可以过滤要上传到版本的文件。
行动 | 细节 |
---|---|
c | 获取一个包含快照配置PHP或JSON文件。 获取列出的组件版本并创建它们。 之后,它将创建快照。 这还将文件(工件)添加到创建的组件版本中。 |
必需:-- --file | 快照配置文件(PHP或JSON) |
组合动作createSnapshot
和createVersion
。 当作为参数传递时,快照JSON文件(如附录中所定义)将创建缺少的组件版本,上传工件并创建快照。
注意 :如果所有组件版本或快照已经存在,则创建失败。
行动 | 细节 |
---|---|
setSnapshotStatus | 设置快照状态。 状态可以是“通过”或“失败”。 |
需要: | 快照名称 快照状态:已通过| 失败的 |
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中使用的别名。 |
可选的: | 用作默认名称的别名 用作目的地的别名 用作来源的别名 |
行动 | 细节 |
---|---|
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