如何在Ubuntu 16.04上安装和配置AWS CLI

时间:2020-03-21 11:48:10  来源:igfitidea点击:

AWS(亚马逊网络服务)是第一批最好的公共云服务提供商。
它已经发展到一定程度,以至于现在云已经成为AWS的同义词。
其受欢迎的原因之一是易于使用的Web界面和所提供的广泛服务。

除了易于使用的Web界面之外,它们还提供基于命令行的工具来访问不同的服务。
这是一个方便的工具,可用于从linux cli自动执行,触发某些事件并在AWS云中执行操作。
基本上,诸如EC2(创建实例,停止实例等),S3(存储和检索文件),Cloudwatch监视,弹性负载平衡,自动缩放等服务都可以使用此cli工具进行访问。
它称为AWS CLI。

在本文中,我们将逐步介绍在Ubuntu 16.04操作系统上安装AWS CLI的步骤。

方法1:使用apt存储库安装aws cli

root@localhost:~# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.2 LTS"

如下所示,使用apt-get命令安装它的最简单方法。

root@localhost:~# apt-get update && apt-get install awscli

现在让我们查看已安装的awscli版本。

root@localhost:~# aws --version
aws-cli/1.11.13 Python/3.5.2 Linux/4.4.0-1022-aws botocore/1.4.70

这种使用apt-get安装aws cli的方法的唯一问题是我们不会获得最新版本。
AWS CLI不断发展(定期向其添加越来越多的服务和功能),如果通过apt-get安装它,我们将不会获得最新的功能和服务。
另一种方法是使用pip将其安装为python软件包。
让我们使用Python Pip在ubuntu 16.04上安装AWS CLI,然后最后逐步进行配置和使用。

方法2:使用Python Pip安装

第一步是安装python pip软件包管理器。
可以使用以下命令来实现。

root@localhost:~# apt-get update && apt-get install python-pip

下一步是使用pip命令安装aws cli。

root@localhost:~# pip install awscli

现在让我们验证使用pip安装的版本。
与我们之前获得的apt-get版本相比,它应该是最新的。

root@localhost:~# aws --version
aws-cli/1.11.128 Python/2.7.12 Linux/4.4.0-1022-aws botocore/1.5.91

配置AWS CLI

要使用cli访问aws服务,我们需要提供访问密钥和秘密密钥以及默认区域。
这可以使用aws cli提供的子命令来完成。
参见下文(以下步骤与我们选择的安装方法完全相同)。

root@localhost:~# aws configure
AWS Access Key ID [None]: AAJHADKA723KAHSUWXNAK82Q
AWS Secret Access Key [None]: EasfAUH8jsdsa\asfhwe&SHASNAKSOW872392jSMAs
Default region name [None]: us-east-1
Default output format [None]:

aws configure命令将提示我们输入访问密钥和秘密密钥(我们可以在此处输入访问密钥和秘密密钥,然后输入服务所在的区域。
在上面的示例中,我使用了us-east-1)。

aws configure命令在用户(我们用来触发aws configure命令的用户)的主目录中创建两个配置文件。
此配置文件位于主目录下的.aws目录下。

root@localhost:~# cd .aws/
root@ip-10-12-2-254:~/.aws# ls
config  credentials

.aws目录中有两个文件。
一个是“ config”,另一个是“ credentials”。
配置文件包含配置,例如我们在awsaw configure命令期间输入的区域和输出格式。
凭证文件包含访问密钥和秘密密钥。

root@ip-10-12-2-254:~/.aws# cat config
[default]
region = us-east-1
root@ip-10-12-2-254:~/.aws# cat credentials
[default]
aws_access_key_id = AAJHADKA723KAHSUWXNAK82Q
aws_secret_access_key = EasfAUH8jsdsa\asfhwe&SHASNAKSOW872392jSMAs

现在我们知道了aws configure的功能,我们可以轻松地创建.aws目录(以及config和凭据文件。
这消除了我们手动启动aws configure命令的需要。

请记住,只有其主目录具有带有证书的.aws和具有适当内容的配置文件的用户才能执行与aws相关的命令。

另一种替代方法是在linux shell中配置两个环境变量。
一个变量将称为AWS_ACCESS_KEY_ID,另一个变量将称为AWS_SECRET_ACCESS_KEY。
因此,基本上没有aws configure,也没有带有“ config”和“ credentials”文件的.aws目录,我们只需触发以下两个命令并开始使用aws cli来访问服务。

root@localhost:~# export AWS_ACCESS_KEY_ID=AAJHADKA723KAHSUWXNAK82Q
root@loclahost:~# export AWS_SECRET_ACCESS_KEY=EasfAUH8jsdsa\asfhwe&SHASNAKSOW872392jSMAs
root@localhost:~# export AWS_DEFAULT_REGION=us-east-1

如何为系统中的所有用户配置AWS CLI?

这很简单。
打开文件/etc/environment并添加以下两行(将其替换为正确的访问密钥和秘密密钥)。

ubuntu@localhost:~$cat /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
AWS_ACCESS_KEY_ID=AAJHADKA723KAHSUWXNAK82Q
AWS_SECRET_ACCESS_KEY=EasfAUH8jsdsa\asfhwe&SHASNAKSOW872392jSMAs
AWS_DEFAULT_REGION=us-east-1

请注意,我们仅在上面添加了最后两行。
每当用户登录时都会调用此文件。
因此将为所有用户设置这些环境变量。
因此,系统中的所有用户都应该能够访问aws cli并与云服务进行交互。

如何验证AWS CLI配置是否正确?

这可以通过尝试使用cli与某些AWS云服务进行交互来完成。
尝试执行以下任何命令,看看它是否可以正常工作。

aws s3 ls

上面的命令将获取我们帐户中所有s3存储桶的列表。

aws ec2 describe-instances

那应该列出我们帐户中的所有实例。

aws ec2 stop-instances --instance-ids i-da2345532

那应该停止具有该ID的实例。

aws ec2 start-instances --instance-ids i-da2345532

请记住以下事实:只有为配置中使用的IAM用户的访问密钥和秘密密钥分配了适当的必需权限集后,所有这些操作才会成功。