【问题标题】:How to set variables using terragrunt before_hook如何使用 terragrunt before_hook 设置变量
【发布时间】:2021-05-16 10:16:22
【问题描述】:

我需要使用一些 gcloud 命令才能在 GCP 上创建 Redis 实例,因为 terraform 不支持我需要的某些选项。

我正在尝试这个:

terraform {
  # Before apply, run script.
  before_hook "create_redis_script" {
    commands     = ["apply"]
    execute  = ["REDIS_REGION=${local.module_vars.redis_region}", "REDIS_PROJECT=${local.module_vars.redis_project}", "REDIS_VPC=${local.module_vars.redis_vpc}", "REDIS_PREFIX_LENGHT=${local.module_vars.redis_prefix_lenght}", "REDIS_RESERVED_RANGE_NAME=${local.module_vars.redis_reserved_range_name}", "REDIS_RANGE_DESCRIPTION=${local.module_vars.redis_range_description}", "REDIS_NAME=${local.module_vars.redis_name}", "REDIS_SIZE=${local.module_vars.redis_size}", "REDIS_ZONE=${local.module_vars.redis_zone}", "REDIS_ALT_ZONE=${local.module_vars.redis_alt_zone}", "REDIS_VERSION=${local.module_vars.redis_version}", "bash", "../../../scripts/create-redis-instance.sh"]
  }

脚本是这样的:

echo "[+]Creating IP Allocation Automatically using <$REDIS_VPC-network\/$REDIS_PREFIX_LENGHT>"
gcloud compute addresses create $REDIS_RESERVED_RANGE_NAME \
    --global \
    --purpose=VPC_PEERING \
    --prefix-lenght=$REDIS_PREFIX_LENGHT \
    --description=$REDIS_RANGE_DESCRIPTION \
    --network=$REDIS_VPC

我得到的错误是:

terragrunt apply
5b35d0bf15d0a0d61b303ed32556b85417e2317f
5b35d0bf15d0a0d61b303ed32556b85417e2317f
5b35d0bf15d0a0d61b303ed32556b85417e2317f
ERRO[0002] Hit multiple errors:
Hit multiple errors:
exec: "REDIS_REGION=us-east1": executable file not found in $PATH 
ERRO[0002] Unable to determine underlying exit code, so Terragrunt will exit with error code 1

【问题讨论】:

  • 我遇到了同样的错误。你可以尝试execute = ["env", "REDIS_REGION=${local.module_vars.redis_region}" ...] 之类的东西。 env 命令将设置 env 变量...在我的情况下,我没有收到任何错误,但 env 变量仍然没有设置。所以,我没有在 before_hook 中这样做,而是在 @ 987654328@(见direnv.net

标签: bash terraform terragrunt


【解决方案1】:

我遇到了同样的问题并辞职将值作为参数而不是环境变量传递。

它涉及到修改脚本,并且是一个不太清晰的声明,但它有效:|

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-28
    • 2021-06-01
    • 2023-01-20
    • 1970-01-01
    • 1970-01-01
    • 2021-12-16
    • 2020-07-23
    • 2021-05-01
    相关资源
    最近更新 更多