Use o Puppet para implantar arquivos no diretório inicial de todos os usuários

1

Desejo implantar um arquivo de texto simples (um modelo de mensagem de confirmação do git) no diretório pessoal de cada usuário usando o Puppet.

Me deparei com esta postagem que parece muito próximo, mas a parte em que não estou claro é como gerar uma lista de usuários para cada nó?

Na postagem, eles codificam os usuários assim:

 applink::desktoplinks { [ "user1", "user2", "user3" ]: }

Não posso codificar a lista porque são máquinas de desenvolvedor e podem ter vários usuários diferentes específicos para cada nó.

Olhando para este post , Eu acho que eu preciso usar recursos virtuais, mas sendo um novato total, apenas lendo os documentos e as amostras fornecidas eu não consigo entender.

Alguém pode me indicar uma amostra ou receita rápida em algum lugar que ilustre como fazer isso?

    
por Millhouse 17.10.2011 / 19:15

2 respostas

3

Para gerar uma lista de usuários, você precisa criar um novo fato . Qualquer informação que venha do host que será configurado precisa ser um fato.

Por exemplo, o fato a seguir retorna todo o /etc/passwd :

# etcpasswd.rb

Facter.add("etcpasswd") do
        setcode do
                File.read('/etc/passwd')
        end
end

Você coloca esse fato no subdiretório lib/facter de um módulo ou em plugins/facter no diretório base do Puppet. Eu acho que você precisa de pluginsync = true em puppet.conf também, mas isso pode ser apenas para versões mais antigas do Puppet.

Você pode ver um exemplo disso no meu módulo de usuários de marionetes .

    
por 17.10.2011 / 23:22
0

Eu sou realmente novo no fantoche, então não tenho certeza se isso é possível, mas suspeito que não.

Você considerou simplesmente transmitir uma cópia do seu modelo e um script para um único local em cada caixa. Em seguida, configure um recurso exec para que, sempre que o modelo git for atualizado, ele execute o script. O script faria um loop sobre /home copiando os arquivos para os locais apropriados.

    
por 17.10.2011 / 21:25