一、登錄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