Qual é o layout recomendado do diretório do servidor fantoche?

5

Estou apenas criando um novo servidor de fantoches e queria descobrir qual é a estrutura de diretórios de melhores práticas? Eu dei uma olhada em diferentes fóruns e no site de fantoches e o que me impressiona é que todo mundo parece mostrar isso de uma maneira diferente. Não existe uma maneira recomendada e estrutura de diretórios?

Até agora eu tenho:

puppet/
   + manifests/
      + site.pp  
      + nodes/
          + production/
              + nodes.pp
          + dev/
              + nodes.pp
   + modules/

Estou um pouco preso depois disso:)

Então, eu acho que quero separar isso em funções de servidor como "webserver", que tem um serviço como "httpd" ou "nginx"

Qual é o melhor método para colocar tudo isso fora como se estivesse me deixando maluco por não parecer um método preferido para fazer isso, ou talvez eu tenha acabado de errar em todas as outras informações: (

É assim que você estruturaria os diretórios?

puppet/
   + manifests/
      + site.pp  
      + nodes/
          + production/
              + nodes.pp (Nodes have roles)
          + dev/
              + nodes.pp
       + roles/
           + web-server-apache.pp (Roles have modules)
   + modules/
       + web-server-apache/
           + manifests/
               + init.pp (This is where "httpd" gets defined and installs latest httpd)
           + templates/
           + files/
    
por Tony 07.02.2014 / 18:23

3 respostas

2

Sim, o layout do diretório padrão se parece com isso - que tipo de variações para essa estrutura você está vendo?

Seus diferentes serviços (httpd, nginx) devem ser manipulados por módulos dentro do diretório modules , enquanto anexar esses módulos a nós para inclusão em seu catálogo de configuração acontecerá dentro de manifests .

Como você está procurando definir seus papéis? Geralmente isso deve ser feito nas definições do nó, seja um arquivo nodes.pp no diretório manifests que é carregado por site.pp ou, em vez disso, usando o Hiera para as definições do nó (o que eu definitivamente recomendaria se você quiser isso.

    
por 07.02.2014 / 18:31
2

Sugiro usar um IDE como o Geppeto para gerenciar seus módulos de acordo com o Guia de Estilo do Módulo Puppet. O Geppetto criará os arquivos e a estrutura de diretórios necessários.

por 07.02.2014 / 18:47
1

So I think I want to separate this down to server roles such as "webserver", which has a service such as "httpd" or "nginx"

Eu acho que você está perguntando se você pode organizar seus módulos em uma árvore no sistema de arquivos. Na maioria das vezes, as pessoas não fazem isso. Eles apenas colocam muitos módulos no diretório de módulos e fornecem rótulos / nomes descritivos.

É útil criar um pouco de estrutura para um módulo específico. Por exemplo, você pode ter um módulo role , você poderia criar uma classe como role :: webserver which includes in modules that configure particular services. But if role :: webserver 'está apenas incluindo classes, você poderia aplicar as mesmas coisas em sua definição de nó, seu enc ou hiera .

No seu exemplo, você sugere a definição de serviços em services:: . Você vai achar isso muito difícil de manter, se você quiser usar módulos para a forja. Simplesmente porque todos os módulos de forja supõem basicamente que eles vivem no nível superior. Você teria que reescrever massivamente qualquer módulo que você baixou para que ele se encaixe em sua estrutura e o use.

Então, minha sugestão, desista da idéia de uma árvore e aceite que você terá um diretório grande de módulos de diretório simples.

    
por 07.02.2014 / 19:08