2014-07-02 28 views
11

我正在编写一个bash脚本,它将自动安装和配置AWS CLI工具。我能够安装AWS CLI工具,但无法对其进行配置。用于安装AWS CLI工具的Bash脚本

我的脚本是这样的:

#!/bin/bash 


wget https://s3.amazonaws.com/aws-cli/awscli-bundle.zip 
unzip awscli-bundle.zip 
sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws 
./awscli-bundle/install -b ~/bin/aws 
./awscli-bundle/install -h 

aws configure 
AWS Access Key ID [None]: ABCDEFGHIJKLMNOP ## unable to provide this data 
AWS Secret Access Key [None]: xbdwsdADDS/ssfsfa/afzfASADQASAd ## unable to provide this data 
Default region name [None]: us-west-2 ## unable to provide this data 
Default output format [None]: json ## unable to provide this data 

我想使用这个脚本也做配置。我希望我可以通过脚本提供这些凭据,以防止手动输入。如何才能做到这一点?

+0

如果您希望在启动的实例上运行此功能,请考虑使用[IAM角色for EC2](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon -ec2.html)而不是嵌入您的凭据。该实例负责发布临时凭证并对其进行轮换,您只需在启动实例时指定IAM角色。尽管如此,您仍然需要安装实际的工具。 –

回答

19

使用配置文件而不是aws configure命令。创建一个名为~/.aws/config文件看起来像这样:

[default] 
aws_access_key_id=AKIAIOSFODNN7EXAMPLE 
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY 
region=us-west-2 
output=json 

更多信息in the docs

+2

除此之外,您还可以将凭据,区域和输出设置为环境变量或cli参数。 请参阅:http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html –

+0

我无法找到目录〜/ .aws/ –

+1

您需要创建目录〜/ .aws,并在里面的文件'配置' –

0

最好的做法是BASH安装awscli实用程序和文件从2档

自己指定的位置复制,没有击中

#aws configure 

命令,这些文件将不会生成,您可以使用bash脚本复制和粘贴文件并获得所有执行完成

~/.aws/credintials 
~/.aws/config 

其中凭据包含

[default] 
aws_access_key_id=ABCDEFGHIJKLMNOP 
aws_secret_access_key=xbdwsdADDS/ssfsfa/afzfASADQASAd 

和配置文件包含

[default] 
output=json 
region=us-west-2 

这将帮助你保持键在一个地方,你也可以把同样为你执行任何CMT工具以及类似Ansible。