Você pode usar o gerenciamento de configuração (Puppet / Chef) atrás de um firewall?

5

Tenho a tarefa de projetar e implementar o gerenciamento de configuração (Chef) para uma infraestrutura na qual os servidores de produção são completamente segmentados e isolados atrás de uma caixa de salto.

 ---------------------------------
| Production | Staging, Test, Dev |
 ---------------------------------

A única maneira de colocar os arquivos em produção é com uma conexão sftp. Existem apenas duas pessoas que têm a capacidade de pular diretamente para a produção. Uma exceção pode ser feita para permitir que um sistema de automação rigidamente controlado (como o jenkins) copie arquivos para produção.

Normalmente, eu recomendaria a configuração de um único servidor de chef na nuvem, mas os servidores de produção não podem ter acesso externo. (Sem muito convencimento de algumas pessoas muito relutantes).

Uma solução que vejo é usar dois servidores Chef

 ---------------------------------------
| chef-production | chef-local         |
| Production      | Staging, Test, Dev |
 ---------------------------------------

Usar dois servidores chef tem alguns problemas que não sei como superar.

  • Como posso manter a produção e os livros de receitas dos servidores locais em sincronia?
  • Como poderíamos adicionar novos nós de produção ao servidor chef de produção, sem exigir que um dos administradores executasse o comando faca?
  • Como poderíamos fazer alterações nos dados na produção?

Estou aberto a outras sugestões. Estou pensando em não usar um servidor de chef e, em vez disso, use chef-zero ou chef-solo . Meu entendimento é que não é a melhor solução ao usar vários ambientes.

    
por spuder 23.04.2015 / 00:17

1 resposta

4

Eu odeio esse tipo de ambiente sem confiança, mas eu entendo; Você tem que lidar com os requisitos biz ...

Você pode contornar o problema de manter os livros de receitas em sincronia com um pipeline de IC / CD para seus livros de culinária, de modo que eles sejam implantados automaticamente nos dois servidores Chef. Você gostaria de aproveitar coisas como o livro de receitas que fixa extensivamente, mas disponibilizar atualizações (mesmo que elas não sejam usadas ativamente) não é problemático. O Sous-Chef é uma ferramenta da qual a minha empresa tem um código-fonte aberto para ajudar as pessoas a começarem a automatizar o teste de livros de receitas e o upload para um Chef Server. Ele teria que ser modificado para atender um caso de vários Chef Servers, mas a maioria está lá.

Como o Chef12 possui os dois recursos para "Organizações" e "Controle de Acesso Baseado em Funções" (RBAC), cada um dos quais costumava estar disponível apenas no produto pago, você poderia estabelecer permissões de modo que apenas as pessoas especificadas pudessem modificar Ambiente de produção, ou que a Produção era uma organização separada dentro do mesmo servidor Chef.

A adição de novos nós ao servidor Prod Chef requer algum tipo de bootstrapping. Os detalhes variam muito, dependendo do seu ambiente, mas com o instalador local para esse ambiente, você pode defini-lo como um trabalho de execução única quando fizer o kickstart ou implantar a partir de um modelo de VM. Se você tem ferramentas girando em torno de VMs via API, não deve ser muito ruim estendê-lo para adicionar os comandos de bootstrapping. (Chef é, afinal, um sistema orientado por API.)

Sua pergunta sobre as referências de dados é muito ampla aqui.

Lembre-se de que ter vários chef-servers requererão knife configs separadas, portanto você terá que lembrar de passar um flag de configuração para cada um ou agrupar comandos para knife associando um arquivo de configuração. A menos que você tenha automação suficiente para nunca precisar de knife .

Chef-Zero destina-se a testes locais em que você usaria Chef-Solo , mas deseja pesquisar. Não faz muito sentido gerenciar suas caixas de produtos.

Algumas empresas usam Chef-Solo para seus ambientes sem testes de maneira "executada conforme a necessidade". Pessoalmente, não gosto disso. Eu gosto de Solo para testes locais (como no Vagrant), ou se você está configurando sistemas com a intenção de serem imutáveis. Se você vai ter servidores de longa duração (em grande parte sem estado e demolidos com frequência, o padrão Chef-Server ajudará você a evitar que as configurações se desviem com o tempo.

    
por 23.04.2015 / 02:33

Tags