我正在创建一个 CloudFormation Stack,它将在 Windows 实例上安装和启动服务。我已经知道如何安装该服务,但如何使用 cfn-init 启动该服务?
这例子似乎所有人都使用 Linux,因为有对“sysvinit”的引用。如何构造 AWS::CloudFormation::Init,以便 cfn-init 在安装 Windows 服务后启动它们?我是否应该保留 sysvinit,用其他东西替换它,或者将其取出?
ps:我指的是如何通过向 AWS::CloudFormation::Init.services 提供信息来启动服务。此外,了解“软件包”在 Windows 上的工作原理也很好。 AWS 的公告表示软件包在 Windows 上受支持,但没有针对 Windows 的文档
答案1
我得到了以下回复请参阅我在 AWS CloudFormation 论坛上的相关帖子:
发布者:Adam@AWS 发布时间:2012 年 11 月 7 日上午 9:05 回复:Edwin G. Landy 回复有帮助的 Edwin,
您可以采用与 yum 包非常相似的方式安装 MSI 包。例如:
"packages" : { "msi" : { "mysql" : "URL or path to file on disk", "package2" : "path to another MSI" } }
请注意,名称并不重要 - cfn-init 将从 MSI 中提取 ProductCode 以确定软件包是否已安装。还会为所有用户安装 MSI,并禁止重新启动。
恐怕我们目前还不支持 Windows 上的服务,但这是我们计划中的一项功能。在此之前,您可以使用命令部分中的“net”命令从 cfn-init 启动服务。
谢谢,亚当