_Эта проблема была первоначально открыта @kojiromike как hashicorp/terraform#14768. Он был перенесен сюда в результате разделения провайдера . Исходное тело вопроса ниже._
0.9.5
resource "local_file" "foo" {
content = "contents"
filename = "foo.txt"
}
Мой umask здесь 0022
Файл должен быть создан с режимом -rw-r--r--
.
Файл был создан с режимом -rwxr-xr-x
.
Хотя я бы предпочел возможность предоставления определенного режима в конфигурации tf, я думаю, что Terraform следует отказаться от поддержки стандартного поведения open
, что приведет к тому, что файл не будет исполняемым.
Я думаю, что 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" }
Не лучшее решение, но помогло мне! Надеюсь, поможет.
Очень красивый трюк!
Похоже, https://github.com/terraform-providers/terraform-provider-local/pull/5 закроет это
Теперь поддерживаются режимы (реализовано в пулл-реквесте №30), используйте аргумент file_permission
, выпущенный в v1.4.0
.
Это не работает для меня. Когда я создаю свой локальный файл, я устанавливаю этот параметр file_permission = "0600"
. Однако файл по-прежнему создается с 755.
Самый полезный комментарий
Хотя у нас нет подходящего решения для этого, я использую следующий обходной путь.
Не лучшее решение, но помогло мне! Надеюсь, поможет.