【问题标题】:Configure connection string in Octopus Deploy per project在每个项目的 Octopus Deploy 中配置连接字符串
【发布时间】:2019-02-17 12:45:19
【问题描述】:

我的连接字符串是通过library/variables/LibraryVariableSets 在 Octopus Deploy 中配置的,并且根据目标环境一切正常,我现在要做的是为每个项目/应用程序创建新的 db 用户并将此 UID/PWD 设置为我在 Octopus 中的连接字符串。

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

附:八达通版本是4.1.2

【问题讨论】:

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


    【解决方案1】:

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

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

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

    部署时connection string变量的最终值:

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

    更多细节:

    这就是你的库变量集的样子,你也可以在这里添加一些范围。

    Library Variable Set 链接到项目:

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

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

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

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

    这会导致以下输出:

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

    【讨论】:

    • 这似乎是个好主意,但我做不到,所以,如果你能通过链接或步骤指导我,那就太好了……我能理解的是,我们将添加一个通用的与 UID 和 PWD 变量的连接刺痛,然后在项目的变量(应用程序设置键)中,我可以重新声明具有相同名称的相同变量以及该项目所需的值......对吗?如果没有,请按顺序与我分享步骤...提前谢谢您
    • @AhmedNegm 我已经添加了所有需要的步骤和示例截图
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-25
      • 2019-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多