python_terraform没有使用s3后端



因为我使用python_terraform模块来应用terraform。我正在python中创建一个terraform后端文件并运行init,但在应用到terraform后,状态文件在本地创建

from python_terraform import *
import shutil
import os
var_file = "test_sqs_name"
print(var_file)
# creating the terraform.tf  file
backend_file = open("/Users/ankit/workplace/events-infra/terraform/formations/test/sqs/terraform.tf", "w+")
backend_file.write("""terraform { 
backend "s3" {
key            = "formations/project/sqs/dev/%s" 
bucket         = "terraform-backend-dev"
dynamodb_table = "terraform-backend-dev"
region         = "us-west-2"
profile        = "engdev"
}
}""" % (var_file))
try:
shutil.rmtree("/Users/ankit/workplace/events-infra/terraform/formations/test/sqs/.terraform")
except OSError as e:
print("Error: %s : %s" % (
"/Users/ankit/workplace/events-infra/terraform/formations/test/sqs/.terraform", e.strerror))
tf = Terraform(working_dir='/Users/ankit/workplace/events-infra/terraform/formations/test/sqs',
terraform_bin_path='/usr/local/bin/terraform-0-12-12',
var_file='/Users/ankit/workplace/events-infra/backend/test.us-west-2-' + var_file + '.tfvars',
)
tf.init(
dir_or_plan='/Users/ankit/workplace/events-infra/terraform/formations/test/sqs',
)
plan_value = tf.plan(no_color=IsFlagged, refresh=False, capture_output=True)
print(plan_value[1])
approve = {"auto-approve": True}
print(tf.apply(capture_output=True, auto_approve=True, skip_plan=True, **approve)[1])

文件一直保持打开状态,直到python退出,这可能会干扰Terraform读取它。

最新更新