【问题标题】:Relative path in local-execlocal-exec 中的相对路径
【发布时间】:2019-04-14 20:41:02
【问题描述】:

我正在尝试在 local-exec 配置程序中引用本地脚本。该脚本位于模块目录上方的几个级别。使用${path.module}/../../scripts/somescript.ps1 会产生path not found 错误。

将脚本目录移动到模块目录下可以解决问题,但不幸的是,在我的情况下这不是一个有效的选项。工作场景:${path.module}/scripts/somescript.ps1

我在任何地方都没有看到这是 TF 限制或错误,因此非常感谢任何帮助。

提前谢谢你。

这是我的本地执行块:

provisioner "local-exec" { 
interpreter = ["pwsh", "-Command"] 
command = "${path.module}/scripts/Generate-SQLInfo.ps1 -user ${var.az_sql_server_admin_login} -dbname ${var.az_sql_db_name} -resourceGroupName ${module.resource_group.az_resource_group_name} -sqlServerName ${module.sql_server.sql_server_name} -vaultName ${module.keyvault.az_keyvault_name} -azSubscriptionID ${var.az_subscription_id}"
 }

【问题讨论】:

  • 你能分享minimal reproducible example吗?这里最重要的是代码库的结构。
  • 向我们展示你的 local-exec 块你是如何尝试运行命令的。
  • 嗨@Nagashayan,这是我的local-exec块:```provisioner "local-exec" {interpreter = ["pwsh", "-Command"] command = "${path.module }/scripts/Generate-SQLInfo.ps1 -user ${var.az_sql_server_admin_login} -dbname ${var.az_sql_db_name} -resourceGroupName ${module.resource_group.az_resource_group_name} -sqlServerName ${module.sql_server.sql_server_name} -vaultName ${module .keyvault.az_keyvault_name} -azSubscriptionID ${var.az_subscription_id}" } ``
  • @MaximDavidov 您可以编辑您的初始问题以扩展它以包含其他人在 cmets 中要求您提供的其他信息。这是更好的方法,以便新内容可读。

标签: terraform


【解决方案1】:

尝试使用 working_dir

https://www.terraform.io/docs/provisioners/local-exec.html

provisioner "local-exec" { 
working_dir = "${path.module}/../scripts/" # assuming its this directory
interpreter = ["pwsh", "-Command"] 
command = "Generate-SQLInfo.ps1 ..."
 }

I dont have resources right now to test this but probably this should work for you. 


【讨论】:

  • 工作就像一个魅力。谢谢@Nagashayan
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-15
  • 2011-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-06
相关资源
最近更新 更多