pos*_*eid 4 chef amazon-ec2 amazon-web-services knife
我正在使用 Amazon EC2 创建实例。我在这里阅读:在 EC2 的刀文档中,我需要设置:
# EC2:
knife[:aws_access_key_id] = "Your AWS Access Key"
knife[:aws_secret_access_key] = "Your AWS Secret Access Key"
Run Code Online (Sandbox Code Playgroud)
现在,当我尝试从我的 Knife.rb 中的 AWS 控制台设置安全凭证时,我得到一个
ERROR: You did not provide a valid 'AWS SSH Key Id' value.
Run Code Online (Sandbox Code Playgroud)
而且,当我创建一个新的“密钥对”时,我得到了一些 .pem 文件,这也让我感到困惑。
如何设置我的刀和 EC2 以创建新节点?
小智 9
我假设您是在创建新节点时收到此错误,而不是在您尝试在 Knife.rb 中设置安全凭证时收到此错误。
准确地说,当您启动时应该会出现错误:
knife ec2 server create -I <ami-id>
错误
ERROR: You did not provide a valid 'AWS SSH Key Id' value.
Run Code Online (Sandbox Code Playgroud)
是由于您的knife ec2 server create
命令中缺少 SSH 密钥对。每当您启动 Amazon EC2 实例时,您都需要指定一个 SSH 密钥对。将此 SSH 公钥添加到新启动的实例以启用无密码 SSH 登录。可以创建或导入密钥对。可以在Amazon AWS 控制台的EC2 -> Keypairs 部分找到密钥对(适用于美国东部地区)。
选择 SSH 密钥对后,您可以在knife ec2 create
命令中将其名称指定为:
knife ec2 server create -I <ami-id> -S <your-ssh-keypair-name>
注意:这将使用指定的ami-id和 SSH 密钥对启动 EC2 实例。knife bootstrap
一旦实例启动,Knife 将继续前进。为此,您需要确保在启动knife ec2 server create
. 您可能还想使用--server-url
选项指定您的 Chef 服务器 URL knife ec2 server create
。
小智 8
如果要将设置存储在 Knife.rb 文件中:
knife[:aws_ssh_key_id] = 'pemfilename'
Run Code Online (Sandbox Code Playgroud)
pemfilename应该是没有 .pem 扩展名的 pem 文件名,它必须位于:~/.ssh/ 此外,它必须是 chmodded 600: (chmod 600 ~/.ssh/pemfile.pem)
所以如果你的 pem 文件是~/.ssh/mypem.pem你需要设置:
knife[:aws_ssh_key_id] = 'mypem'
Run Code Online (Sandbox Code Playgroud)
然后访问密钥和秘密访问密钥:
knife[:aws_access_key_id] = 'AAAAAAAAAAAAAAAAAAAA'
knife[:aws_secret_access_key] = 'UYUYW/IUYITYUIGGUGIUYGKJHGHG'
Run Code Online (Sandbox Code Playgroud)
保存文件后,您可以运行:
knife ec2 server create --node-name mynodename.mydomain.com --run-list "role[myrole]"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10637 次 |
最近记录: |