CloudFoundry 平台不仅对Linux容器进行了实现与支持,并且对Windows容器也能进行支持和使用,这样在一定程度上极大的方便了开发人员的使用,如使用.net FrameWork 开发BS结构的。下面介绍如何在CloudFoundry上实现windows容器的支持,并使用其发布.net FrameWork应用程序。
依赖说明
教程主要基于VMware Workstation进行Stemcell的制作,主要依赖如下:
-
VMware Workstation 14 pro
-
ovftool(镜像打包成stemcell是需要使用,需要把其加入到环境变量中)
-
stembuild
-
OpenSSH-Win64
-
BOSH PS Modules and BOSH Agent (1709.7 tag版本)
一、创建Windows server 2016 虚拟机
首先,我们需要下载好Windows server 2016 的官方ISO镜像,即Windows Server version 1709 ,镜像可以在MSDN或相关镜像网站下载,下面是创建虚拟机的主要流程:
-
在新建虚拟机向导中:选择自定义(高级)
-
硬件兼容性:选择Workstation 10.x
-
安装客户机操作系统:选择稍后安装操作系统
-
选择客户机操作系统: Microsoft Windows -> Windows Server 2016
-
命名虚拟机:为虚拟机起一个名称,并配置存储虚拟机文件的路径
注意:选择的安装配置,硬盘最好空余空间比较大
-
固件类型: BIOS
-
处理器配置: 根据实际情况进行配置,不会影响后续再CloudFoundry中的使用
-
虚拟机内存:根据实际情况进行配置,不会影响后续再CloudFoundry中的使用
-
网络类型:NAT
-
I/O控制器类型:LSI Login SAS
-
磁盘类型: SCSI
-
选择磁盘: 新建磁盘
-
磁盘大小:最少需要设置128G,并需要选择##将虚拟磁盘存储为单个文件
-
选择磁盘文件:略
-
已准备好创建虚拟机:
-
选择自定义硬件
-
在CD/DVD中,选中加载 Windows Server version 1709的ISO镜像,并设置打开电源连接
-
打开虚拟机电源
-
在安装界面中,选择 Windows Server Standard
-
语言之类的,默认下一步就OK。
-
选择自定义安装,随后一直走下去,即可安装完成。
-
安装重启后,选择上放的虚拟机,并点击安装vm tools。
-
随后,在命令行中,输入
cd d:\\.随后输入setup64 .exe.即可一路按下一步安装,重启后声响
注意:vm tools中的安装界面可能在命令行界面后面,可以移动让其显示。
二、安装Windows 更新
-
在命令行中,运行
**SConfig**命令,随后,选择6:Download and Install Updates -
在弹出的窗口中,选择(A)ll updates
-
安装完后,重启电脑完成更新
三、安装CF依赖库与其他必须软件
1. 下载依赖包
在windows server 2016 的stemcell制作中,bosh-psmodules与agent这两个依赖是必须要安装的,我们可以从下面地址来进行下载 BOSH PS Modules and BOSH Agent (1709.7 tag版本)
2. 依赖安装
-
复制bosh-psmodules.zip包到虚拟机中,并把起文件解压到
C:\ProgramFiles\WindowsPowerShell\Modules中
zip包解压命令为: Expand-Archive
-
安装CloudFoundry Diego Cell,如下:
首先,在命令行执行 powershell,进入powershell命令行,随后执行以下命令
-
Install-CFFeatures (执行完后需重启电脑)
-
-
Protect-CFCell
-
安装Bosh Agent
复制agent.zip包到虚拟机中,随后在命令行中执行以下命令:
Install-Agent -Iaas vsphere -agentZipPath <path-to-agent.zip>
path-to-agent.zip为agent.zip的绝对地址
-
安装OpenSSH
复制OpenSSH-Win64.zip包到虚拟机中,并把其放到 c:\provision\下。
随后执行以下命令:
Install-SSHD -SSHZipFile 'C:\provision\OpenSSH-Win64.zip'
注意:到此,CloudFoundry的依赖已经安装完成,如果需要安装其他库或依赖,可在此基础上自行添加
四、 制作Stemcell
由于Windows的镜像,通常会比较大,超过10GB,因此,我们需要通过一些命令来为系统进行瘦身。
首先,进入powershell命令行。
-
执行
Optimize-Disk命令,运行 dism清理非必须的文件 -
执行
Compress-Disk命令
通过上述两步,我们就已经把系统进行了简单的瘦身,下面开始进行stemcell的制作
-
关闭虚拟机。
-
进入Windows Server 虚拟机文件的目录,如
e:\vms\bosh-windows2016 -
执行以下命令,生成stemcell
stembuild -vmdk "e:\vms\bosh-windows2016\vm.vmdk" --version "1709.7" --os "2016"
命令执行完,则会在命令执行的目录下,生成bosh-stemcell-1709.7-vsphere-esxi-windows2016-go_agent.tgz文件
五、部署并使用Windows容器
下面开始进行windows容器的部署与使用
-
上传 bosh-stemcell-1709.7-vsphere-esxi-windows2016-go_agent.tgz 到Bosh中,如下
bosh -e my-bosh upload-stemcell bosh-stemcell-1709.7-vsphere-esxi-windows2016-go_agent.tgz
-
更新cf部署,在部署的命令中,添加
-o cf-deployment/operations/windows2016-cell.yml进行组件的更新,更新完后,windows容器的支持即部署成功 -
使用Windows容器,发布一个*.net FrameWork * 程序(程序可通过Visual Studio来生成ASP.NET Web应用程序生成简单的示例)到平台中,如下:
cf push testnet -s windows2016 -p Publish.zip -b hwc_buildpack
通过上述的命令,即可访问生成的url,来验证程序是否发布成功。
六、 依赖软件下载说明
相关依赖软件,可通过在公众号回复1来获取