我需要在部署后运行控制台应用程序,但该工具只能在每个环境中运行一次。我为每个环境定义了两个角色,DatabaseServer 和 AppServer。该工具应该在 AppServer 机器上运行。
我使用 nuget 包和自定义 PowerShell 脚本部署控制台应用程序,以将其复制到 AppServer 机器上的正确位置。
当 AppServer 角色中只有一台机器时,一切都很好,但我想不出一种优雅的方式来确保当 AppServer 角色中有多台机器时,该工具只运行一次。
我能想到的唯一方法是,如果我为每个环境指定一个变量,其中包含该工具应在其上运行的机器的名称。在 PowerShell 脚本中,我可以检查此值,如果它不等于当前机器名称,则成功退出脚本。虽然这感觉不对 - 每个环境都需要一个变量,如果 AppServer 中的机器发生变化(并且应用程序应该在其上运行的机器被删除),那么部署将被归类为成功,但该工具将不会运行.
有什么简单的我忽略了吗?还是我必须使用这种方法?(这让我很难过)