Terraform-provider-local: la ressource local_file doit avoir des modes, pas définir le bit exécutable par défaut

Créé le 7 nov. 2018  ·  8Commentaires  ·  Source: hashicorp/terraform-provider-local

_Ce problème a été initialement ouvert par @kojiromike sous le nom hashicorp/terraform#14768. Il a été migré ici à la suite de la scission du fournisseur . Le corps original du problème est ci-dessous._


Version Terraform

0.9.5

Ressource(s) affectée(s)

  • local_file

Fichiers de configuration Terraform

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

Mon umask ici est 0022

Comportement prévisible

Un fichier doit avoir été créé avec le mode -rw-r--r-- .

Comportement réel

Un fichier a été créé avec le mode -rwxr-xr-x .

Avis humbles

Bien que je préférerais l'option de fournir un mode spécifique dans la configuration tf, je pense que Terraform devrait se rabattre sur la prise en charge du comportement standard de open , ce qui empêcherait le fichier d'être exécutable.

Commentaire le plus utile

Bien que nous n'ayons pas de solution appropriée pour cela, j'utilise la solution de contournement suivante.

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

Pas la meilleure solution, mais a fait l'affaire pour moi! J'espère que ça aide.

Tous les 8 commentaires

Je pense que le mode devrait être un attribut. Par exemple, j'utilise une clé privée générée dynamiquement pour un ensemble d'instances, mais j'utilise loca_file pour la placer dans mon chemin local au cas où j'aurais besoin de ssh et de dépanner plus tard. Cependant, dans mon cas, le fichier .pem généré doit être en mode 600 pour pouvoir être utilisé avec la commande ssh -i <*.pem> <host> .

Je suis d'accord, j'obtiens ce problème lors de l'enregistrement de fichiers nécessitant des modes moins permissifs.

Bien que nous n'ayons pas de solution appropriée pour cela, j'utilise la solution de contournement suivante.

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

Pas la meilleure solution, mais a fait l'affaire pour moi! J'espère que ça aide.

@rodrigocmn Merci pour ce travail, qui fonctionne très bien pour mon scénario !

Bien que nous n'ayons pas de solution appropriée pour cela, j'utilise la solution de contournement suivante.

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

Pas la meilleure solution, mais a fait l'affaire pour moi! J'espère que ça aide.

Très belle astuce !

Les modes sont désormais pris en charge (implémentés dans la pull request #30), utilisez l' argument file_permission publié dans v1.4.0 .

Cela ne fonctionne pas pour moi. Lorsque je crée mon fichier local, je définis ce paramètre file_permission = "0600" . Cependant, le fichier est toujours créé avec 755.

Cette page vous a été utile?
0 / 5 - 0 notes