一、登入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 [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檔案
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關聯指令
關聯成功。
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