用户创建部署环境一般需要已创建了应用,特殊情况下可以应用和部署环境一同创建(见创建应用的第二种方式)。

创建部署环境简介

创建部署环境时,需要理解工作目录和Wpfile的意义。

工作目录:设置了当前目录下的所有操作的默认应用对象和默认部署环境对象,例如执行wpctl list将会读取当前工作目录的默认应用,列出它的部署环境列表。通过wpctl info可以查看当前工作目录下默认应用和默认部署环境。

Wpfile:保存了创建或者更新部署环境的配置信息,Wpfile与apply中的--type flag互斥。Wpfile内配置项说明请参见部署环境配置文件wpfile配置项说明

apply目前有两种使用方式:

直接使用wpctl apply

这时候将读取当前工作目录的设置情况,同时如果当前工作目录有Wpfile文件时(名称必须为Wpfile),将读取Wpfile文件内容作为apply的配置。详细情况参考apply flags控制。

$ pwd
/Users/***/Documents/webp/webp-cli-demo
$ ls
<空目录>
$ wpctl info //查看当前工作目录是否有默认环境
No env in this app:demo-test
$ wpctl env:apply --env demo-test-env --create-on-absent
please input new package source : file:///Users/jungle/go/src/github.com/aliyun/aliyun-cli/hello.war
[No envId to do configSetting diff, you are going to create a env]
...
[OK] Create environment name demo-test-env (2s)
...

wpctl apply Your_Wpfile

用户指定了Wpfile时,(名称不固定,可以任意命名,例如jenkins、zookeeper等)cli会忽略工作目录的配置,读取指定的Wpfile内容,同样可以通过flags控制创建或者更新部署环境, 详细见apply flags控制。指定方式有:

  • file://
  • https://
  • http://
  • 本地文件路径方式(相对路径、绝对路径)
$ wpctl env:apply your_Wpfile --app your_app --env your_env --create-on-absent
...
[No envId to do configSetting diff, you are going to create a env]
...
[Adding config settings below]
+----+----------------------------------+-------------------------+--------------------------------+
| NO |               PATH               |          NAME           |             VALUE              |
+----+----------------------------------+-------------------------+--------------------------------+
|  1 | platform                         | category                | Tomcat                         |
|  2 | platform                         | stackName               | Aliyun Linux 2.1903 - Java 8 - |
|    |   ...                            |                         | Tomcat 8.5                     |
...
[OK] Create environment name your_env (2s)
...

控制apply flags

控制apply操作的执行动作的主要是三类因素:
  • --app--env指定操作的应用和部署环境。
  • 工作目录中的默认应用和部署环境。
  • --create-on-absent 指定1中flag对象不存在时进行创建。
    表 1. 控制部署环境获取的flag
    部署环境获取 --env 工作目录中默认环境 --create-on-absent 执行动作
    1 NA 更新env指定环境,不存在则创建环境
    2 NA NA 更新env指定环境,不存在则报错
    3 NA 更新部署环境
    4 NA 报错
    表 2. 应用获取的flag控制
    应用获取 --app 工作目录中默认应用 --create-on-absent 执行动作
    1 NA 操作app指定应用,不存在则创建应用
    2 NA 操作app指定应用,不存在则报错
    3 NA 操作应用
    4 NA 报错

根据模板创建部署环境

用户可以根据此应用下已保存的模板在此应用下创建一个环境,使用时直接使用--template指定模板ID即可,此时CLI将排斥除--env--app--create-on-absent以外的其他flags,使用方法与部署环境创建过程相同。

保存部署环境相关操作

创建了部署环境后,如果需要对配置进行保存操作,有两种方式:

方式1:保存到本地生成Wpfile文件。

$ wpctl env:dump
Saving Wpfile to /Users/***/Documents/webp/webp-cli-demo/Wpfile

方式2:直接保存成模板。

$ wpctl env:save --name demo-template
[OK] Start to create configTemplate name:demo-template (1s)
Template demo-template created, Id is wct-***