Terraform-provider-local: O recurso local_file deve ter modos, não definir bit executável por padrão

Criado em 7 nov. 2018  ·  8Comentários  ·  Fonte: hashicorp/terraform-provider-local

_Esta edição foi originalmente aberta por @kojiromike como hashicorp/terraform#14768. Ele foi migrado para cá como resultado da divisão do provedor . O corpo original da edição está abaixo._


Versão Terraform

0,9,5

Recurso(s) Afetado(s)

  • arquivo_local

Arquivos de configuração do Terraform

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

Meu umask aqui é 0022

Comportamento esperado

Um arquivo deve ter sido criado com o modo -rw-r--r-- .

Comportamento real

Um arquivo foi criado com o modo -rwxr-xr-x .

Opiniões humildes

Embora eu prefira a opção de fornecer um modo específico na configuração do tf, acho que o Terraform deve retornar ao suporte ao comportamento padrão de open , o que resultaria no arquivo não ser executável.

Comentários muito úteis

Embora não tenhamos uma solução adequada para isso, estou usando a seguinte solução alternativa.

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

Não é a melhor solução, mas fez o truque para mim! Espero que ajude.

Todos 8 comentários

Acho que o mode deveria ser um atributo. Por exemplo, eu uso uma chave privada gerada dinâmica para um conjunto de instâncias, mas uso o loca_file para colocá-lo no meu caminho local caso eu precise fazer ssh e solucionar problemas posteriormente. Porém no meu caso o arquivo .pem gerado deve estar no modo 600 para poder ser usado com o comando ssh -i <*.pem> <host> .

Concordo, obtendo esse problema ao salvar arquivos que precisam de modos menos permissivos.

Embora não tenhamos uma solução adequada para isso, estou usando a seguinte solução alternativa.

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

Não é a melhor solução, mas fez o truque para mim! Espero que ajude.

@rodrigocmn Obrigado por esse trabalho, que funciona muito bem para o meu cenário!

Embora não tenhamos uma solução adequada para isso, estou usando a seguinte solução alternativa.

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

Não é a melhor solução, mas fez o truque para mim! Espero que ajude.

Muito legal o truque!

Os modos agora são suportados (implementados na solicitação pull #30), use o argumento file_permission lançado em v1.4.0 .

Isso não está funcionando para mim. Quando crio meu arquivo local, defino este parâmetro file_permission = "0600" . No entanto, o arquivo ainda é criado com 755.

Esta página foi útil?
0 / 5 - 0 avaliações