Kie*_*ton 4 windows provisioning chef amazon-ec2 chef-solo
我正在尝试为几个 .NET 应用程序自动化我们的 CI 流程,在一个完美的世界中,我想为每个应用程序启动一个 Windows EC2 实例,引导该实例以安装 Chef Solo,然后执行一个 Chef 配方以安装一些依赖项和打包软件本身。
但是 - 我是一个新手,即使这是可行的也不知道,更不用说从哪里开始了:)
我非常精通 AWS 的命令行工具,因此可以正常启动 AMI,但除此之外,我很受困。我想避免构建一个预装了 Chef 的自定义 AMI,因为这会失去很多优势。
我认为这基本上是我需要做的 - 但(不出所料)专注于 Linux:
http://www.opinionatedprogrammer.com/2011/06/chef-solo-tutorial-managing-a-single-server-with-chef/
有没有人有一个链接到以前做过这个或类似的人?或者更好的方式来实现我想做的事情?
任何帮助表示赞赏。
小智 8
大多数 Windows 引导程序资源都集中在 Hosted Chef 和使用knife-windows插件上。
但是,Chef solo 应该可以做到这一点。
如果您没有chef-client在其上构建 AMI,那么您的第一步是在那里安装 Full Chef Windows 安装程序。
幸运的是,我记得winrm它在 Windows Amazon AMI 上默认启用。在此处查看潜在的引导程序解决方案:https : //stackoverflow.com/a/13284313/2205881
你可以同时引导其他东西;像 Ruby Windows Installer 等。在同一过程中,获取您的食谱、角色等并启动您的 Chef 配置。
更新
我已经开始以稍微不同的方式执行此操作,--user-data-file在创建实例时使用 a 。这可以与 AWS API、命令行工具一起使用,或者在启动实例时简单地粘贴到 Web 界面中。
我正在使用包管理器Chocolatey来安装厨师客户端。
<script>
@powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%systemdrive%\chocolatey\bin
cinst chef-client
</script>
基本上:
<script>告诉 AWS 的用户数据脚本我们有一个批处理文件要处理。
@powershell...(etc) 是从它的 docs安装 Chocolatey 的命令。
cinst chef-client安装chef-client包。
这些都不需要任何用户输入。用户数据以本地管理员身份执行。
所有 Amazon AMI 在首次启动时(默认情况下)运行其用户数据,而不是在后续启动时运行。因此,这是一种非常简单的方法,chef-client无需连接到 RDP 甚至无需获取管理员密码。
| 归档时间: |
|
| 查看次数: |
2697 次 |
| 最近记录: |