云服务是通过两个文件进行发布的,一个是cspkg,包含所有程序代码,一个是cscfg,包含配置信息。如果要在云服务的虚拟机上安装软件或者拷贝文件,简单的做法是把要装的软件和文件打包在cspkg里面,然后在csdef里面定义启动脚本,进行软件的自动化安装或者文件拷贝。下面看一个简单的例子
比如我们要把一个test.dll文件拷贝到目标虚拟机的系统目录下,而不是仅仅放在Webrole/worker role的缺省目录下,那么我们需要这样做:
首先,把这个dll放到Azure Role的代码目录内,比如web role/worker role的根目录
查看文件属性,确保生成操作为“内容”
如果当前是workerrole,还需要将待拷贝的文件复制属性改为“较新则复制”。这会让该文件复制到bin目录下,而Bin目录会成为worker role的approot。而Web role则不需要修改,因为Web role的app root就是项目根目录
此时如果我们打包该项目,然后将输出的cspkg解压缩,可以发现该文件出现在了目标role的approot目录下
接下来,我们需要让Azure进行文件的自动拷贝。打开项目的csdef文件,找到相应Role的定义,添加<startup>段落,定义拷贝命令
<WebRole name="GuestBook_WebRole" vmsize="Small">
....
....
....
<Startup>
<Task commandLine="copy test.dll %windir%" executionContext="elevated" taskType="simple" />
</Startup>
</WebRole>
其中,executionContext是执行权限。如果是elevated,表示以管理员权限执行,如果是limited,则以普通用户权限执行
至此,我们再发布该应用,就会实现test.dll的自动拷贝。如果要安装应用程序,可以把startup定义里面的commandline换位应用的静默安装命令。一般的应用都支持静默安装,命令一般为 xxxx.exe /silent。具体参数可以通过xxxx.exe /?查询
有时候commandline没有这么简单,不能写到一行里面。此时最好单独创建一个setup.cmd脚本文件,将需要执行的命令写好。然后在startup的commandline里面写setup.cmd.该脚本文件的放置方法跟前面test.dll相同。
由于每次发布都需要上传cspkg,显然cspkg不能太大。如果要打包的安装程序或者文件太大,那么不建议把他们和cspkg打包在一起,而是事先上传到Azure的Blob存储上,然后在startup脚本里面进行文件的下载
把文件进行事先上传很简单。那么怎么在startup脚本里面进行下载呢?我们需要一个工具进行文件的下载
将这里的压缩包(http://download.csdn.net/detail/shaunfang/5390215)解压到本地Azure项目的目标Role根目录下,确保文件属性的生成操作为“内容”。如果是worker role,需要修改复制属性为“较新则复制”
这里包括几个文件,分别是Blob的客户端dll,下载和解压缩脚本等
然后,在role根目录下创建一个download.bat的文件,里面填写下载、解压缩和安装代码:
cmd /c util\wash.cmd blob download "ImageMagick-6.8.0-vc9.zip" "ImageMagick-6.8.0-vc9.zip" phpsetup filestore "xxxxxxxxxx"
cscript /NoLogo util\unzip.vbs "ImageMagick-6.8.0-vc9.zip" .
copy ImageMagick-6.8.0-vc9\* "%ProgramFiles(x86)%\PHP\v5.3\"
其中,第一行是进行文件的下载。"ImageMagick-6.8.0-vc9.zip"是文件名,phpsetup是container名,filestore是存储账号名,最后是存储的密钥
第二行是zip解压缩
第三行是文件拷贝
之后,修改startup的commandline为download.bat即可。在正式发布服务前,可在本地先手动执行下download.bat,看看能否正确下载安装
关于startup的详细说明,可以参考http://msdn.microsoft.com/en-us/library/windowsazure/gg456327.aspx
分享到:
相关推荐
虚拟机win10iso镜像文件下载.zip,虚拟机win10iso镜像文件下载.zip,虚拟机win10iso镜像文件下载.zip,虚拟机win10iso镜像文件下载.zip,虚拟机win10iso镜像文件下载.zip,虚拟机win10iso镜像文件下载.zip,虚拟机...
在计算机和用户之间共享和重复使用一台虚拟机? 使用虚拟机移动文件? 使用配置编辑器启用设备? 更改一台虚拟机的状态? 改善性能? 捕获键盘和鼠标输入? 使用热键序列? 平衡主机和它的虚拟机的内存要求? 为...
在计算机和用户之间共享和重复使用一台虚拟机? 使用虚拟机移动文件? 使用配置编辑器启用设备? 更改一台虚拟机的状态? 改善性能? 捕获键盘和鼠标输入? 使用热键序列? 平衡主机和它的虚拟机的内存要求? 为...
vmware虚拟机反安装程序-虚拟机安装不了,请安装这个文件,再重新安装虚拟机
在计算机和用户之间共享和重复使用一台虚拟机? 使用虚拟机移动文件? 使用配置编辑器启用设备? 更改一台虚拟机的状态? 改善性能? 捕获键盘和鼠标输入? 使用热键序列? 平衡主机和它的虚拟机的内存要求? 为...
VMware虚拟机怎么安装系统?详细手把手教程 VMware虚拟机安装教程win10操作系统
学习在虚拟机上安装linux 练习在虚拟机上安装linux
自己在用的虚拟机win10镜像文件,现在分享给大家,绝对好用,欢迎大家走捷径在此下载体验
什么是虚拟机 虚拟机有什么用?如何安装?.docx
在虚拟机上安装windows server 2008出错问题的解决,简单明了,很容易。
oracle rac在虚拟机上安装
在虚拟机上安装MySQL,在主机上访问 在虚拟机上安装MySQL,在主机上访问
在win环境在怎么安装VM,创建虚拟机,以及kali的安装方法和安装步骤图示
虚拟机怎么安装win8 ?.docx
归纳总结在虚拟机上安装centos的程序步骤
在虚拟机上安装Linux系统.rar 非常适合安装两个以上的操作系统
在虚拟机上安装LINUX 在虚拟机上安装LINUX
vmware7虚拟机怎么安装win10?.docx
虚拟机安装虚拟机安装虚拟机安装虚拟机安装虚拟机安装虚拟机安装虚拟机安装虚拟机安装虚拟机安装虚拟机安装虚拟机安装
此文档介绍MINI SAP 的安装方法。安装时长大概2到3个小时,希望对各位有所帮助。