VMC Command Line

来源:互联网 发布:玄武区网络问政 编辑:程序博客网 时间:2024/04/28 05:52

本节将主要的VMC命名按功能分类加以分组并提供典型用法。在样例中,以显示的文本表示变量,其值根据你的环境指定。

运行vmc help可以查看完整的VMC命令列表,以及支持的参数和简要说明。

获得最新版本的VMC

vmc作为Ruby gem提供,会进行持续更新,包括提供新的命令或现有命令新的选项。所以,需要执行以下命令获取最新版本的vmc:

prompt$ gem update vmc

减少在非交互模式的运行提示

默认情况下,vmc以交互模式运行,许多命令的执行会根据特定选项的值产生多种提示,要在非交互模式使用vmc,并只提供命令自身的选项,可以使用以下语句:

prompt$ vmc *command* -n --options

例如,部署应用程序并为所有提示使用默认值:

prompt$ vmc push -n

在命令行显示所有可用作参数的命令和选项:

prompt$ vmc help options

定位Cloud Foundry

在云上定位Cloud Foundry:

prompt$ vmc target api.cloudfoundry.com

定位运行在本地虚拟机上的独立的Micro Cloud Foundry:

prompt$ vmc target api..cloudfoundry.com

注:domain是初始安装Micro Cloud Foundry时所指定的值。

显示当前定位的URL:

prompt$ vmc target

显示已知的定位目标和相关授权令牌:

prompt$ vmc targets

登录和管理账户

在Cloud Foundry使用账户信息进行身份识别:

prompt$ vmc login --passwd

修改密码:

prompt$ vmcpasswd

注销当前会话:

prompt$ vmc logout

获取你的Cloud Foundry账户信息,所使用的VMC版本,以及已经消费的全部资源:

prompt$ vmc info

(仅适用Micro Cloud Foundry)注册新用户,需要管理员权限:

prompt$ vmc add-user --email --passwd

(仅适用Micro Cloud Foundry)删除注册用户,以及与该用户相关的全部应用程序和服务实例,需要管理员权限:

prompt$ vmc delete-user

部署应用程序

从包含应用程序文件(例如myapp.war或myapp.rb)的目录执行命令进行部署应用程序,这是交互式的部署方式,VMC命令会提示输入一些信息,例如应用程序名称、部署URL、程序框架、内存分配和需要绑定的服务实例。然后,命令会将应用程序部署到与当前会话关联的目标位置,展示并立即启动。

prompt$ vmc push

可以指定以下一个或全部选项传递部署参数的值;如果没有指定选项,vmc push将进行交互式提示:

prompt$ vmc push --path --url --instances --mem --no-start

appname代表应用程序的内部命名

directory代表含有应用程序的绝对或相

其中:

对本地目录名称。请注意,目录中的所有文件将会被vmcpush命令推送,因此请确保目录中只有希望被部署的文件

deploymentURL代表之后将在浏览器中调用应用程序的URL;默认是.cloudfoundry.com

instance-number代表应用程序启动的实例数量,默认是1

MB代表应用程序需要保留的内存上限,单位是MB,默认是512MB

–no-start指定不希望CloudFoundry启动应用程序,默认是自动启动

即使指定了上述全部选项,vmc push命令仍将提示输入运行信息和相关的服务实例信息。

例如:

prompt$ vmc push hello --path /usr/bob/sample-apps/hello --url hello-bob.cloudfoundry.com --instances 2 --mem 64 --no-start

更新部署

在当前目录更新部署的应用程序:

prompt$ vmc update

注:确保是指定应用程序名称(vmc apps输出的第一列),而不是部署的URL。

上述命令会立即中断当前连接到部署的应用程序的用户会话。

更新现有部署的保留内存(单位是MB),应用程序将自动重新启动:

prompt$ vmcmem

注:使用vmc stats 可以查看应用程序当前的保留内存,以及当前所使用的内存。

为现有的部署应用程序注册新的部署URL,命令将在现有已注册的URL列表中增加URL:

prompt$ vmc map

注:使用vmc apps查看所部署应用程序当前注册的URL列表。

为部署的应用程序注销URL:

prompt$ vmcunmap

修改当前部署的实例数量以调整应用程序规模(扩展和收缩):

prompt$ vmc instances

注:使用vmc apps查看所部署应用程序的实例数量。

管理部署生命周期(启动、停止、删除)

停止当前运行的部署:

prompt$ vmc stop

注:确保是指定应用程序名称(vmc apps输出的第一列),而不是部署的URL。

启动当前停止的部署:

prompt$ vmc start

