juju-core (1.13) 不支持旧的 pyjuju 配置变量ec2-uri
和s3-uri
。
launchpad.net/goamz/aws/aws.go
因此我采用了 Go 源并对具有必要 API 端点(GreenQloud)的新区域进行了调整。
现在 juju bootstrap 不会立即说;
错误:您提供的 AWS 访问密钥 ID 在我们的记录中不存在
在进行更改之前,它总是会这样说。现在它需要大约 15 秒才会出现相同的错误。我添加了调试launchpad.net/juju-core/provider/ec2/ec2.go -> SetConfig()
并验证它已通过。
还有什么可能向 Amazon API 而不是我指定的 GreenQloud 端点发出请求?有任何提示吗?
答案1
好吧,答案似乎在 juju-core README 文件中,但我没有仔细阅读:
--上传工具
客户端程序
juju
和 juju “工具”同步部署。发布时juju-core
,将提取与该 juju 版本匹配的已编译工具并将其上传到已知位置。这会占用一个发布版本号,并意味着下一个开发版 juju 没有可用的工具。因此,在使用开发版 juju 时,您需要传递一个额外的标志,--upload-tools
以指示juju
客户端从源代码构建一组工具并将其作为引导过程的一部分上传到环境中。
由于我已构建自己的版本以将 GreenQloud 作为 AWS“区域”,因此我需要包含此参数。AWS 错误消息有点奇怪,但无论如何,在我包含此参数后它就消失了。
现在我面临的是,error: cannot start bootstrap instance: no instance types found in greenqloud
但这是一个不同的故事:)