如何使用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 ...
随机推荐
- go cmd nohup 的坑
https://github.com/go-cmd/cmd/issues/20 golang 的 cmd 包在执行系统命令时,如果使用的到了 nohup 命令, 那么就需要注意, 需要在 nohup ...
- org/apache/curator/RetryPolicy at com.alibaba.dubbo.remoting.zookeeper.curator.CuratorZookeeperTransporter.connect(CuratorZookeeperTransporter.java:26)
使用dubbo服务,启动项目报错: org/apache/curator/RetryPolicy at com.alibaba.dubbo.remoting.zookeeper.curator.Cur ...
- sorry, unimplemented: non-trivial designated initializers not supported
将C语言转换为C++代码时,发生如下错误 sorry, unimplemented: non-trivial designated initializers not supported. 查找原因,是 ...
- 【Mybatis】MyBatis之配置自定义数据源(十一)
本例是在[Mybatis]MyBatis之配置多数据源(十)的基础上进行拓展,查看本例请先学习第十章 实现原理 1.扩展Spring的AbstractRoutingDataSource抽象类(该类充当 ...
- 转Python开发之AJAX全套
转自:https://www.cnblogs.com/nulige/p/6603415.html#4206261
- [ kvm ] 学习笔记 6:virsh 命令及功能详解
1. 虚拟机管理操作 attach-device 从XML文件附加设备 attach-disk 附加磁盘设备 attach-interface 连接网络接口 autostart 自动启动一个域 blk ...
- HTML用table布局排版 padding清零
之前博文:HTML布局排版2如何设置div总是相对于页面居中 中是用div进行排版的,div是切了三条,顶部的图片,下部的图片,中间的平铺条,中间的div不设高度,根据内容,该区域的大小不固定,便于后 ...
- zepto获取select元素当前选中option
//jQuery $("#select_city").find("option:selected"); //zepto $("#select_city ...
- vscode springboot logback 日志输出到不同文件
参照了:https://blog.csdn.net/appleyk/article/details/78717388# 在src\main\resources中新建一个logback-boot.xml ...
- Qt563x86vs2015.编译错误(TypeError: Property 'asciify' of object Core::Internal::UtilsJsExtension(0x????????) is not a function)
1.在 编译或打开 pro时 有时会有这个错误 1.1.参考网址:Qt 编译错误 提示TypeError_ Property 'asciify' of object Core__Internal__U ...