Q3
Scenario 3: Write a script that executes a Terraform workspace deployment, captures the stdout logs, and logs success/failure status.
💬Answer
import subprocess
import os
tf_dir = "/home/dev/DevOps/DevOps/12-Python-for-DevOps/terra-automate/terraform"
log_path = "/var/log/terraform_deploy.log"
def run_terraform():
print("Initiating Terraform deployment...")
try:
# Run apply command
process = subprocess.run(
f"terraform -chdir={tf_dir} apply -auto-approve",
shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
check=True
)
# Log success
with open(log_path, "a") as log:
log.write(f"\n--- SUCCESS: {os.uname()[1]} ---\n")
log.write(process.stdout.decode())
print("Terraform applied successfully.")
except subprocess.CalledProcessError as e:
# Log failure details
with open(log_path, "a") as log:
log.write(f"\n--- FAILURE: {os.uname()[1]} ---\n")
log.write(e.stderr.decode())
print(f"Terraform deployment failed. Error logged to {log_path}.")
run_terraform()
Related Python Questions
View All PythonQuestions →
Created by
Apurv Gujjar
DevOps & Cloud Engineer
Specialized in:DevOpsAWSGCPKubernetesTerraformDocker
View Portfolio