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 / 问题 / 472848
Accepted
poseid
poseid
Asked: 2013-01-28 10:41:07 +0800 CST2013-01-28 10:41:07 +0800 CST 2013-01-28 10:41:07 +0800 CST

如何配置 knife 和 EC2 从命令行创建一个新实例?

  • 772

我正在使用 Amazon EC2 来创建实例。我在这里阅读:在 EC2 的刀文档中,我需要设置:

# EC2:
knife[:aws_access_key_id]     = "Your AWS Access Key"
knife[:aws_secret_access_key] = "Your AWS Secret Access Key"

现在,当我尝试从 AWS 控制台在我的 knife.rb 中设置安全凭证时,我得到了一个

ERROR: You did not provide a valid 'AWS SSH Key Id' value.

而且,当我创建一个新的“密钥对”时,我得到了一些 .pem 文件,这也让我感到困惑。

如何设置我的 knife 和 EC2 以创建新节点?

amazon-ec2
  • 4 4 个回答
  • 10688 Views

4 个回答

  • Voted
  1. Best Answer
    rhetonik
    2013-01-29T05:02:30+08:002013-01-29T05:02:30+08:00

    我假设您在创建新节点时收到此错误,而不是在您尝试在 knife.rb 中设置安全凭证时收到此错误。

    准确地说,错误应该在您启动时出现:

    knife ec2 server create -I <ami-id>

    错误

    ERROR: You did not provide a valid 'AWS SSH Key Id' value.
    

    knife ec2 server create是由于您的命令中缺少 SSH 密钥对。每当启动 Amazon EC2 实例时,您都需要指定 SSH 密钥对。此 SSH 公钥被添加到新启动的实例以启用无密码 SSH 登录。可以创建或导入密钥对。密钥对(适用于美国东部地区)可以在亚马逊 AWS 控制台的EC2 -> 密钥对部分找到。

    选择 SSH 密钥对后,您可以在knife ec2 create命令中将其名称指定为:

    knife ec2 server create -I <ami-id> -S <your-ssh-keypair-name>

    注意:这将从指定的ami-id和 SSH 密钥对启动 EC2 实例。knife bootstrap实例启动后,Knife 将继续运行。为此,您需要确保 SSH 密钥对的私钥在启动knife ec2 server create. 您可能还想使用--server-url选项指定您的 Chef 服务器 URL knife ec2 server create。

    • 9
  2. user184803
    2013-08-08T13:00:35+08:002013-08-08T13:00:35+08:00

    如果要将设置存储在 knife.rb 文件中:

    knife[:aws_ssh_key_id] = 'pemfilename'
    

    pemfilename应该是没有 .pem 扩展名的 pem 文件名,它必须位于:~/.ssh/ 此外,它必须被 chmodded 600:(chmod 600 ~/.ssh/pemfile.pem)

    所以如果你的 pem 文件是~/.ssh/mypem.pem你需要设置:

    knife[:aws_ssh_key_id] = 'mypem'
    

    然后访问密钥和秘密访问密钥:

    knife[:aws_access_key_id] = 'AAAAAAAAAAAAAAAAAAAA'
    knife[:aws_secret_access_key] = 'UYUYW/IUYITYUIGGUGIUYGKJHGHG'
    

    保存文件后,您可以运行:

    knife ec2 server create --node-name mynodename.mydomain.com --run-list "role[myrole]"
    
    • 8
  3. Serhii Balbieko
    2013-02-15T18:42:51+08:002013-02-15T18:42:51+08:00

    正如上面提到的 rhetonik - 您需要指定要用于新服务器的密钥对名称。一种选择是使用 -S 开关直接将其传递给knife ec2命令,另一种选择是将类似的内容添加到您的knife.rb配置文件中:

    knife[:aws_ssh_key_id] = "myawshosts"

    • 2
  4. Jason
    2014-10-13T05:09:48+08:002014-10-13T05:09:48+08:00

    除了其他答案。aws_ssh_key_id必须是使用您的 AWS 账户注册的“密钥对名称”之一。这通常与您的 ssh 密钥文件名相对应,但也可以不同。

    您可以在 EC2“网络与安全 -> 密钥对”屏幕中看到这些 aws ec2“密钥对名称”值。

    如果您使用的是 AWS CLI,您还可以在运行时查看“KeyName”值aws ec2 describe-key-pairs

    • 1

相关问题

  • 权限被拒绝(公钥)。从本地 Ubuntu 到 Amazon EC2 服务器的 SSH

  • 管理员如何管理他们的 EC2 EBS 和快照?

  • 云有多大?[关闭]

  • EC2 映像启动

  • 如何将安全组添加到正在运行的 EC2 实例?

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