【问题标题】:ERROR chef powershell ec2错误厨师powershell ec2
【发布时间】:2015-03-19 06:18:15
【问题描述】:

我正在尝试从我的 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

谢谢!

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      保存。然后源 .bashrc 文件:

      . ~/.bashrc
      

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

      【讨论】:

        【解决方案3】:

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

        要使用 ENV 变量,请使用以下内容,而不是您似乎使用的键值:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-02-25
          • 1970-01-01
          • 2018-01-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多