Terraform-provider-local: El recurso local_file debe tener modos, no establecer un bit ejecutable de forma predeterminada

Creado en 7 nov. 2018  ·  8Comentarios  ·  Fuente: hashicorp/terraform-provider-local

_Este problema lo abrió originalmente @kojiromike como hashicorp/terraform#14768. Se migró aquí como resultado de la división del proveedor . El cuerpo original del problema se encuentra a continuación._


Versión Terraform

0.9.5

Recursos afectados

  • archivo local

Archivos de configuración de Terraform

resource "local_file" "foo" {
  content = "contents"
  filename = "foo.txt"
}

Mi umask aquí es 0022

Comportamiento esperado

Se debería haber creado un archivo con el modo -rw-r--r-- .

Comportamiento real

Se creó un archivo con el modo -rwxr-xr-x .

Opiniones humildes

Si bien preferiría la opción de proporcionar un modo específico en la configuración de tf, creo que Terraform debería respaldar el comportamiento estándar de open , lo que daría como resultado que el archivo no sea ejecutable.

Comentario más útil

Si bien no tenemos una solución adecuada para eso, estoy usando la siguiente solución.

resource "local_file" "foo" {
  content = "contents"
  filename = "foo.txt"
  provisioner "local-exec" {
    command = "chmod 644 foo.txt"
}

No es la mejor solución, ¡pero funcionó para mí! Espero eso ayude.

Todos 8 comentarios

Creo que mode debería ser un atributo. Por ejemplo, uso una clave privada generada dinámicamente para un conjunto de instancias, pero uso el archivo loca_file para colocarlo en mi ruta local en caso de que necesite usar ssh y solucionar el problema más adelante. Sin embargo, en mi caso, el archivo .pem generado debe estar en el modo 600 para poder usarlo con el comando ssh -i <*.pem> <host> .

Estoy de acuerdo, tengo este problema al guardar archivos que necesitan modos menos permisivos.

Si bien no tenemos una solución adecuada para eso, estoy usando la siguiente solución.

resource "local_file" "foo" {
  content = "contents"
  filename = "foo.txt"
  provisioner "local-exec" {
    command = "chmod 644 foo.txt"
}

No es la mejor solución, ¡pero funcionó para mí! Espero eso ayude.

@rodrigocmn ¡ Gracias por esa solución, funcionó muy bien para mi escenario!

Si bien no tenemos una solución adecuada para eso, estoy usando la siguiente solución.

resource "local_file" "foo" {
  content = "contents"
  filename = "foo.txt"
  provisioner "local-exec" {
    command = "chmod 644 foo.txt"
}

No es la mejor solución, ¡pero funcionó para mí! Espero eso ayude.

¡Muy buen truco!

Los modos ahora son compatibles (implementados en la solicitud de extracción n.º 30), use el argumento file_permission publicado en v1.4.0 .

Esto no funciona para mí. Cuando creo mi archivo local, configuro este parámetro file_permission = "0600" . Sin embargo, el archivo todavía se crea con 755.

¿Fue útil esta página
0 / 5 - 0 calificaciones