zoukankan      html  css  js  c++  java
  • 如何使用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

  • 相关阅读:
    plusOne
    lengthOfLastWord
    maxSubArray
    countAndSay
    学生会管理系统-后端个人总结
    基于图结构实现地铁乘坐线路查询
    地铁线路项目简要分析
    Spring Boot 路由
    Spring Boot 项目配置的使用方法
    IDEA搭建Spring Boot项目
  • 原文地址:https://www.cnblogs.com/quchunhui/p/12015167.html
Copyright © 2011-2022 走看看