如何在Ubuntu 16.04上安装和配置AWS CLI
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用户的访问密钥和秘密密钥分配了适当的必需权限集后,所有这些操作才会成功。