博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Iron Foundry和Cloud Foundry的那些事
阅读量:4072 次
发布时间:2019-05-25

本文共 6934 字,大约阅读时间需要 23 分钟。

在上篇中谈到了micro Iron Foundry和micro Cloud Foundry的安装事宜,那紧接着自然是安装Iron Foundry和Cloud Foundry,和了解熟悉这两者。

Requirements

首先需要了解的还是安装的一些前提条件。这次的安装环境貌似要比上次宽松不少,这里需要两台机器(物理机,虚拟机均可,这里不涉及nested VMs和VT支持的问题,而笔者是在虚拟机上完成了安装)。虽然两台机器的要求不是很严格,但是这两台机器的操作系统还是有一定的要求。这个大家应该都知道,Cloud Foundry安装在Linux操作系统下(笔者使用Ubuntu 10.04), Iron Foundry安装在Windows操作系统下(按官网介绍,笔者先后尝试了Windows Server 2008 r2和 Windows Server 2008 r2 sp1 with server core,至于效果,后边会谈及)。 以下便是安装过程。

Installation

和两个的micro之间的关系一样,Iron Foundry说白了只是Cloud Foundry的一个DEA组件,安装只需要将Iron Foundry DEA service连接到Cloud Foundry上即可,但是需要注意的是,此时的Cloud Foundry(由github上Iron Foundry vcap安装,地址)和之前的github上的Cloud Foundry vcap(地址)安装出来的Cloud Foundry略有不同。前者在后者的基础上,改动了极少部分,使前者可以为支持.net完成一些基础工作。

在这次安装过程中,Cloud Foundry(由Iron Foundry改动过的版本)由实验室大牛学长磊哥完成(新浪微博ID:柳烟堆雪)。据学长磊哥所述,这次安装十分顺利(执行 dev_setup/bin/vcap_dev_setup),不像安装原始的Cloud Foundry安装那样会出现各种奇奇怪怪的错误,比如说下不到外部依赖等。安装完毕以后执行dev_setup/bin/vcap_dev start 以启动Cloud Foundry。

以上便是Cloud Foundry的安装了,由于涉及Iron Foundry,之前或多或少肯定涉及过Cloud Foundry的安装,过对于具体操作不再赘述。

以下是Iron Foundry的安装过程。在叙述该过程之前,我先说一下我们vlis实验室的安装经历,主要分三步:1.第一次尝试Windows Server 2008 R2 sp1 with server core安装Iron Foundry,结果失败,安装步骤可参考Iron Foundry官网博文;2.在第一次失利以后,尝试使用micro Iron Foundry,通过手动安装Iron Foundry,之后连接Cloud Foundry,结果成功;3.在第二步成功的情况下,尝试使用Windows Server 2008 R2安装Iron Foundry,之后连接Cloud Foundry,结果成功。当然安装过程并非一帆风顺,出现了不少问题,但都一一解决了。

那接下来就按三次安装来详细说明

Installation 1

安装环境必须是Windows Server 2008 R2 sp1 with server core。所以在安装时,首先安装Windows Server 2008 R2 server core,然后在安装Microsoft的更新程序service pack 1(sp1),900多MB。如果对于Windows 2008 server core不大了解,可以参考。随后执行:

c:\Users\Administrator> start /w ocsetup IIS-WebServerRole

c:\Users\Administrator> start /w ocsetup WAS-NetFxEnvironment
c:\Users\Administrator> start /w ocsetup IIS-ISAPIExtensions
c:\Users\Administrator> start /w ocsetup IIS-ISAPIFilter
c:\Users\Administrator> start /w ocsetup IIS-NetFxExtensibility
c:\Users\Administrator> start /w ocsetup IIS-ASPNET
c:\Users\Administrator> start /w ocsetup MicrosoftWindowsPowerShell
c:\Users\Administrator> start /w ocsetup ServerCore-WOW64
c:\Users\Administrator> start /w ocsetup NetFx2-ServerCore
c:\Users\Administrator> start /w ocsetup NetFx2-ServerCore-WOW64

