python fabric3 在远程 ec2 实例上执行 boto3 功能
python fabric3 executing boto3 functionality on remote ec2 instance
我正在尝试通过 python fabric3 脚本从本地计算机执行 boto3 功能。
本地机器配置:
- 已安装 python3.5 fabric3
- 使用 fabric3 创建 aws rds 快照的脚本。
- ssh 授权存储在
ssh-add ~/.ssh/ec2.pem
aws EC2 实例上的配置:
创建了 ~/.aws/config 和 ~/.aws/credentials ans 存储所需的配置,如:
a. region=, output in ~/.aws/config aws_access_key_id=,
b. aws_secret_access_key in ~/.aws/credentials
rds 仅对 ec2 实例开放。
观察:
从本地机器执行 fabric 脚本时它要求 botocore.exceptions.NoRegionError: You must specify a region.
如果我在 boto3.client(region_name='') 中提供区域名称
它会要求
botocore.exceptions.NoCredentialsError: Unable to locate credentials
表示python fabric 不接收 ~/.aws/config 和 ~/.aws/credentials 文件。
1. python fabric 是否从 ~/.aws 获取凭证和配置?因为我不想通过结构脚本提供凭证
2。在 aws-ec2
上实现基于结构的部署的标准方法是什么
暂时在创建 boto3.client() 时我通过了所需的 aws_access_key_id
aws_secret_access_key
,但问题仍然是为什么 boto3 客户端没有选择 .aws/config 和 .aws/cred 文件,同时通过 Python Fabric 脚本触发。
我正在尝试通过 python fabric3 脚本从本地计算机执行 boto3 功能。
本地机器配置:
- 已安装 python3.5 fabric3
- 使用 fabric3 创建 aws rds 快照的脚本。
- ssh 授权存储在
ssh-add ~/.ssh/ec2.pem
aws EC2 实例上的配置:
创建了 ~/.aws/config 和 ~/.aws/credentials ans 存储所需的配置,如:
a. region=, output in ~/.aws/config aws_access_key_id=, b. aws_secret_access_key in ~/.aws/credentials
rds 仅对 ec2 实例开放。
观察:
从本地机器执行 fabric 脚本时它要求
botocore.exceptions.NoRegionError: You must specify a region.
如果我在 boto3.client(region_name='') 中提供区域名称 它会要求
botocore.exceptions.NoCredentialsError: Unable to locate credentials
表示python fabric 不接收 ~/.aws/config 和 ~/.aws/credentials 文件。
1. python fabric 是否从 ~/.aws 获取凭证和配置?因为我不想通过结构脚本提供凭证
2。在 aws-ec2
上实现基于结构的部署的标准方法是什么暂时在创建 boto3.client() 时我通过了所需的 aws_access_key_id
aws_secret_access_key
,但问题仍然是为什么 boto3 客户端没有选择 .aws/config 和 .aws/cred 文件,同时通过 Python Fabric 脚本触发。