本月博客排行
-
第1名
Xeden -
第2名
fantaxy025025 -
第3名
bosschen - paulwong
- johnsmith9th
年度博客排行
-
第1名
青否云后端云 -
第2名
宏天软件 -
第3名
gashero - gengyun12
- wy_19921005
- vipbooks
- e_e
- benladeng5225
- wallimn
- ranbuijj
- javashop
- jickcai
- fantaxy025025
- zw7534313
- qepwqnp
- robotmen
- 解宜然
- ssydxa219
- sam123456gz
- zysnba
- sichunli_030
- tanling8334
- arpenker
- gaojingsong
- xpenxpen
- kaizi1992
- wiseboyloves
- jh108020
- xyuma
- ganxueyun
- wangchen.ily
- xiangjie88
- Jameslyy
- luxurioust
- mengjichen
- lemonhandsome
- jbosscn
- nychen2000
- zxq_2017
- lzyfn123
- wjianwei666
- forestqqqq
- ajinn
- siemens800
- hanbaohong
- 狂盗一枝梅
- java-007
- zhanjia
- 喧嚣求静
- Xeden
最新文章列表
dea-warden内部查错
dea启动应用实例后,会异步探测应用访问端口(宿主机上的端口,如:61003),如果多次探测都无法连接,dea会认为应用启动失败,随即会销毁容器,导致现场不能保留。
解决办法:
注释代码中的destroy代码/var/vcap/packages/dea_next/lib/dea/task.rb,在方法:promise_destroy和destroy直接返回return
常用路径
war ...
weblogic-buildpack离线包制作及排错
离线包制作
从github上获取源码
$ git clone https://github.com/pivotal-cf/weblogic-buildpack
weblogic的包制作比较特别,需要自己下载oracle的jdk,和weblogic。到官方网站下载后,放到一个目录:fileserver,目录结构:
fileserver/
├── jdk
│ ├── index.ym ...
Docker vs Warden
相同点:
都是依赖宿主操作系统内核的轻量级容器;
都采用了linux内核技术实现容器隔离(namespace)和资源限制(cgroup);
都使用了aufs文件系统;
不同点:
用途
warden是CF内部的一个轻量级的容器,只包含容器部分
docker更全面,docker除了容器部分还包含镜像管理,镜像仓库,服务发现,selinux等,提供了一 ...
UAA Token解析
用户登录时,uaa会颁发一个token给客户端,该token是一个JSON Web Token(JWT)
关于JWT的详细信息参考:http://tools.ietf.org/html/draft-ietf-oauth-json-web-token-25
类似:
uaa权限scope
token管理
tokens.write:token除权,包括用户和客户端token
tokens.read:token读取,包括用户和客户端token
UAA用户组管理
scim.read:读用户和组
scim.write:添加/更新/删除用户和组
password.write:修改自己的密码
scim.userids:访问用户 ids/user的endpoint
scim. ...
uaa配置详解
uaa的配置文件是uaa.yml。war包中的uaa.yml不需要改动,一般通过指定环境变量:$CLOUDFOUNDRY_CONFIG_PATH,指定运行时外部uaa.yml路径。
具体配置项如下:
name: uaa # 组件名称
database: # 数据库配置
url: jdbc:postgresql://192.168.1.63:5524/uaadb # !数据库连接URL
...
Cloud Foundry Eclipse Plugin
Cloud Foundry Eclipse Plugin是方便开发人员部署、管理运行在CloudFoundry的Java和Spring应用的eclipse插件。
安装
从eclipse的市场可以搜索到该插件。
依次点击:Help->Eclipse Marketplace...
搜索cloudfoundry
点击:install安装
使用
java-buildpack源码分析之Release
release的入口是bin/release,同样需要一个构建目录实例化buildpack对象,并调用其release接口
buildpack#release方法
代码的基本结构和compile很相似,探测各个组件是否支持,然后调用各个组件的release方法
def release
container = component_detection('container' ...
java-buildpack源码分析之Detect
Detect
该buildpack的探测的内容包含:容器,JRE,框架。具体内容在components.yml中可以看到:
# Configuration for components to use in the buildpack
---
containers:
- "JavaBuildpack::Container::DistZip"
- "JavaB ...
java-buildpack源码分析之Compile
Compile编译用户的应用。
bin/compile
入口是:bin/compile,该脚本和detect脚本很类似:需要一个构建目录实例化buildpack对象,并调用其compile接口。
注意:在这个脚本看似只有一个参数,但运行时实际需要第二个参数:应用缓存目录,当下载JDK,
compile方法
compile先调用component_detection,探测了对容器,JRE, ...
java-buildpack源码分析
java-buildpack将在JVM上运行的应用包(zip,war,jar等),配置,组合成可运行的应用。
java-buildpack探测应用包的容器,JRE,框架等,并下载其依赖包,并配置其运行参数。
Java-buildpack对Java应用的支持情况
容器
tomcat
DistZip
Groovy
JavaMain
PlayFramework
CloudFoundry中cf logs命令报权限错
自己搭建的CloudFoundry集群,push应用很正常,只是……
在cf logs <APP>的时候报权限错,说没法读取这个container路径下的env.log
既然是文件没法读取,那肯定是权限位设置的有问题,进入cf-release目录grep "env.log"
应该可以找到这么个文件:dea_next/lib/dea/starting ...
CloudFoundry中buildpack介绍与自定义实践
背景
用一个问题开篇:一个服务能够run起来,到底需要些什么?
做过部署系统的同学会对这个问题认识比较深,总结一下,我们可以归为如下几类:
1、程序本身的代码文件,嗯,这个不用解释
2、需要的配置,比如测试环境下有一套配置,开发环境、线上环境各有一套配置,还有甚者,一个idc一套配置
3、环境依赖,比如语言环境:Python2.7、JDK6,一些操作系统特性等
4、运行时依赖,比如我需 ...
Cloudfoundry中app无法启动的排错方法
Cloudfoundry提供了一些命令行工具来帮我们了解app的状况和排错
1、检查app的健康状况
cf health appname
2、查看app用了多少内存
cf stats appname
3、查看环境变量和最新的log信息
cf logs appname
4、用tail的方式来查看log
cf tail appname
5、如果app c ...
自己搭建Cloudfoundry使用cf logs <app>报permission denied解决方案
自己搭建CloudFoundry,一切就绪,cf push一个app测试一把,结果出错,想查原因,所以运行cf logs <app>命令,结果报错如下:
CFoundry::BadResponse: 500: Can't serve request due to error: open /home/vcap/var/warden/containers/179u5obpsru/ ...
Cloudfoundry中查看router中所有路由信息
我们知道在CloudFoundry中,router是入口,那么它就要保存所有的域名和ip的对应关系,如何查看各个app和内部组件的真实ip:port呢?
登陆部署gorouter的机器,netstat -ant | grep 8082,gorouter默认会启动8082和80端口,如果你之前修改过就grep你修改之后的端口,看到8082在监听了吧,e.g. 127.0.0.1:8082,然 ...
Cloudfoundry报错:Application failed to stage
不同的错误表现肯定是不一样,我先描述一下我的错误情况和场景,看是否和你的match,如果match的话很可能你也是这么解决,O(∩_∩)O~
我搞了一个php的应用,使用github上一个buildpack:cf-php-apache-buildpack来部署的,刚开始我设置的一个instance,告诉我说Application failed to stage。但是cf apps看到的却是 ...
自己搭建CloudFoundry push应用出现SocketError
这是CloudFoundry v2的一个坑,解决方案很简单,但是确实被折腾坏了,后来在Google Group中找到了一个哥们的回复才解决。
实际只需要修改dea.yml,增加一个配置项:domain: xae.xx.com(不同公司肯定配置的不一样,这个配置是假设你在cloud_controller.yml中配置的external_domain为:api2.xae.xx.com,取api ...