使用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配置:
- 查找组成每个应用程序的所有组件,流程和资源。
- 在备份应用程序本身之前,请备份每个单独的项目。
使用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
|
将文件添加到组件版本。 |
需要:
|
组件名称 组件版本名称 要上传文件的基本目录 |
可选的:
|
以逗号分隔的文件列表,包括在上载中 以逗号分隔的文件列表,不包含在上载中。 这优先于包含。 |
行动 | 细节 |
---|---|
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文件的路径,描述了要创建的环境的详细信息。 |
环境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或名称 |
当将环境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
使用uCommand执行复杂的任务相关推荐
- 设置普通用户执行docker命令,执行docker命令无需输入密码或者切换root用户
每次执行docker命令都要输入密码或者切换root用户,非常不方便,尤其是在shell脚本中就更麻烦了,一起来解决这个问题: 1. 创建名为docker的组,如果之前已经有该组就会提示已存在: su ...
- 终止js程序执行的方法
js终止程序执行的方法共有三种 (一)在function里面(普通js方法) (1)return; (2)return false; (二)非function方法里面(如ajax方法) alert(& ...
- python程序如何执行死刑图片_如何判断对象已死
已死的对象就是不可能被任何途径使用的对象,有以下几种方法判断一个对象是否已经死了: 引用计数 给对象添加一个引用计数器,每当有一个地方引用他,计算器就加 1:当引用失效时,计数器减 1:任何时刻计数器 ...
- Redis 笔记(16)— info 指令和命令行工具(查看内存、状态、客户端连接数、监控服务器、扫描大key、采样服务器、执行批量命令等)
Info 命令返回关于 Redis 服务器的各种信息和统计数值.通过给定可选的参数 section ,可以让命令只返回某一部分的信息. 1. 显示模块 server : 一般 Redis 服务器信息, ...
- Redis 笔记(08)— 事务(一次执行多条命令、命令 watch/multi/exec/discard、错误处理)
1. 事务概念 Redis 中的事务 (transaction)是一组命令的集合.事务同命令一样是 Redis 的最小执行单位,一个事务中的命令要么都执行,要么都不执行.事务的原理是先将属于一个事务的 ...
- Pyinstaller 打包 torch 后执行失败 OSError: could not get source code
1. 问题现象 系统环境 Python 3.6.9 torch 1.2.0 torchvision 0.4.0 Pyinstaller 4.5.1 Pyinstaller 打包 torch 后执行失败 ...
- Go 知识点(01)— 主协程与子协程执行顺序
下面代码的输出结果是什么? package mainimport ("fmt" )func main() {for i := 0; i < 10; i++ {go func( ...
- 浅显易懂 Makefile 入门 (10)— 嵌套执行 make、export 的使用
1. 嵌套执行 make 在一个大的工程文件中,不同的文件按照功能被划分到不同的模块中,每个模块可能都会有自己的编译顺序和规则,如果在一个 Makefile 文件中描述所有模块的编译规则,就会很乱,执 ...
- 浅显易懂 Makefile 入门 (08)— 默认 shell (/bin/sh)、命令回显、make参数(-n 只显示命令但不执行,-s 禁止所有回显)、单行命令、多行命令、并发执行
1. shell 相关 1.1 默认 shell Makefile 所使用的命令是由 shell 命令行组成,他们是一条一条执行的. 多个命令之间要使用分号隔开,Makefile 中的任何命令都要以 ...
- STL库(C++11)提供的异步执行方法的方式
在进行并发编程的时候难免会遇到异步执行时候,现代C++标准库提供了几种异步执行的方式,本文收集整理了一下,以备将来翻阅. Thread方式 Thread 是STL提供的一种快捷创建线程的方式,极大方便 ...
最新文章
- unet3 动态分辨率支持
- 海外IDC数据中心为什么要做REITs
- python类方法是什么_python类方法和普通方法区别是什么
- Centos 7 mysql Buffered warning: Changed limits: max_connections: 214 解决方法
- 【Qt】QModbusExceptionResponse类
- 探索比特币源码0-bitcoin的编译
- 计算机二级公共,计算机二级公共基础知识
- Java接口的几种常见用法
- 奥运奖牌计数(信息学奥赛一本通-T1064)
- X86汇编语言从实模式到保护模式20:平坦模型
- PetShop 4.0知识点:base 关键字用于从派生类中访问基类的成员
- 计算机表格填充,Excel表格中数据填充功能的使用方法
- 【Minecraft】建立Bukkit/Spigot插件实时调试环境,并避免断点调试时客户端断开连接
- oracle 70个常用函数
- 介绍一下xgb_XGB羽毛球app
- esp8266 mesh 组网
- Springboot实现热启动、热部署
- Consider marking one of the beans as @Primary, updating the consumer to accept multiple beans,报错解决
- 中国能跑出来自己的Salesforce吗?
- 决策树中的CART树
热门文章
- 学习笔记(30):Google开发专家带你学 AI:入门到实战(Keras/Tensorflow)(附源码)-模型微调(青出于蓝胜于蓝)
- Go:实现Abs绝对值函数 (附完整源码)
- MySQL8.0备份与还原工具讲解----mysqlbackup篇
- 【windows——工具篇】哔哩哔哩快捷键
- Matlab读取股票数据
- 共用体union与枚举enum(C++)
- Navicat 将 psc备份文件还原
- Keil C51对C语言的关键词扩展之八: far
- Python恶搞搞机程序弹窗
- K3 CLOUD组织间结算取价指引