我正在打包一些 mongo 脚本以及必要的二进制文件,以便通过 Teamcity 将它们运行到 Nuget 包中。现在我想用 Octopus 做的是拉那个包,提取内容并在每次部署时运行一次脚本。我不希望或不需要将它们部署到任何机器上,因为这些脚本不是特定于目标机器的。我在想通过 powershell 我可以
- 下载包(可能查询特定版本的提要)
- 提取它
- 运行脚本
- 清理
有人遇到过类似的问题吗?
最佳答案
解决方案是在Octopus Server上安装一个Tentacle,将它分配给所有环境,按照octopus-server
的方式给它一个独特的角色,然后配置一个脚本步骤来使用octopus-server
角色作为你的目标。然后,您可以在该脚本步骤中编写 PowerShell、C# 或 Bash 脚本,这些脚本将调用并执行您存储在项目中的 mongo 脚本。这样,它只会在您的八达通服务器上运行。我最近做了一些类似于运行 MySQL 脚本的事情。
OctopusDeploy 文档提供了一个很好的演练 here以及他们为什么选择那样处理的解释。
关于octopus-deploy - 在八达通服务器上拉取但不部署 nuget 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32953952/