我创建了小型学习 aws 基础设施来学习 SaltStack。三个 ec2 实例已经在运行。(主人和两个奴才)。一个 minion 是 iam-role-less,一个 minion 具有使他能够访问 ec2 和 s3 操作的角色。(角色设置纯粹用于测试目的。)
我试图发现的是如何配置 salt-master(或 salt-minion?),以便它可以访问 aws services。现在,我可以使用 SSH 访问第二个 minion,使用 boto3 我可以访问 ec2 和 ss3。但是,如果我使用 salt-master => salt-minion 中的 boto_ec2 执行模块,则会出现访问错误。我知道应该使用/etc/salt/cloud.providers和/etc/salt/cloud.profiles配置。我看到的大多数示例都期望 salt-minions 将由 salt 创建,所以我有点困惑如何使用预先存在的实例来做到这一点。
所以问题是:“配置 master 和 minions 以便能够使用 salt-master 和 orchestrate minions 中的 boto_ec2 模块(或任何其他模块)的正确和正确方法是什么。应该在哪里以及如何设置 AWS 凭证(密钥)?必须修改/添加哪些配置文件,必须运行哪些命令?实例已经启动。”
我找到了这个链接:https ://salt-cloud.readthedocs.org/en/latest/topics/aws.html但有些地方说:
"The following settings are always required for EC2:"
# Set the EC2 login data
my-ec2-config:
id: HJGRYCILJLKJYG
key: 'kdjgfsgm;woormgl/aserigjksjdhasdfgn'
keyname: test
securitygroup: quick-start
private_key: /root/test.pem
provider: ec2
但是没有说这个配置应该在哪里。在主/从?哪个文件?当我运行命令时:
# salt '*142*' boto_ec2.exists Master
: 'boto_ec2' __virtual__ returned False
ERROR: Minions returned with non-zero exit code
它不工作。