Makefile 无法根据输入在帐户特定文件夹内生成 tf 文件

问题描述 投票:0回答:0

下面是将 ami.template 文件作为输入的 make 文件。

预处理目标运行 preprocess.sh shell 脚本并传递两个环境变量 REGIONS 和 ACCOUNTS。这些变量的值分别设置为区域和 aws_account_alias Makefile 变量的值。

根据 ACCOUNTS 变量和基于 REGIONS 变量的区域特定数据生成输出文件。

出口地区=us-east-1 ; export aws_account_alias=模拟账户

制作文件

default, help::
    @echo "USAGE:"
    @echo "then make all"

all : preprocess

preprocess:
    REGIONS="${regions}" ACCOUNTS="${aws_account_alias}" ./preprocess.sh ami.template

ami.模板文件

provider "aws" {
  alias  = "${REGION}"
  region = "${REGION}"
}

module "ami_${aws_account_alias}_${regions}" {
  count             = contains(var.regions, "${REGION}")
  source            = "./modules/ami/"
  providers = {
    aws = aws.${REGION}
  }
}

preprocess.sh 文件

#!/bin/bash

for template in $*
do
    BASE_NAME=$(basename "${template}" .tf.template)
    for region in ${REGIONS}
    do
        # shellcheck disable=SC2002
        cat "${template}" | REGION=${region} envsubst > "${BASE_NAME}"."${region}".tf
    done
done

我正在寻找解决方案,其中模板和 Makefile 应该是唯一的,并且从 root 支持,它应该能够根据输入在帐户特定文件夹内生成 tf 文件

example:
demo-account-1
  ami_demo-account-1_us-east-1
  ami_demo-account-1_us-east-2
demo-account-2
  ami_demo-account-2_eu-east-1
  ami_demo-account-2_ap-south-1
bash shell makefile
© www.soinside.com 2019 - 2024. All rights reserved.