我在Azure(Azurewebsites)中有多个网站。有些人有网络工作,有些则没有。一个是具有缩小的JS和CSS的SPA应用程序。
我们可以在本地进行打包和构建而不会出现任何问题,但是在完成该过程后如何将文件传输到Azure?
我希望我的部署解决方案具有以下属性:
我看了很多选项。 Webdeploy似乎最为明显,但很难获得有关如何在部署期间使用证书进行身份验证的说明。使用git进行持续交付似乎不是一个好主意:也许可行,但神奇的“我们将从源代码为您构建所有内容并恢复您的软件包,一切都将是棒棒糖和独角兽”让我感到有点害怕(也可能需要一个我们的存储库结构的主要返工,因为我们不希望每个提交都已部署。是否只支持某些分支的部署?)。 FTP可以工作,但显然需要明文密码。这些可以通过环境注入。
使用GUI时这是一个非常简单的操作,但从命令行看起来很麻烦。是否有任何等同于unix风格的“发送SSH命令删除所有文件,然后将SCP打包并解压缩”?
如果没有,最好的选择是什么?
答案 0 :(得分:1)
我们使用WebDeploy / MSDeploy处理40多种产品,包括Web应用程序,服务,SQL数据库,计划任务等的部署。除了基于证书的身份验证之外,它可以执行您要求的所有操作。
我理解保持密码安全的必要性。有几种选择可能对此有所帮助:
答案 1 :(得分:0)
你应该看看ProjectKudu
这是Azure中用于管理部署过程的基础机制。虽然有标准脚本可以管理复制和部署过程,但所有这些脚本都可以重写,以便按照您的需要进行部署。
例如,一旦将文件复制到保留目录,您就可以使用xcopy将所需内容传输到wwwroot。我从未使用它,但我怀疑del也可用。
如果需要,您还可以生成自定义构建脚本。这将照顾任何后期处理。
为了将文件放在那里,它可能是一个只有你的部署的git repo的解决方案。
整个项目是开源的,您可以配置自定义kudu安装来管理部署。因此,如果您不想使用git,那么根据需要调整源代码以从存储blob中提取文件将不是一件困难的工作。
对于秘密,您可以将它们添加为环境变量,将它们存储在keyvault中以供您的部署脚本获取(通过Powershell等)或者将kudu部署脚本收集。
我只谈过它可以做什么的基础知识,但它似乎是一个非常灵活的解决方案,应该解决你所有的问题。