AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 490551
Accepted
Kieran Benton
Kieran Benton
Asked: 2013-03-23 09:54:24 +0800 CST2013-03-23 09:54:24 +0800 CST 2013-03-23 09:54:24 +0800 CST

使用 Chef Solo 配置 Windows EC2 实例并引导它

  • 772

我正在尝试为几个 .NET 应用程序自动化我们的 CI 过程,在一个完美的世界中,我想为每个应用程序启动一个 Windows EC2 实例,引导实例以安装 Chef Solo,然后执行 Chef 配方以安装一些依赖项和打包的软件本身。

但是-我是新手,不知道这是否可行,更不用说从哪里开始了:)

我相当精通 AWS 的命令行工具,因此可以启动 AMI ok,但除此之外,我还很困惑。我想避免构建预装了 Chef 的自定义 AMI,因为这会带走很多优势。

我认为这基本上是我需要做的——但(不出所料)专注于 Linux:

http://www.opinionatedprogrammer.com/2011/06/chef-solo-tutorial-managing-a-single-server-with-chef/

有没有人有链接到以前做过这个或类似的人?还是实现我想做的事情的更好方法?

任何帮助表示赞赏。

windows
  • 2 2 个回答
  • 2728 Views

2 个回答

  • Voted
  1. Best Answer
    rjocoleman
    2013-03-26T22:35:46+08:002013-03-26T22:35:46+08:00

    大多数 Windows 引导程序资源都集中在 Hosted Chef 和使用knife-windows插件上。

    然而,这应该可以通过 Chef solo 实现。

    如果您不使用它来构建 AMI,chef-client那么您的第一步是在那里安装 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来安装 chef-client。

    <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 的用户数据脚本我们有一个批处理文件要处理。(etc) 是从其文档
    @powershell...安装 Chocolatey 的命令。安装包。
    cinst chef-clientchef-client

    这些都不需要任何用户输入。用户数据以本地管理员身份执行。

    所有 Amazon AMI 在首次启动时(默认情况下)运行其用户数据,而不会在后续启动时运行。因此,这是一种非常简单的方法,chef-client无需连接到 RDP,甚至无需获取您的管理员密码。

    • 8
  2. Ameer Deen
    2013-08-21T00:44:46+08:002013-08-21T00:44:46+08:00

    另一种方法是简单地传递一个用 Powershell 编写的“用户数据脚本”。您只需创建一个类似于以下内容的文本文件 (hello.ps1):

    < 电源外壳 >

    #下载和安装应用程序的代码在这里

    </powershell>

    然后当你启动实例时,你只需传入用户数据文件:

    ec2run --region "us-east-1" "$ami" `

        --group "$mygroup" `
    
        --subnet "$mySubnet" --instance-type  "m1.medium" `
    
        --key "$myKey" `
    
        --user-data-file "hello.ps1"
    

    您可以从 S3 下载二进制文件并通过单个 PowerShell 脚本完全安装。这是亚马逊的一些文档供您参考

    • 1

相关问题

  • 知道任何适用于 Windows 的快速可编写脚本的 ftp 客户端吗?[关闭]

  • 如果 Windows 服务崩溃,如何自动重新启动它?

  • 无法安排任务(访问被拒绝)

  • 物理机重启时自动重启虚拟机(VMWare)

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve