如何使用Cloud Foundry CLI把一个应用推送到MindSphere

一、登录MindSphere - Cloud Foundry

1. 安装Cloud Foundry CLI (Command Line Interface)。

下载地址:https://github.com/cloudfoundry/cli

 

 

 

2. 检查是否安装成功:

打开系统的Terminal工具,输入cf -v

 

3. 设置CF API登录点登录MindSphere Ali Preview版:
命令:cf api https://api.cf.cn1.mindsphere-in.cn

  

【小插曲】:

在这里遇到了一个问题,命令行提示了以下信息

Not logged in. Use 'cf.exe login' or 'cf.exe login --sso' to log in.

导致后面的登录也是失败的,然后在阿里云上提了MindSphere的工单,

按照工单提示的方法,继续以上步骤

 

4. 执行以下登陆命令

命令:cf login -a https://api.cf.cn1.mindsphere-in.cn --sso --skip-ssl-validation

 

 5. 将上图中的地址地址复制到浏览器,在弹出页面填写email地址和密码,让后点击登录

地址:https://login.cf.cn1.mindsphere-in.cn/passcode

页面中会提示临时密码 

 

6. 将临时密码复制点击鼠标右键(粘贴)到控制台上:

登陆成功。

 

二、Cloud Foundry的操作命令 

Cloud Foundry中的Orgs, Spaces, Role(角色)及Permissions(权限)

CF使用基于角色访问控制(Role Based Access Control)的系统形式向用户授予适合其在不同Orgs或Spaces中的角色的权限。

本小节会描述Orgs和Spaces的概念,以及不同的Cloud Foundry用户角色的配置方式。

 

Orgs

组织是个人或多个协作者可以拥有和使用的开发空间,一个MindSphere租户(Tenant)即为一个CF Orgs。

如一个账户有多个Tenant的使用权限,则此用户可访问多个Orgs。

Orgs中的协作者共享资源配额计划,应用程序,服务可用性和自定义域。

 

Spaces

每个应用程序和服务都限定在一个CF Space。一个Org可以包含多个Spaces

CF的Spaces使用户可以访问共享位置以进行应用程序开发,部署和维护。

每个Space Role角色仅适用于特别指定的Space中。

 

Role(角色)及Permission(权限)

在CF环境中,一个用户可以拥有一个或多个角色。

这些角色的组合定义了用户在Org中以及该Org中特定Space内的整体权限。

可以为角色分配不同范围的用户帐户和身份验证权限。

MindSphere Tenant开通时,只有MindAccess Operator或Developert套餐的原始注册者拥有Cloud Foundry的管理员(称为OrgManager)权限。

此初始管理员需要通过以上介绍的命令为其他用户注册入CF,并分配相应的权限。

在MindSphere Cloud Foundry中的常用角色(Role)有:

➢ Org Manager:Org的最高权限管理中者

➢ Org Auditor:只能查看Org中使用者及资源信息,无权修改

➢ Space Manager:特定Space的最高权限管理中者

➢ Space Developer:应用程序开发人员或在空间中管理应用程序和服务的用户

➢ Space Auditor:只拥有Space中查看的权限

关于更多Cloud Foundry中Orgs,Spaces,Roles及Permission的更多信息请查阅CF官网的相关文档:

https://docs.cloudfoundry.org/concepts/roles.html

 

【小插曲】

我的账户在登陆之后,没有任何的Orgs和Space,猜想可能是因为我使用的账号并非是原始注册账号,

于是切换到原始注册账号试了一下,果然是可以看到Org的。 

 

命令样例:

cf set-org-role chunhui.qu@rexel.com.cn rexelcn0 OrgManager

cf set-space-role chunhui.qu@rexel.com.cn rexelcn0 rexel-demo spacemanager

 

三、本地应用程序部署到Cloud Foundry

1. 从Gitbut下载此演示程序:
下载地址:

https://github.com/IBM-Cloud/aspnet-core-helloworld

https://github.com/cloudfoundry-samples/hello-spring-cloud

 

2. 解压下载文件,程序目录中不但包括了.NET Core程序文件,还定义manifest.yml文件

  

3. 可用文本编辑器打开此manifest.yml文件。

其定义了应用名,路由方式,占用内存,.Net core环境

 

4. 打开Terminal终端(Windows环境,我用的是PowerShell),指定路径到应用根目录下

 

5. 使用cf push命令进行部署。CF开始检查yml文件,自动上传并准备运行环境。

记得在执行cf push之前,执行命令cf target -s rexel-demo切换到目标space中。

 

6. 最后CF显示应用状态为running,则表示此应用部署成功,并已正常运行。

7. 输入cf apps命令,即可在对应的Space中列出所有应用及运行状态

 

8. 如需了解单个应用更为详细的状态,可使用:

cf app {AppName}

 

四、Backing Services的创建及关联

1. 查看可用的Backing services:
cf marketplace
会列出service的名字,不同套餐,及说明

 

2. 创建Backing services实例

cf create-service mongodb32 mongodb-xs MyMongoDB1

  

3. 创建需要花费一定的时间,可用命令检查所有创建的serivce状态:
cf services

  

4. 把App与Service进行关联

cf bind-service dotnetHelloWorld MyMongoDB1

  

创建失败,从返回的信息中可以看到,MyMongoDB1 is in progress,意思创建还没有完成,

使用cf services查看一下状态,确认已经创建成功之后,

  

重新执行app与service关联命令

cf bind-service dotnetHelloWorld MyMongoDB1

 

关联成功。

TIP: Use 'cf.exe restage dotnetHelloWorld' to ensure your env variable changes take effect

  

五、CF操作命令一览:

 

cf -h执行结果

Before getting started:
  config    login,l      target,t
  help,h    logout,lo

Application lifecycle:
  apps,a        run-task,rt    events
  push,p        logs           set-env,se
  start,st      ssh            create-app-manifest
  stop,sp       app            delete,d
  restart,rs    env,e
  restage,rg    scale

Services integration:
  marketplace,m        create-user-provided-service,cups
  services,s           update-user-provided-service,uups
  create-service,cs    create-service-key,csk
  update-service       delete-service-key,dsk
  delete-service,ds    service-keys,sk
  service              service-key
  bind-service,bs      bind-route-service,brs
  unbind-service,us    unbind-route-service,urs

Route and domain management:
  routes,r        delete-route    create-domain
  domains         map-route
  create-route    unmap-route

Space management:
  spaces         create-space    set-space-role
  space-users    delete-space    unset-space-role

Org management:
  orgs,o       set-org-role
  org-users    unset-org-role

CLI plugin management:
  plugins           add-plugin-repo      repo-plugins
  install-plugin    list-plugin-repos

Commands offered by installed plugins:

Global options:
  --help, -h                         Show help
  -v                                 Print API request diagnostics to stdout

  

Cloud Foundry SSH

https://developer.mindsphere.io/zh/paas/paas-cloudfoundry-ssh.html

 

posted @ 2019-12-10 13:38  大墨垂杨  阅读(1356)  评论(3编辑  收藏  举报