【问题标题】:Substitute Service Fabric application parameters during deployment在部署期间替换 Service Fabric 应用程序参数
【发布时间】:2019-06-23 23:54:51
【问题描述】:

我正在设置我的生产环境,并希望保护我的环境相关变量。 目前,每个环境都有自己的应用程序参数文件,效果很好,但我不希望团队中的每个开发人员都知道生产连接字符串和其他可能出现在其中的敏感内容。

所以我正在寻找所有可用的可能性。 我已经看到,在我目前用于 CI/CD 的 Azure DevOps 中,存在一些可能的变量替换(xml 转换)。它可以在 SF 项目中使用吗? 我在另一个项目中通过 Octopus 看到过类似的东西。 是否有任何其他工具可以帮助我安全(轻松)地按环境管理我的变量? 我最终可以用我的 KeyVault 做到这一点吗? 有什么建议吗? 谢谢

编辑:我想如何管理这些值的示例;这是章鱼的截图:

所以我正在寻找与此类似的分离和注入值的东西。

【问题讨论】:

    标签: azure security deployment azure-service-fabric


    【解决方案1】:

    您可以对 ApplicationParameter 文件进行 XML 转换,以在部署之前更新其中的值。

    另一个选项是使用 Powershell 更新应用程序并将参数作为参数传递给脚本。

    Start-ServiceFabricApplicationUpgrade 命令接受带有参数的哈希表作为参数,从技术上讲,VSTS\DevOps 中的内置任务将应用程序参数转换为哈希表,脚本如下所示:

    #Get the existing parameters
    $app = Get-ServiceFabricApplication -ApplicationName "fabric:/AzureFilesVolumePlugin"
    
    #Create a temp hashtable and populate with existing values
    $parameters = @{ } 
    $app.ApplicationParameters | ForEach-Object { $parameters.Add($_.Name, $_.Value) }
    
    #Replace the desired parameters
    $parameters["test"] = "123test" #Here you would replace with your variable, like  $env:username 
    
    #Upgrade the application
    Start-ServiceFabricApplicationUpgrade -ApplicationName "fabric:/AzureFilesVolumePlugin" -ApplicationParameter $parameters -ApplicationTypeVersion "6.4.617.9590" -UnmonitoredAuto
    

    请记住,现有的 VSTS 任务还有其他操作,例如将包复制到 SF 并在映像存储中注册应用程序版本,您需要复制它。您可以从服务结构项目中的Deploy-FabricApplication.ps1 文件中复制完整的脚本,并将其替换为您的更改。另一种方法是获取 VSTS 任务 here 的源并添加您的更改。

    如果您计划使用 KeyVault,我建议应用程序直接访问 KeyVault 上的值,而不是将其传递给 SF,这样,您可以在不重新部署应用程序的情况下更改 KeyVault 中的值。在部署中,您只需传递 KeyVault 凭据\配置。

    【讨论】:

    • 谢谢,请问你是怎么做xml转换的呢?我在 vsts/devops 中看到了一个扩展“token replace”是这个吗?但是您将如何组织它?对于 keyvault,我可以在 Cloud.xml applicationparams 文件中以某种方式直接从 keyvault 访问这些值,还是必须在我的 .cs 文件中?我添加了一个示例的屏幕截图,说明我想如何管理它。
    • 解决方法很多,我一般用Powershell,你也可以用VSTS中的Replace Token任务,看你怎么管理。对于 Key vault,您可以在配置中添加 keyvault 详细信息,并在运行时直接从 keyvault 加载应用程序。
    • 好的,感谢您的见解,将不得不考虑一下
    猜你喜欢
    • 1970-01-01
    • 2021-09-14
    • 2017-04-16
    • 2018-10-05
    • 2016-12-09
    • 2019-02-14
    • 2017-10-07
    • 2017-10-29
    • 1970-01-01
    相关资源
    最近更新 更多