python_terraform:无法禁用应用确认

-1 投票
1 回答
26 浏览
提问于 2025-04-12 12:11

我在使用 python_terraform 自动应用我的 Terraform 配置时遇到了一个问题。具体来说,即使我在 terraform.apply() 函数调用中加上了 auto_approve=True 的参数,它还是会让我确认。下面是我的代码片段:

python
from python_terraform import Terraform

# Initialize Terraform
t = Terraform()
variables = {'a': 'b'}
print("Initializing Terraform...")
return_code, stdout, stderr = terraform.init()
if return_code == 0:
    print("Terraform initialized successfully")

# Show state
terraform.show()

# Apply Terraform changes
print("Applying Terraform changes...")
return_code, stdout, stderr = terraform.apply(
    auto_approve=True,  # supposed to auto-approve but doesn't seem to work
    var=variables,
    lock=False,
    capture_output=False,
    input=False
)
if stdout and stderr:
    print(stdout.decode('utf-8'))  # Print stdout
    print(stderr.decode('utf-8'))  # Print stderr

print("done successfully")

但是,当我运行这个脚本时,它还是会让我确认,并显示以下信息:

Do you want to perform these actions?
  Terraform will perform the actions described above.
  Only 'yes' will be accepted to approve.
  Enter a value: #if i tap "yes" it works

1 个回答

0

我找到了问题的解决办法。在 terraform_python 脚本里有一个小错误。要解决这个问题,首先要找到 terraform_python 的安装位置。在Ubuntu系统中,你可以使用以下命令:

pip show python_terraform

接下来,在 __init__.py 文件里找到这一行:

default['auto-approve'] = (skip_plan == True)

然后把它替换成这个:

default['auto_approve'] = (skip_plan == True)

问题就解决了。希望这个信息对某些人有帮助。

撰写回答