我使用Publish(Web Deploy)将MVC和Web API应用程序部署到Azure Web服务。当我这样做时,会创建一个.pubxml
文件并将其存储在源代码管理中,但密码(可以理解)不在该文件中。
现在想象我有5个开发人员,但我只希望其中2个能够进行部署。到目前为止,对于我和3个不能进行部署的开发人员来说,我们都很好。但那个其他部署者呢?或者如果我想从第二个工作站部署(或者必须擦除我的主工作站)怎么办?我该如何恢复其他计算机的部署密码或允许其他部署者为自己恢复?
我确定要通过Azure门户来下载发布配置文件是解决方案的一部分,但是在最佳实践方式中这样做的其余部分是什么?
更新:我不希望将部署过程从Visual Studio中删除。这是用于原型设计应用程序,我不会投入脚本化构建自动化,直到我们有更少的流失和我们不会丢弃的东西。但我仍然不会将Azure发布凭据放入源代码管理中。微软有一个如何做到这一点的愿景 - 这就是我正在寻找的。 p>
附注:我有一个Jenkins构建服务器,它将一套14个应用程序推送到Azure中的37个不同的服务器(云服务,应用服务,虚拟机等)。我知道了。但这不是正确的解决方案。
答案 0 :(得分:0)
正确的解决方案是停止从Visual Studio发布。在适当的工具(如TFS RM,VSO或Octopus Deploy)中创建一个小型发布管道,以部署您的应用程序。
在.pubxml文件中,您将输入一个伪造的密码,您将使用持续部署管道在部署之前及时插入正确的值。我上面提到的所有解决方案都有详细的访问控制,并且可以输入无法返回的替换值。
答案 1 :(得分:0)
目前,您正在使用开发计算机进行开发,构建和部署。
您应该考虑将build server和automatic deployment too l与访问控制一起使用。您选择的工具具有与Azure一起使用的在线支持和教程。
答案 2 :(得分:0)
最初发布的问题的答案是:
userPWD
字段中复制密码。这些步骤可能会对您的pubxml文件进行更改,但可能不会。密码不存储在该文件中,但是如果Visual Studio正在管理密码,则通常不在源代码控制之外。但是,我建议您采取重要的增加步骤,对您提交源控制的所有内容执行差异,以确保不会意外提交此发布密码!