错误厨师powershell ec2

时间:2014-12-02 14:43:30

标签: powershell authentication amazon-web-services chef knife

我正在尝试从我的powershell(windows7)连接到ec2(AWS) 我将以下行添加到knife.rb文件中:

knife[:aws_access_key_id] = ENV['XXXXXX']
knife[:aws_secret_access_key] = ENV['xxxxxxxxxxxxxxxxxxxxxxxxxx']

我跑了例如

knife ec2 server list --region eu-west-1

但请注意以下事项:

knife : ERROR: You did not provide a valid 'AWS Access Key Id' value. At line:1 char:1
ERROR: You did ... Key Id' value.:String) [], RemoteException
ERROR: You did not provide a valid 'AWS Secret Access Key' value.

我保存后,是否需要将knife.rb文件上传到服务器? (怎么样?) 我应该在哪里保存我的pem文件,我应该如何在命令中使用它?我试过例如:

knife ec2 server create -I ami-6e7bd919 -N MyEc2Instance -x ec2-user -r "role[webserver]" -i C:\Users\MyName\Documents\openvoip.pem --region eu-west-1

谢谢!

3 个答案:

答案 0 :(得分:1)

knife.rb文件应具有以下内容,而不是问题中描述的内容:

knife[:aws_access_key_id] = "XXXXXXXXXXXXXX"
knife[:aws_secret_access_key] = "XXXXXXXXXXXXXXXXXXXX"

我没有这样的ENV变量,所以我直接设置了凭证。

答案 1 :(得分:1)

要使用环境变量,必须先将它们放在〜/ .bashrc文件中:

vi  ~/.bashrc
export AWS_ACCESS_KEY_ID=/home/yourname/.ec2/prodaccess
export AWS_SECRET_ACCESS_KEY=/home/yourname/.ec2/prodsecret

保存。然后来源.bashrc文件:

. ~/.bashrc

运行:env#以查看新变量是否传播到环境。然后你可以运行你的刀ec2命令

答案 2 :(得分:0)

如果您打算共享knife.rb,您可能希望保留环境变量和设置,如文档中的“多用户,相同回购”,https://docs.getchef.com/config_rb_knife.html所述。

为了使用ENV vars,请使用类似下面的内容而不是您使用的键值:

knife[:aws_access_key_id] = ENV['AWS_ACCESS_KEY_ID']
knife[:aws_secret_access_key] = ENV['AWS_SECRET_ACCESS_KEY']

然后,在运行knife时,请确保设置了本地环境变量。