我遇到了一种情况,我试图在ec2-instance的kubernetes(k8s)的jenkins中运行terraform(v0.11.7
)脚本。
该设置可以在我的Macbook上正常运行,但可悲的是,在jenkins / k8s / ec2中,ec2实例配置文件占主导,并且terraform脚本失败,因为它需要特定的假定角色才能完成操作。
在terraform plan
步骤上实际上失败了,显示了TF_LOG
的输出,表明角色是从实例配置文件派生的。
想知道是否有人遇到这种情况并有相关指导吗?
答案 0 :(得分:0)
在我的特定用例中,看起来特别的调味料是Terraform的aws提供者skip_metadata_api_check
flag,它显然抑制了Terraform承担ec2 instance-profile角色的行为,并允许其回退到其正常机制在我的特定设置中承担角色。
我的特定设置涉及与提供商共享的credentials
和config
文件一起使用的profile
arg和named profile feature一起使用。
Terraform中另一个假定角色的选项是提供者的assume_role
arg,但是我更喜欢抽象的profile
选项。
我还发现,将
AWS_PROFILE
环境变量与AWS Go SDK(由Terraform使用)的the less well documentedAWS_SDK_LOAD_CONFIG
environment variable结合使用也可以作为替代方法,并且可以省略{{1 }}的论点可能更吸引一些人