Terraform-provider-local: local_file-Ressource sollte Modi haben und standardmäßig kein ausführbares Bit gesetzt sein

Erstellt am 7. Nov. 2018  ·  8Kommentare  ·  Quelle: hashicorp/terraform-provider-local

_Diese Ausgabe wurde ursprünglich von @kojiromike als hashicorp/terraform#14768 geöffnet. Aufgrund der Anbieteraufspaltung wurde es hierher migriert. Der Originaltext der Ausgabe ist unten._


Terraform-Version

0.9.5

Betroffene Ressource(n)

  • lokale_datei

Terraform-Konfigurationsdateien

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

Meine umask hier ist 0022

Erwartetes Verhalten

Eine Datei sollte mit dem Modus -rw-r--r-- erstellt worden sein.

Tatsächliches Verhalten

Eine Datei wurde mit dem Modus -rwxr-xr-x erstellt.

Bescheidene Meinungen

Obwohl ich die Option bevorzugen würde, einen bestimmten Modus in der tf-Konfiguration bereitzustellen, denke ich, dass Terraform auf die Unterstützung des Standardverhaltens von open zurückgreifen sollte, was dazu führen würde, dass die Datei nicht ausführbar wäre.

Hilfreichster Kommentar

Obwohl wir dafür keine geeignete Lösung haben, verwende ich die folgende Problemumgehung.

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

Nicht die beste Lösung, aber hat den Trick für mich getan! Ich hoffe es hilft.

Alle 8 Kommentare

Ich denke, das mode sollte ein Attribut sein. Zum Beispiel verwende ich einen dynamisch generierten privaten Schlüssel für eine Reihe von Instanzen, aber nutze die loca_file, um ihn in meinen lokalen Pfad einzufügen, falls ich später ssh und Fehler beheben muss. In meinem Fall sollte die generierte .pem -Datei jedoch im 600 -Modus sein, um mit dem ssh -i <*.pem> <host> -Befehl verwendet zu werden.

Ich stimme zu, dass dieses Problem beim Speichern von Dateien auftritt, die weniger freizügige Modi benötigen.

Obwohl wir dafür keine geeignete Lösung haben, verwende ich die folgende Problemumgehung.

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

Nicht die beste Lösung, aber hat den Trick für mich getan! Ich hoffe es hilft.

@rodrigocmn Vielen Dank für diese Umgehung, die für mein Szenario großartig funktioniert!

Obwohl wir dafür keine geeignete Lösung haben, verwende ich die folgende Problemumgehung.

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

Nicht die beste Lösung, aber hat den Trick für mich getan! Ich hoffe es hilft.

Sehr schöner Streich!

Modi werden jetzt unterstützt (implementiert in Pull-Anfrage Nr. 30), verwenden Sie das in v1.4.0 veröffentlichte file_permission -Argument .

Das funktioniert bei mir nicht. Wenn ich meine lokale Datei erstelle, setze ich diesen Parameter file_permission = "0600" . Die Datei wird aber trotzdem mit 755 erstellt.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen