Terraform-provider-local: Ресурс local_file должен иметь режимы, а не устанавливать исполняемый бит по умолчанию

Созданный на 7 нояб. 2018  ·  8Комментарии  ·  Источник: hashicorp/terraform-provider-local

_Эта проблема была первоначально открыта @kojiromike как hashicorp/terraform#14768. Он был перенесен сюда в результате разделения провайдера . Исходное тело вопроса ниже._


Терраформ-версия

0.9.5

Затронутые ресурсы

  • локальный_файл

Файлы конфигурации Terraform

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

Мой umask здесь 0022

Ожидаемое поведение

Файл должен быть создан с режимом -rw-r--r-- .

Фактическое поведение

Файл был создан с режимом -rwxr-xr-x .

Скромные мнения

Хотя я бы предпочел возможность предоставления определенного режима в конфигурации tf, я думаю, что Terraform следует отказаться от поддержки стандартного поведения open , что приведет к тому, что файл не будет исполняемым.

Самый полезный комментарий

Хотя у нас нет подходящего решения для этого, я использую следующий обходной путь.

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

Не лучшее решение, но помогло мне! Надеюсь, поможет.

Все 8 Комментарий

Я думаю, что mode должен быть атрибутом. Например, я использую динамически сгенерированный закрытый ключ для набора экземпляров, но использую файл loca_file, чтобы поместить его в свой локальный путь на случай, если мне понадобится ssh и устранить неполадки позже. Однако в моем случае сгенерированный файл .pem должен быть с режимом 600 , чтобы его можно было использовать с командой ssh -i <*.pem> <host> .

Я согласен, возникает эта проблема при сохранении файлов, которым нужны менее разрешающие режимы.

Хотя у нас нет подходящего решения для этого, я использую следующий обходной путь.

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

Не лучшее решение, но помогло мне! Надеюсь, поможет.

@rodrigocmn Спасибо за этот обходной путь, который отлично подходит для моего сценария!

Хотя у нас нет подходящего решения для этого, я использую следующий обходной путь.

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

Не лучшее решение, но помогло мне! Надеюсь, поможет.

Очень красивый трюк!

Теперь поддерживаются режимы (реализовано в пулл-реквесте №30), используйте аргумент file_permission , выпущенный в v1.4.0 .

Это не работает для меня. Когда я создаю свой локальный файл, я устанавливаю этот параметр file_permission = "0600" . Однако файл по-прежнему создается с 755.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги