当前位置: 首页 > 工具软件 > Nise BOSH > 使用案例 >

使用nise bosh部署单机cloudfoundry v2

阎鸿煊
2023-12-01

最近部署cloudfoundry(以下简称cf),部署过程一波三折,在v1、v2两个版本间切换了数次,目前把v2的部署成功了,v1版本遇到的问题还没解决,先将v2的安装过程整理如下:

准备工作:

     服务器环境,Ubuntu 10.04.4 LTS,2c4g,在vSphere上虚拟出的主机,需要能链接网络。

安装过程:参考https://github.com/yudai/cf_nise_installer

    通常cf是安装在root用户下的,

1、安装curl 

   curl是利用URL语法在命令行方式下工作的开源文件传输工具,cf的安装需要用的,方法很简单

   sudo apt-get install curl

2、使用nise bosh 部署cf

   root用户下执行 

   bash < <(curl -s -k -B https://raw.githubusercontent.com/yudai/cf_nise_installer/${INSTALLER_BRANCH:-master}/scripts/bootstrap.sh)

   命令意思: 

   “<<(” 参考here document

   -s  slient模式,不显示进度和error信息

   -k 允许非安全的ssl链接

   -B 采用ASCII方式传输

   就这一条命令,已经开始安装了,噩梦也开始了,由于安装过程中需要访问s3.amazonaws.com获取文件,而国内无法访问该网站,安装过程走走停停,最后还是没成功,期间      尝试了设置代理的方式,依然不行。。。。

   另外感觉这么装也不靠谱,因为这样无法修改配置文件,建议的安装方式为git clone cf_nise_bosh,然后cd 至cf_nise_installer/manifests,修改template.yml文件,需要做的是      将其中的192.168.10.10.xip.io改为自己想使用的域名,如经典的vcap.me,并将其他的ip改为本机 ip,然后切换至cf_nise_installer/,执行./scripts/install.sh(不能直接./install.sh,    因为install.sh里要调用别的脚本,用的是相对路径),几个脚本的内容不算复杂,有时间总结一下脚本的执行过程。依然避不开 的GFW安装还是没成功。。。最后是找老大要了个之前的安装包,里面包括了需要到s3.amazonaws.com下载的那些文件,修改配置文件,执行./scripts/install.sh完成安装


   对于Ubuntu 10.04.4 LTS系统,安装完成后需要reboot重启系统,重启后./scripts/start.sh,待启动完成后,执行/var/vcap/bosh/bin/monit summary 查看启动状态,如下:

     Process 'nats'                      running
Process 'nats_stream_forwarder'     running
Process 'cloud_controller_ng'       running
Process 'cloud_controller_worker_local_1' running
Process 'cloud_controller_worker_local_2' running
Process 'nginx_ccng'                running
Process 'cloud_controller_worker_1' running
Process 'cloud_controller_clock'    running
Process 'uaa'                       running
Process 'uaa_cf-registrar'          running
Process 'haproxy'                   running
Process 'gorouter'                  running
Process 'warden'                    running
Process 'dea_next'                  running
Process 'dir_server'                running
Process 'dea_logging_agent'         running
Process 'loggregator'               running
Process 'loggregator_trafficcontroller' running
Process 'etcd'                      running
Process 'hm9000_listener'           running
Process 'hm9000_fetcher'            running
Process 'hm9000_analyzer'           running
Process 'hm9000_sender'             running
Process 'hm9000_metrics_server'     running
Process 'hm9000_api_server'         running
Process 'hm9000_evacuator'          running
Process 'hm9000_shredder'           running
Process 'postgres'                  running
System 'system_cftest5'             running

各个组件都显示running则表示启动成功。

3、安装cf客户端,参考https://github.com/cloudfoundry-attic/cf

   v2的cf废弃的vmc,统一改为cf,安装过成也很简单

   gem install cf

   我的环境上装好之后不知道什么原因没有办法直接使用cf命令,后来在.profile中加入环境变量才能直接使用

   root@cftest5:~# cf -v
   cf 5.4.7

   执行cf -help命令可以查看具体使用方法


4、创建org和space

    cf中使用org和space实现用户和应用的隔离,安装完成后默认有DevBox的org,需要创建space

    cf cretate-space space-name

5、部署简单应用 

      参考http://helpdocs.sturgeon.mopaas.com/helpdocs/_java_web.html

      项目创建完成后打成war包

      设置应用的上传目的地

      cf target http://api.vcap.me

      cf target -o DevBox

      cf target -s space-name //space-name为上一步创建的空间名

      上传应用

      cf push app-name --path app-path // app-name是上传的应用名,也是访问应用时的三级域名 xxx.vap.me,app-path是应用所在路径

      cf的push是交互式的,按照提示输入即可,基本上一路回车就可以了,如果提示push successful,则可以使用 cf apps 查看应用状态

      name    status    usage      url          
      hello   running   1 x 256M   hello.vcap.me

     如果失败,可以使用cf crashlogs app-name查看日志,根据日志信息定位问题

6、访问应用

    由于虚拟机只有命令行模式,没有桌面系统,所以需要从本机访问,修改本机/etc/hosts文件,在文件中添加如下信息即可:

     10.0.0.104 api.vcap.me
     10.0.0.104 uaa.vcap.me
     10.0.0.104 hello.vcap.me
     10.0.0.104 *.vcap.me

  在本机浏览器中输入hello.vcap.me/HelloWorld即可访问应用


    

     2014.8.13更新:

    gem默认安装的是v5版本的cf客户端,应该是可以通过gem install cf -v 版本号 来安装指定版本的cf客户端的(我没试过,直接从同事机器上拷贝的v6),

   v6的操作和v5的有点区别,

   cf login --skip-ssl-validation -a http://api.vcap.me -u admin -p c1oudc0w

   --skip-ssl-validation 不进行ssl校验

   -a 指定api_url

   -u 用户名

   -p  密码

   org、space的操作和v5基本一致





 类似资料: