如何使用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
如何使用Cloud Foundry CLI把一个应用推送到MindSphere的更多相关文章
- 使用GCM服务(Google Cloud Messaging)实现Android消息推送
最近在网上查了关于很多Android消息推送的资料,其中主要有四种方法. 1) 使用GCM服务(Google Cloud Messaging) 2) 使用XMPP协议(Openfire + Spark ...
- 【原创】node+express+socket搭建一个实时推送应用
技术背景 Web领域的实时推送技术,也被称作Realtime技术.这种技术要达到的目的是让用户不需要刷新浏览器就可以获得实时更新. 应用场景: 监控系统:后台硬件热插拔.LED.温度.电压发生变化 即 ...
- 由一个订单推送想到了ObservableCollection的神奇用法
最近在做taobao的一个卖家应用,需要订阅taobao的订单推送,示例代码如下: 看到上面的OnMessage场景之后,我突然就鬼使神差的在想最近写的一个服务,其中的一个功能是需要定时的轮询一个集合 ...
- 【PM面试题】设计一个股价推送工具
这一轮面试时间比较短,问题在短时间内不能很全面展开,因此抓住一些关键点变得尤其重要,这里我记录下当时是怎么想这个问题的. 问题解析 子问题1:推送什么?从问题中看出我们需要推送的是股价,用户可以自定义 ...
- .net core 3.0 Signalr - 实现一个业务推送系统
## 介绍 ASP.NET Core SignalR 是一个开源代码库,它简化了向应用添加实时 Web 功能的过程. 实时 Web 功能使服务器端代码能够即时将内容推送到客户端. SignalR 的适 ...
- [wxpusher]分享一个服务器推送消息到微信上的小工具,可以用于微信推送提醒和告警。
背景 作为一个程序员,业余搞点自己的东西很正常,一般程序员都会有一两台自己的服务器,谁叫今天xx云搞活动,明天yy云搞活动呢. 自家的服务器用来跑爬虫,跑博客,或者跑一些个人业务,但当服务有新状态,抢 ...
- centos 安装cloud foundry CLI
步骤: 1.wget -O /etc/yum.repos.d/cloudfoundry-cli.repo https://packages.cloudfoundry.org/fedora/cloudf ...
- 使用 Azure CLI 在 Azure China Cloud 云平台上手动部署一套 Cloud Foundry
这篇文章将介绍如何使用 Azure CLI 在 Azure China Cloud 云平台上手动部署一套 Cloud Foundry.本文的目的在于: 了解作为 PaaS 的 Cloud Foundr ...
- Cloud Foundry技术全貌及核心组件分析
原文链接:http://www.programmer.com.cn/14472/ 历经一年多的发展,Cloud Foundry的架构设计和实现有了众多改进和优化.为了便于大家了解和深入研究首个开源Pa ...
随机推荐
- 面邻域Polygon Neighbors
面邻域Polygon Neighbors 商务合作,科技咨询,版权转让:向日葵,135-4855__4328,xiexiaokui#qq.com 功能: Polygon Neighbors Creat ...
- Windows使用telnet验证服务端口是否通
使用telnet指令时,Windows需要开启Telnet服务. telnet不通的情况: a.端口对应的服务没启动,或者启动了服务端口不是对应的测试端口. b.端口受限不能访问. 以下内容转自:ht ...
- 2019年逾期率上升_24家头部P2P平台最新运营数据解读:8家近一年逾期率走势曝光
python信用评分卡建模(附代码,博主录制) https://study.163.com/course/introduction.htm?courseId=1005214003&utm_ca ...
- (E2E_L2)GOMfcTemplate在vs2017上的运行并融合Dnn模块
GOMfcTemplate一直运行在VS2012上运行的,并且开发出来了多个产品.在技术不断发展的过程中,出现了一些新的矛盾:1.由于需要使用DNN模块,而这个模块到了4.0以上的OpenCV才支持的 ...
- CentOS上安装GlassFish4.0
1. 安装jdk 2. 下载并安装glassfish4 [root@linuxidc ~]# mv glassfish-4.0-ml.zip /usr/share/glassfish-4.0-ml. ...
- PHP7 serialize_precision 配置不当导致 json_encode() 浮点小数溢出错误
https://blog.csdn.net/moliyiran/article/details/81179825 感谢 @地狱星星:原因已找到, 该现象只出现在PHP 7.1+版本上建议使用默认值 s ...
- List和List的区别?
List<T>和List<?>的区别,这问的有点含糊.我想题主是想问类型参数“<T>”和无界通配符“<?>”的区别吧? 讨论“<T>&quo ...
- linux中导入sql文件
在linux中导入sql文件的方法分享(使用命令行转移mysql数据库) 因导出sql文件 在你原来的网站服务商处利用phpmyadmin导出数据库为sql文件,这个步骤大家都会,不赘述. 上传sql ...
- java使用ffmpeg生成HLS切片文件
/*** * 将文件切割成片 * @param filename * @param uuid * @param data * @throws IOException */ default void d ...
- Swift4.0复习类型定义、类型投射等操作
1.类型定义: /// 这里将MyInt定义为Int32类型 typealias MyInt = Int32 /// 这里将MyArrayInt定义为[MyInt]数组类型 typealias M ...