如何使用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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM