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

使用uCommand执行复杂的任务相关推荐

  1. 设置普通用户执行docker命令,执行docker命令无需输入密码或者切换root用户

    每次执行docker命令都要输入密码或者切换root用户,非常不方便,尤其是在shell脚本中就更麻烦了,一起来解决这个问题: 1. 创建名为docker的组,如果之前已经有该组就会提示已存在: su ...

  2. 终止js程序执行的方法

    js终止程序执行的方法共有三种 (一)在function里面(普通js方法) (1)return; (2)return false; (二)非function方法里面(如ajax方法) alert(& ...

  3. python程序如何执行死刑图片_如何判断对象已死

    已死的对象就是不可能被任何途径使用的对象,有以下几种方法判断一个对象是否已经死了: 引用计数 给对象添加一个引用计数器,每当有一个地方引用他,计算器就加 1:当引用失效时,计数器减 1:任何时刻计数器 ...

  4. Redis 笔记(16)— info 指令和命令行工具(查看内存、状态、客户端连接数、监控服务器、扫描大key、采样服务器、执行批量命令等)

    Info 命令返回关于 Redis 服务器的各种信息和统计数值.通过给定可选的参数 section ,可以让命令只返回某一部分的信息. 1. 显示模块 server : 一般 Redis 服务器信息, ...

  5. Redis 笔记(08)— 事务(一次执行多条命令、命令 watch/multi/exec/discard、错误处理)

    1. 事务概念 Redis 中的事务 (transaction)是一组命令的集合.事务同命令一样是 Redis 的最小执行单位,一个事务中的命令要么都执行,要么都不执行.事务的原理是先将属于一个事务的 ...

  6. 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 后执行失败 ...

  7. Go 知识点(01)— 主协程与子协程执行顺序

    下面代码的输出结果是什么? package mainimport ("fmt" )func main() {for i := 0; i < 10; i++ {go func( ...

  8. 浅显易懂 Makefile 入门 (10)— 嵌套执行 make、export 的使用

    1. 嵌套执行 make 在一个大的工程文件中,不同的文件按照功能被划分到不同的模块中,每个模块可能都会有自己的编译顺序和规则,如果在一个 Makefile 文件中描述所有模块的编译规则,就会很乱,执 ...

  9. 浅显易懂 Makefile 入门 (08)— 默认 shell (/bin/sh)、命令回显、make参数(-n 只显示命令但不执行,-s 禁止所有回显)、单行命令、多行命令、并发执行

    1. shell 相关 1.1 默认 shell Makefile 所使用的命令是由 shell 命令行组成,他们是一条一条执行的. 多个命令之间要使用分号隔开,Makefile 中的任何命令都要以 ...

  10. STL库(C++11)提供的异步执行方法的方式

    在进行并发编程的时候难免会遇到异步执行时候,现代C++标准库提供了几种异步执行的方式,本文收集整理了一下,以备将来翻阅. Thread方式 Thread 是STL提供的一种快捷创建线程的方式,极大方便 ...

最新文章

  1. unet3 动态分辨率支持
  2. 海外IDC数据中心为什么要做REITs
  3. python类方法是什么_python类方法和普通方法区别是什么
  4. Centos 7 mysql Buffered warning: Changed limits: max_connections: 214 解决方法
  5. 【Qt】QModbusExceptionResponse类
  6. 探索比特币源码0-bitcoin的编译
  7. 计算机二级公共,计算机二级公共基础知识
  8. Java接口的几种常见用法
  9. 奥运奖牌计数(信息学奥赛一本通-T1064)
  10. X86汇编语言从实模式到保护模式20:平坦模型
  11. PetShop 4.0知识点:base 关键字用于从派生类中访问基类的成员
  12. 计算机表格填充,Excel表格中数据填充功能的使用方法
  13. 【Minecraft】建立Bukkit/Spigot插件实时调试环境,并避免断点调试时客户端断开连接
  14. oracle 70个常用函数
  15. 介绍一下xgb_XGB羽毛球app
  16. esp8266 mesh 组网
  17. Springboot实现热启动、热部署
  18. Consider marking one of the beans as @Primary, updating the consumer to accept multiple beans,报错解决
  19. 中国能跑出来自己的Salesforce吗?
  20. 决策树中的CART树

热门文章

  1. 学习笔记(30):Google开发专家带你学 AI:入门到实战(Keras/Tensorflow)(附源码)-模型微调(青出于蓝胜于蓝)
  2. Go:实现Abs绝对值函数 (附完整源码)
  3. MySQL8.0备份与还原工具讲解----mysqlbackup篇
  4. 【windows——工具篇】哔哩哔哩快捷键
  5. Matlab读取股票数据
  6. 共用体union与枚举enum(C++)
  7. Navicat 将 psc备份文件还原
  8. Keil C51对C语言的关键词扩展之八: far
  9. Python恶搞搞机程序弹窗
  10. K3 CLOUD组织间结算取价指引