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