重新启动当前运行的部署:

prompt$ vmc restart

删除应用程序:

prompt$ vmc delete

重命名应用程序:

prompt$ vmc rename

管理和绑定服务

显示支持的服务类型和已经供应实例的服务:

prompt$ vmc services

注:上述命令的输出会分为两个表格:第一个表格显示应用程序可用的服务类型,第二个表格显示已经创建实例的服务(使用vmc create-service命令),称之为provisioned services。使用vmc apps命令可以确定哪些服务实例当前被绑定到所部署的应用程序。

创建服务类型的新实例并分配一个名称:

prompt$ vmc create-service

注:使用vmc services查看能够创建实例的可用服务类型列表,使用第一个表格中第一列所显示的服务类型名称。

创建服务类型的新实例,分配一个名称,并立即绑定到所部署的应用程序:

prompt$ vmc create-service

将服务实例绑定到所部署的应用程序,前提是已经使用vmc push部署了应用程序:

prompt$ vmc bind-service

注:使用vmc services查看服务实例的名称(第二个表格的第一列)。

移除服务实例与应用程序的绑定:

prompt$ vmc unbind-service

删除服务实例:

prompt$ vmc delete-service

使用vmc push在部署应用程序同时绑定现有的服务实例,在两次提示中输入y,然后从所提供的列表中指定服务实例的数量。例如(vmc push命令显示的相关输出和提示):

prompt$ vmc push

...

Would you like to bind any services to 'pizza-juliet'? [yN]: y

Would you like to use an existing provisioned service [yN]? y

The following provisioned services are available:

1. Insight-19ff7b1

2. mysql-juliet

Please select one you wish to provision: 2

Binding Service: OK

Uploading Application:

...

Starting Application: OK

在部署应用程序同时创建新的服务实例,然后将新的服务实例绑定到应用程序,需要指定新服务实例的提示和信息,例如(vmc push命令显示的相关输出和提示):

prompt$ vmc push

...

Would you like to bind any services to 'pizza-juliet'? [yN]: y

Would you like to use an existing provisioned service [yN]? n

The following system services are available:

1. mongodb

2. mysql

3. postgresql

4. rabbitmq

5. redis

Please select one you wish to provision: 2

Specify the name of the service [mysql-ab63]: mysql-new

Creating Service: OK

Binding Service: OK

Uploading Application:

...

Starting Application: OK

获得CloudFoundry的目标信息

显示所支持的程序语言:

prompt$ vmc runtimes

显示所支持的程序框架:

prompt$ vmc frameworks

显示所支持的服务类型(例如MySQL和RabbitMQ),以及已经创建的这些服务类型的实例:

prompt$ vmc services

注:上述命令的输出分为两个表格:第一个表格显示应用程序可用的服务类型,第二个表格显示已经创建实例的服务(使用vmc create-service命令)。使用vmc apps命令可以确定哪些服务实例当前被绑定到所部署的应用程序。

获得应用程序信息

显示当前你的账户所部署的应用程序列表,以及实例、健康情况和相关的服务实例:

prompt$ vmc apps

显示应用程序标准的输出日志记录:

prompt$ vmc logs

注:确保是指定应用程序名称(vmc apps输出的第一列),而不是部署的URL。

显示指定应用程序最近的崩溃情况:

prompt$ vmc crashes

显示应用程序的致命错误:

prompt$ vmccrashlogs

显示所部署应用程序的每个实例的资源信息(例如内核使用、内存、磁盘空间和运行时间):

prompt$ vmc stats

列出应用程序的环境变量:

prompt$ vmcenv

为应用程序增加环境变量:

prompt$ vmcenv-add

删除之前为应用程序增加的环境变量:

prompt$ vmcenv-del

不减少用户流量的情况下更新应用程序

通常,利用Cloud Foundry开发和测试应用程序,vmc update能够很好满足要求。

不过,当应用程序处于“运行中”时,类似我们自己的www网站,需要按照以下步骤在更新应用程序时避免用户请求的减少。

我们使用新应用程序的概念,并将使用原始应用程序的URL地址。

以下是如何在不停止服务的情况下更新应用程序:

注:‘vmc update’将减少流量

vmc push [app]NEW(绑定任何共享服务,例如数据库、缓存等等)

TEST [app]NEW.cloudfoundry.com

vmc map [app]NEW [app].cloudfoundry.com

TEST [app].cloudfoundry.com多次,将在新旧应用程序之间循环

vmcunmap [app]OLD [app].cloudfoundry.com # 不会减少流量,只是结束全部新的流量

TEST

vmc delete [app]OLD