(这是我在 salt-users 组 FWIW 上提出的问题的副本)
我需要编写一个状态来安装一些 Windows 服务器功能,重新启动 minion,然后安装更多软件。似乎所有部分都在那里(cmd.wait,system.reboot),但我无法连接这些点。
例如,我有一个“网络服务器”状态,应该在机器上安装 IIS。它需要启用一些服务器功能,重新启动(因为 Windows),然后继续。我们使用一个名为“website”的自定义模块来完成此操作,它可以让我安装一个网站,以及另一个用于安装应用程序池的模块。我们的状态文件看起来像这样:
my_website:
website.installed:
- name: example.com
- version: alpha-1.0.0
- type: Website
- bindings:
- hostheader: localhost
- port: 1234
- installdir: c:\\wwwroot\\example.com
- apppool: static
- require:
- sls: serverstate.webserver
- sls: apppool.static
上面的效果很好,除了我们需要在“serverstate.webserver”和“apppool.static”要求之间重新启动。就目前而言,状态失败,我们手动重新启动,然后重新运行状态并且它可以工作。自然,我们想省略手动重启步骤。
是否有解决此类问题的通用模式?