在每个项目的Octopus Deploy中配置连接字符串

问题描述 投票:1回答:2

我的连接字符串是通过library/variables/LibraryVariableSets在Octopus Deploy中配置的,所有工作都可以根据目标环境正常工作,我现在要做的是为每个项目/ app创建新的db用户,并在Octopus的连接字符串中设置这个UID / PWD 。

我的问题是:我如何为每个项目配置这个连接字符串,就像我已经拥有的项目的局部变量(应用程序设置键)?

附:八达通版本是4.1.2

connection-string continuous-deployment octopus-deploy octopus
2个回答
2
投票

您可以将用户名和密码的变量引用添加到库变量集中的连接字符串变量。

Server=myServerAddress;Database=myDataBase;User Id=#{dbuserid}; Password=#{dbpassword};

然后在使用此库变量集的每个项目中,为dbuseriddbpassword创建新变量,当为部署评估变量时,连接字符串中的这些变量placesholders将使用项目变量提供的值进行更新。

部署期间connection string变量的最终值:

Server=myServerAddress;Database=myDataBase;User Id=userid; Password=password;

更多细节:

这是你的库变量集应该是什么样子,你也可以在这里添加一些作用域。 Library Variable Set

Library Variable Set链接到项目:

Library Variable Set link

然后在项目变量中设置用户标识和密码:

project variable values

然后,您可以在脚本中使用连接字符串,也可以在配置文件中使用变量替换。

我用以下的powershell脚本测试了它

write-host $connectionstring
write-host "#{connectionstring}"

这导致以下输出:

script output

如果需要将连接字符串注入JSON文件中的特定位置,可以使用JSON Configuration Variables语法并将值设置为连接字符串变量引用#{connectionstring}

json connection string example


1
投票

库变量集中的变量无法限定为单个项目,因为它们被设计为跨项目的全局变量。然而,有一个活跃的UserVoice建议来实现这个:https://octopusdeploy.uservoice.com/forums/170787-general/suggestions/31206961-library-variables-ability-to-scope-to-projects

您当前可以在集合中定义这些变量,如果要定义默认值,则将该集合包含在许多项目中。如果您定义具有相同名称的项目变量,则会将其视为“特定范围”,从而在部署时使用。我不认为这对项目特定的连接字符串这样的事情有很大帮助。

© www.soinside.com 2019 - 2024. All rights reserved.