将dotNetFx40_Full_x86_x64_SC.exe拷贝到C:\User\Administrator目录下,执行,则安装好.net Framework 4.0运行环境。下一步是在注册表中添加项以便于启动IIS远程管理服务c:\Users\Administrator> reg add HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/WebManagement/Server /v EnableRemoteManagement /t REG_DWORD /d 1。安装完以上内容后,重启机器。重启完毕以后,启动wmsvc,使用命令为c:\Users\Administrator> net start wmsvc。接着到指定目录下安装Iron Foundry DEA service,使用命令为 c:\Users\Administrator> msiexec /i IronFoundry.Dea.Service.x64.msi,则将该组件安装完毕。最后一步,则为启动该组件,进入目录c:\Program Files\Iron Foundry\DEA执行可执行文件。

以上操作为均为Iron Foundry的官方指导,其中以上步骤我们实验室均全部完成,理论上可以安装完成。但是我们的server core却不能与外界通信(外界可以访问该机器,但是该机器访问不了外界),在郁闷中,我们尝试了以下Installation 2.

Installation 2

在安装1的郁闷中,我们尝试了该方法,并最后取得了该战役的胜利,着实振奋人心,哈哈。

在micro Iron Foundry中的操作很方便,因为在查看了一番micro Iron Foundry的文件结构以后,发现他的文件结构与Iron Foundry的几乎一致,所以可以将其当成是一个Iron Foundry。第一步首先要做的就是卸载micro Iron Foundry,这里肯定有人会问,为什么要卸载呢?原因是micro Iron Foundry的连接主要是面向micro Cloud Foundry的,所以连接的很多部分都是指定的,不能更改。卸载micro Iron Foundry的命令为 c:\Users\Administrator> msiexec /i IronFoundry.Dea.Service.x64.msi。将其卸载后再重新安装,因为在重新安装过程中,我们就可以指定新的natshost的ip地址了,填写其中的四项,其他的可以不填:

NATS Host: 172.17.**.***(填你自己的Cloud Controller的ip地址)

NATS Port: 4222            (Cloud Foundry的nats默认监听端口为4222)
User:nats                      (nats的user和password都可以找到,在nats_server.yml和cloud_contrller.yml中)

Password:nats

这样的话,Iron Foundry的安装就完成了,接着就应该是启动这个DEA service来和Cloud Foundry连接了,进入目录c:\Program Files\Iron Foundry\DEA执行可执行文件。

这样的话,理论上可以完成最终连接,但是在这过程中我们又遇到了几个问题,而且尝试了几台机子,都遇到了这个问题。以下介绍一下遇到的问题。

问题1:在连接过程中,出现一个bug,bug的描述为某个端口12345已被占用。解决方案如下:

1.查看该端口端口的占用者,命令: netstat -aon|findstr “12345”;

2.找到占用者的进程,命令:tastlist|findstr “portNumber”;

3.最终使用tskill pid命令杀死掉IronFoundry.DEA.Service.exe进程。

一旦解决了问题1,那么在命令行中就能显示,connected to 172.17.**.***,这说明Iron Foundry已经和Cloud Foundry连接完毕,新鲜的Iron Foundry DEA service启用完毕啦,之后就等待你来push .net应用啦。

理论上讲(貌似说了不少“理论上讲”了,唉,无奈,安装工程实在折腾哈),做到这一步就算完成啦,但是后面还会出现一个奇怪的问题。

问题2:在push .net应用时,应用可以stage,但是在最后一步start的时候老是不能成功。但出现这种情况的时候,首先想的自然是支持.net DEA service到底有没有连上。抱着这样的疑惑,我们在查看Iron Foundry(micro Iron Foundry的变异版,哈哈)命令行的时候,发现老是循环出现一条信息unsupported runtime “clr40”,而另外一方面Iron Foundry抛出的自己支持的运行环境显示是“aspdotnet40”,这样的话,Iron Foundry和Cloud Foundry对于.net运行环境的支持描述就出现了不一致。在最后查阅Cloud Foundry源码的时候,发现了以下:

aspdotnet40: 
  description: "ASP.NET 4.0 (obsolete)"
  version: 4.0.30319
clr40:
  description: ".NET CLR 4.0"
  version: 4.0.30319
clr20:
  description: ".NET CLR 2.0"
  version: 2.0.50727
可见aspdotnet40已经是被淘汰了的,而现在使用的正是clr40。可以看到aspdotnet.yml文件中看到:

