8月的下半月和9月初,都在折腾micro Cloud Foundry和micro Iron Foundry。还真是“折腾”二字,现在就从刚开始接触这两者谈起,直至成功安装完毕。
在这里,就不再赘言Cloud Foundry了,还是先说一下Iron Foundry吧。在我看来,Iron Foundry就是一个为了使 .net 框架的应用可以在Cloud Foundry上push的DEA服务。接着再简单说一下micro Iron Foundry的作用。micro Iron Foundry简单说来就是一个DEA service,但是它已经成功安装在一个虚拟机中,然后将这个已经安装好Iron Foundry的虚拟机打包,就得到一个micro Iron Foundry。用户只需要在特定物理机上跑起这个虚拟机就初步安装上了micro Iron Foundry。为什么说是特定的物理机呢,不是所有的物理机呢,下面将马上涉及。
虽然不说Cloud Foundry,但是micro Cloud Foundry还是要稍微说一下。micro Cloud Foundry也是一个已经安装好完整Cloud Foundry的虚拟机,不过在启动的时候要有一些配置。
Requirements
既然已经初步了解了micro Iron Foundry和micro Cloud Foundry,接下来就是着手安装了。很多人就会觉得,接下来应该,在一台物理机上安装两者,或者在两台物理机上各自安装一个,再或者可以在服务器上开一台资源丰富,内存超大的虚拟机,然后再来跑这两者。这样的想法很现实,当时我也是这么做的,结果种种碰壁,且听我慢慢讲来。
如果你打算安装两者在一台物理机上,随即选择了一台物理机casually,那我不得不说你选择的物理机很有可能不符合micro Iron Foundry 和micro Cloud Foundry的requirement。首先大家知道,像micro Iron Foundry这样一台windows server core的虚拟机运行在物理机上,必定会有一些requirement,比如内存限制必须大于某个值,然后必须要求硬盘有足够大的空间。以下是官网说明http://ironfoundry.org/download,Micro Iron Foundry requirements: Mem: 2GB, Disk: 13GB, CPU: 1GHZ+ 。所以如果你的物理机内存不足2GB或者硬盘几近饱和,那么请你换一台物理机吧。那么只要随意换一台满足以上两个条件的物理机就行了吗?答案自然是否定的。因为毕竟还是跑一个micro Cloud Foundry,它也是需要占内存的。虽然官网并没有详细的说明micro Cloud Foundry的一些安装requirement,但是安装过后感觉,其占用的内存也会在1GB左右,所以物理机的内存大小一般在3GB左右,笔者的机器内存3.6GB跑的,无压力。
是否只要有了大内存,大容量硬盘空间的物理机就行了呢?很抱歉,答案还是否定的。因为,micro Iron Foundry和micro Cloud Foundry这两个虚拟机对底层硬件还是有要求的。大家都知道micro Iron Foundry 和micro Cloud Foundry都是64位的虚拟机,而这两个虚拟机上跑在物理机上的,如果物理机的CPU技术不能支持虚拟技术虚拟出64位系统,那么这台物理机还是不能安装这两者的。在这里说一下CPU需要支持的技术,名为VT技术(Virtual Technology),由于我只是接触PaaS的菜鸟,只是在接触的时候,遇到该问题,请教实验室IaaS大牛才知道的。如果你打算用某台物理机,那请查阅该机CPU型号,然后再查阅该CPU是否支持VT技术,如果支持,则可安装,否则,只能说又该换机器了。
既然说到了VT技术,那这里也就说一下,在服务器上开辟虚拟机来安装这两台虚拟机是否可行。要说的是,同样会遇到VT技术问题的瓶颈。首先服务器上的虚拟机都是通过某种虚拟化技术虚拟出来,比如说VMware的虚拟技术,比如KVM等。这样就要安装micro Iron Foundry就形成了在虚拟机上安装虚拟机,这样就会遇到一个nested VMs的问题。大家可以查看一下一下文档:http://communities.vmware.com/docs/DOC-8970。虽然作服务器的CPU会很强大,很多都是支持VT技术的,而虚拟出来的虚拟机上的虚拟CPU,是通过虚拟技术来得到的,这个CPU在很大程度上是不支持VT技术的。大家如果想通过这个方法的话,可以查阅服务器虚拟技术的具体功能。
说了这么多,其实只是一个安装环境requirement的问题,但是如果不搞清楚的话,会非常折腾,让人抓狂。
接下来是真正安装的过程了,那自然是安装在符合条件的一台物理机上咯(为什么不谈分别安装在不同的物理机上,后面会说一下)。怎么样,有意思吧。
Installation
我觉得micro Cloud Foundry 和micro Iron Foundry是有一个主从关系的,micro Cloud Foundry主,那自然是要先装micro Cloud Foundry。在micro Cloud Foundry官网的步骤是这样的https://micro.cloudfoundry.com/。
1. InstallVMware Player(free) orVMware Workstationfor Windows and Linux users.VMware Fusionfor Mac OS X users.
2. LoginUsing your CloudFoundry.com credentials*
3. DownloadYour Micro Cloud Foundry virtual machine image
在这里也要说一下,1中安装运行虚拟机的工具,2中使用在CloudFoundry.com注册账户并登录,获得域名domain name,并通过域名获得token,3中下载micro Cloud Foundry镜像。
如果你下载的是micro-1.2.0.zip的话,那安装的时候如果按照常规来安装的话,恐怕你是不可能安装成功的,应该这个版本的micro Cloud Foundry本来就是有错的(这一点我也不是很理解,有bug的版本为什么还要发布,但是官方还是发布了修改意见的)。
在正式安装的时候,刚进去可操作界面,就按Alt-F2进去一个登陆界面,算了,还是贴出官网发布的信息吧:
FYI to access the Micro Cloud Foundry VM before it has been configured, do the following:
1.Hit Alt-F2 in the console (this switches you to a new virtual console)
2.Now log on using the vcap user with the very secret VMware password ca$hc0w
3.Once you're done, hit Alt-F1 to switch back to the first virtual console
The fix is to log on to the Micro Cloud Foundry VM (see above for how to do it) and edit line 50 in the file /var/vcap/micro/lib/micro/network.rb and add .to_s, so it looks like this
# create a class variable?
def self.ext_lookup(name)
Network.resolv_guard(name) do
Resolv::DNS.open(:nameserver => ['208.78.70.9']) do |dns|
dns.getaddress(name) .to_s
end
end
end
以上红字部分以为添加的部分,可以采用VIM来编辑,并保存退出。回到第一个虚拟控制台。然后再按以下操作:
Once you are done editing, go to the console and hit ^C and answer yes. This will force the console to restart and load the code change.
Now you are ready to configure the vm (using options 4 in the console menu)
以上就是修改部分的操作,这样的话可以是一个有bug的micro Cloud Foundry改成可以正常运行的micro Cloud Foundry。
以下是具体操作。由于只是在个人笔记本来编辑文档,没有具体运行micro Cloud Foundry的实验室物理机,所以有些操作难免出错,可以等回实验室再做更正或者上贴图。
安装步骤:
第一步:选择1、configure。
第二步:修改micro Cloud Foundry的密码,这个密码需要谨记,因为以后在micro Iron Foundry 的时候需要用到。
第三步:选择DHCP
第四步:出现None,按回车
第五步:输入在cloudfoundry.com获得token,按回车
第五步做完以后,在更新玩DNS以后,即开始安装Cloud Foundry,大约需要5min
第六步应该就是在安装完后,回车即完成了cloud Foundry的安装,接下来需要的micro Iron Foundry来连接了。
总体而言,micro Iron Foundry的安装要稍微简单一点。在启动windows server core的时候,是自动的,不需要人为做什么。当启动完毕时,只需要做以下几步(以下几步摘自我自己的云笔记,懒得翻译了):
1.change the directory to C:/IronFoundry/Setup
2.run RunSetup.md in the current directory
3.choose the type of micro Cloud Foundry
4.type in the identity(registered in micro Cloud Foundry website,as mine shlallen@cloudfoundry.me) and the password(changed in the configuration of micro Cloud Foundry)
5.begin to install Iron Foundry and connect to micro Cloud Foundry automatically
6.in the end, it will display a sentence "Press any key to continue...".Please press nothing to keep the Micro Iron Foundry connected to micro Cloud Foundry.
当出现6的情况的时候,那说明两者已经连接完毕了,应该也是运行在健康状态下的。对了,有一点还需要特别说明一下,这两台虚拟机都应该工作在桥接状态下,并且复制物理机的网络状态。
既然安装完毕了,那就应该来push应用来检验,是吧?好吧,为了能够push .net的应用,官网提供了三种方式来push,我们这里介绍以下vmc。这个时候,原先的那个vmc已经进化成了一个叫vmc-IronFoundry的东东,其实源码核心都是一样的,只是增加了可以push .net应用的模块。所以只需要在Linux下gem install vmc-IronFoundry一下就成了。想想这样应该就行了,其实这样子有个弊端,那就是物理机上会有vmc和vmc-IronFounry两个工具,但是悲剧令人抓狂的是:这两个工具的可执行文件都是vmc,而你在某些特定的操作系统(比如CentOS)上安装vmc-IronFoundry的时候,后者的可执行文件vmc并不会覆盖之前vmc的可执行文件,所以会导致最后的push不成功,而且如果你注意的话,很难查出错误,我都是在IronFoundry官网死皮赖脸的请教大神Luke,才发现的错误。但是这个问题貌似在Ubuntu下就不会出现。但是还是提醒大家安装的时候都要注意一下吧。都要 先gem uninstall vmc,再gem install vmc-IronFounry。以下是push application的链接: http://code.msdn.microsoft.com/windowsazure/Windows-Azure-HelloWorld-ee52983e
额。。额。。。
这么快。。。居然就讲到最后一步了,既然快结束了,那就希望对Cloud Foundry爱好者有用,再就说一句Iron Foundry官网上一句差不多意思的话来结束吧。
Do it and feel the love.