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

时间:2019-02-17 12:45:19

标签: connection-string continuous-deployment octopus-deploy octopus

我的连接字符串通过library/variables/LibraryVariableSets在Octopus Deploy中配置,并且都可以根据目标环境正常运行,我现在要做的是为每个项目/应用创建新的数据库用户并设置此UID /在我的八达通连接字符串中输入PWD。

我的问题是:如何像使用项目的本地变量(应用程序设置键)一样每个项目配置此连接字符串?

P.S。章鱼版本为4.1.2

2 个答案:

答案 0 :(得分:2)

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

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

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

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

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

更多详细信息:

这是库变量集的外观,也可以在此处添加一些作用域。 Library Variable Set

Library Variable Set链接到项目:

Library Variable Set link

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

project variable values

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

我使用以下Powershell脚本对其进行了测试

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

这将产生以下输出:

script output

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

json connection string example

答案 1 :(得分:1)

库变量集中的变量无法划分为单个项目,因为它们被设计为跨项目全局。但是,有一个积极的UserVoice建议可以实现此目的: https://octopusdeploy.uservoice.com/forums/170787-general/suggestions/31206961-library-variables-ability-to-scope-to-projects

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