--- 
name: "aspdotnet"
runtimes:
  - "aspdotnet40":
      version: "4.0.30319"
      description: "ASP.NET 4.0"
  - "clr40":
      version: "4.0.30319"
      description: ".NET CLR 4.0"
      default: true
  - "clr20":
      version: "2.0.50727"
      description: ".NET CLR 2.0"
app_servers:
  - "iis":
      description: "Internet Information Services"
      executable: false
      default: true
detection:
  - "web.config": true # web.config must be present
staged_services:
# vim: filetype=yaml
手动改动runtime部分改为
runtimes: 
  - "aspdotnet40":
      version: "4.0.30319"
      description: "ASP.NET 4.0"
default:true
  - "clr40":
      version: "4.0.30319"
      description: ".NET CLR 4.0"
      
default: false
  - "clr20":
      version: "2.0.50727"
      description: ".NET CLR 2.0"
default:false

修改完毕以后,在push .net应用时就可以完成push了。Bingo,哈哈,有没有柳暗花明的感觉呀?如果你也尝试一下的话,做到这一步,肯定会很有感慨的。

这次使用的应用还是和上一篇博文中的一样,为一个简单的Hello World以及链接的应用,以下为链接。

在这里,我觉得有必要简述一下,会出现问题2的原因。我们觉得其中可能是因为Cloud Foundry update得非常频繁,导致不少配置文件的改动;而Iron Foundry则没有Cloud Foundry更新那么频繁,由于开发.net运行环境或不成熟等原因,更新不足以赶上Cloud Foundry,所以会在出现问题2,但是Iron Foundry应该是可以支持之前某版本的Cloud Foundry的。关于这个问题我咨询过Iron Foundry的大牛先生,他对此的回复如下:

Hongliang -

You are correct. I am in the process of doing some work on the .NET DEA and it only understands "aspdotnet40" right now.
You can also specify a runtime with the vmc command from the "vmc-IronFoundry" gem:
vmc push myappname --path C:\proj\myapp --runtime aspdotnet40

Installation 3

第三次安装的过程就比较简略了,因为有了第二次安装成功的经历。这一次主要是想检验在Windows server 2008 R2上是否也可以成功安装,结果令人满意。前面的安装步骤和Installation1中一致,只不过没有这四步,因为不是在server core模式下: 

c:\Users\Administrator> start /w ocsetup MicrosoftWindowsPowerShell

c:\Users\Administrator> start /w ocsetup ServerCore-WOW64
c:\Users\Administrator> start /w ocsetup NetFx2-ServerCore
c:\Users\Administrator> start /w ocsetup NetFx2-ServerCore-WOW64

完成了Installation 1 的操作后,按照Installation 3来操作,会遇到同样的问题1和问题2,然后解决方案也一致,直至最后push成功.net应用。

这样,关于Iron Foundry和Cloud Foundry的通信问题也就解决了,希望能对大家的实战有用。

最后,还是再用一下那句话。

Do it and feel the love.

转载地址:http://baeji.baihongyu.com/

你可能感兴趣的文章
postgresql使用RHCS套件搭建HA高可用集群
查看>>
postgresql initdb过程中大体做了什么
查看>>
linux下的mysql源码安装
查看>>
plsql连接oracle出现ORA-12154: TNS: 无法解析指定的连接标识符
查看>>
oracle 查看库中每个表所占的空间大小
查看>>
流复制中的问题max_connection
查看>>
在mysql中使用模糊查询时,使用中文查询结果不正确问题
查看>>
redhat7修改系统语言
查看>>
启动rabbitmq:ERROR: distribution port 25672 in use on localhost (by non-Erlang process?)
查看>>
Linux下mysql8.0用rpm安装
查看>>
linux下mysql 8.0忘记密码后重置密码
查看>>
mysql学习笔记(一)
查看>>
mysql学习笔记(二)
查看>>
mysql学习笔记(三)
查看>>
mysql学习笔记(四)
查看>>
mysql学习笔记(五)
查看>>
mysql学习笔记(六)
查看>>
iOS 微信SDK1.8.6后需要UniversalLink解决方案及采坑记录
查看>>
iOS 异形tabBar, 中间item凸起
查看>>
swift中单例的创建及销毁
查看>>