如何在云服务虚拟机上安装软件、下载文件?

本文介绍如何在Azure云服务中通过cspkg和cscfg文件实现软件的自动安装及文件拷贝。通过定义启动脚本,可以在虚拟机启动时自动执行指定任务,如拷贝文件或静默安装应用程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

云服务是通过两个文件进行发布的,一个是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.youkuaiyun.com/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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值