Terraformのtfvarsファイルを自動生成する

過去記事からの派生案件で、Terraformで使うtfvarsファイルについて、繰り返しデータを多数投入する想定のため、これを自動生成したいと考えた。 Terraform loop処理の超シンプルな例 Python - Jinja2テンプレートで連続データを処理したい 実際に使用するファイル群は過去記事に記載しているがこんな想定で。(もちろん実際は他にもいろいろ必要)自動生成したいのは、以下の*印をつけたcodecommit.auto.tfvarsである。(この時点では手動で値を記述したもの) work_dir/ ├── codecommit.auto.tfvars * ├── codecommit.tf ├── config.tf ├── terraform.tfvars ├── variables.tf └── vpc.tf これとは別に、tfvars自動生成作業用ディレクトリの作業前はこの状態。以下3つのファイルを用意する。codecommit.tmplはテンプレートとなる。このファイル名はスクリプトから呼び出すので名称に注意。対象のAWSリソースによって変えるが、tfファイルの名称に合わせておけばよい。 script_dir/ ├── codecommit.tmpl ├── create_vars.py └── data.csv codecommit.tmpl param{{ num }} = { repository_name = "{{ repo_name }}" description = "{{ des }}" } data.csv (今回の例ではヘッダーありの前提) num,repo_name,des 1,"my-repo001","my-repo001の説明" 2,"my-repo002","my-repo002の説明" 3,"my-repo003","my-repo003の説明" create_vars.py import sys import pandas as pd from jinja2 import Environment, FileSystemLoader def main(): # テンプレート読み込み env = Environment(loader=FileSystemLoader('....

November 28, 2021