1

我遇到了一种情况,我试图v0.11.7在 ec2 实例中的 kubernetes (k8s) 内的 jenkins 内运行 terraform () 脚本。

  • k8s 工作线程在具有特定 aws 实例配置文件的 ec2 实例上运行
  • terraform 脚本通过各种环境变量、凭据和配置文件进行配置,以便能够为其承担特定角色

该设置在我的 macbook 上运行良好,但遗憾的是,在 jenkins/k8s/ec2 中,ec2 实例配置文件占主导地位并且 terraform 脚本失败,因为它需要特定的假设角色才能完成其操作。

它实际上在terraform plan步骤中失败,TF_LOG输出显示该角色是从实例配置文件派生的。

想知道是否有人遇到过这种情况并有任何相关指导?

4

1 回答 1

0

看起来我的特定用例的特殊调味料是 Terraform 的 aws provider skip_metadata_api_checkflag,它显然禁止 Terraform 围绕承担 ec2 实例配置文件的角色的行为,并允许它回退到它在我的特定设置中承担角色的正常机制.

我的具体设置涉及使用提供程序的profilearg以及涉及 aws 共享和文件的命名配置文件功能credentialsconfig

Terraform 中假设角色的另一个选项是提供者的assume_rolearg,但我更喜欢更抽象的profile选项。

我还发现,将环境变量与 AWS Go SDK(由 Terraform 使用)的文档较少的环境变量AWS_PROFILE结合使用也可以作为替代方案,并允许完全省略参数,这可能对某些人更有吸引力AWS_SDK_LOAD_CONFIGprofile

于 2018-08-22T08:39:17.313 回答