天天看點

如何使用Cloud Foundry CLI把一個應用推送到MindSphere

一、登入MindSphere - Cloud Foundry

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

下載下傳位址:https://github.com/cloudfoundry/cli

2. 檢查是否安裝成功:

打開系統的Terminal工具,輸入cf -v

如何使用Cloud Foundry CLI把一個應用推送到MindSphere

3. 設定CF API登入點登入MindSphere Ali Preview版:

指令:cf api https://api.cf.cn1.mindsphere-in.cn

如何使用Cloud Foundry CLI把一個應用推送到MindSphere

【小插曲】:

在這裡遇到了一個問題,指令行提示了以下資訊

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

如何使用Cloud Foundry CLI把一個應用推送到MindSphere

 5. 将上圖中的位址位址複制到浏覽器,在彈出頁面填寫email位址和密碼,讓後點選登入

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

如何使用Cloud Foundry CLI把一個應用推送到MindSphere

頁面中會提示臨時密碼 

如何使用Cloud Foundry CLI把一個應用推送到MindSphere

6. 将臨時密碼複制點選滑鼠右鍵(粘貼)到控制台上:

如何使用Cloud Foundry CLI把一個應用推送到MindSphere

登陸成功。

二、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的。 

如何使用Cloud Foundry CLI把一個應用推送到MindSphere

指令樣例:

cf set-org-role [email protected] rexelcn0 OrgManager

cf set-space-role [email protected] 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檔案

如何使用Cloud Foundry CLI把一個應用推送到MindSphere

3. 可用文本編輯器打開此manifest.yml檔案。

其定義了應用名,路由方式,占用記憶體,.Net core環境

4. 打開Terminal終端(Windows環境,我用的是PowerShell),指定路徑到應用根目錄下

如何使用Cloud Foundry CLI把一個應用推送到MindSphere

5. 使用cf push指令進行部署。CF開始檢查yml檔案,自動上傳并準備運作環境。

記得在執行cf push之前,執行指令cf target -s rexel-demo切換到目标space中。

如何使用Cloud Foundry CLI把一個應用推送到MindSphere

6. 最後CF顯示應用狀态為running,則表示此應用部署成功,并已正常運作。

7. 輸入cf apps指令,即可在對應的Space中列出所有應用及運作狀态

如何使用Cloud Foundry CLI把一個應用推送到MindSphere

8. 如需了解單個應用更為詳細的狀态,可使用:

cf app {AppName}

如何使用Cloud Foundry CLI把一個應用推送到MindSphere

四、Backing Services的建立及關聯

1. 檢視可用的Backing services:

cf marketplace

會列出service的名字,不同套餐,及說明

如何使用Cloud Foundry CLI把一個應用推送到MindSphere

2. 建立Backing services執行個體

cf create-service mongodb32 mongodb-xs MyMongoDB1

如何使用Cloud Foundry CLI把一個應用推送到MindSphere

3. 建立需要花費一定的時間,可用指令檢查所有建立的serivce狀态:

cf services

如何使用Cloud Foundry CLI把一個應用推送到MindSphere

4. 把App與Service進行關聯

cf bind-service dotnetHelloWorld MyMongoDB1

如何使用Cloud Foundry CLI把一個應用推送到MindSphere

建立失敗,從傳回的資訊中可以看到,MyMongoDB1 is in progress,意思建立還沒有完成,

使用cf services檢視一下狀态,确認已經建立成功之後,

如何使用Cloud Foundry CLI把一個應用推送到MindSphere

重新執行app與service關聯指令

如何使用Cloud Foundry CLI把一個應用推送到MindSphere

關聯成功。

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

  

五、CF操作指令一覽:

如何使用Cloud Foundry CLI把一個應用推送到MindSphere

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