es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

“${path.module}” en Terraform no puede encontrar un archivo

Necesito ejecutar un archivo Powershell desde Terraform. Aquí está mi código:

resource "null_resource" "create-sql-user" {

  provisioner "local-exec" {
    command = "'.${path.module}\\CreateUser.ps1'"
    interpreter = ["pwsh", "-Command"]
  }

  depends_on = ["azurerm_mssql_server.main"]
}

No puede encontrar el archivo con ${path.module}. Estoy obteniendo el siguiente error:

Error: Error running command '.\CreateUser.ps1': exit status 1. Output: .: The term '.\CreateUser.ps1' is not recognized as a name of a cmdlet, function, script file, or executable program.

He colocado el archivo ps1 en la carpeta de Terraform desde la cual estoy ejecutándolo como una prueba, así:

—> Terraform
—–> CreateUser.ps1
—–> Main.tf
—–> Outputs.tf

Seguramente {Path.module} se refiere a la carpeta que contiene Main.tf, ¿verdad?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, {path.module} debe apuntar al directorio que contiene el archivo de configuración de Terraform donde se declara el recurso, es decir, donde se encuentra el archivo Main.tf. Asegúrese de que el archivo CreateUser.ps1 esté ubicado en el mismo directorio que el archivo Main.tf. Si está ubicado en un subdirectorio, es posible que deba incluir la ruta del subdirectorio en el campo de comando, por ejemplo, comando = “.\subdirectorio\CreateUser.ps1”.

    Alternativamente, puede especificar una ruta absoluta al archivo ps1 en el campo de comando, por ejemplo, comando = “C:\ruta\a\CreateUser.ps1”. Solo asegúrese de que la ruta sea accesible desde la máquina donde Terraform está ejecutando el aprovisionador local-exec.

Comments are closed.