Parece haver benefícios de velocidade ao usar os modelos da VMware para criar novas VMs. No entanto, estou preocupado com possíveis implicações menos óbvias de segurança e flexibilidade. Por exemplo:
- Chaves geradas pela primeira inicialização
- Métodos proprietários da VMware para definir as configurações do servidor (IPs, nome do host, etc.)
Em uma loja que é quase inteiramente VMware, com a maioria do Linux sendo distros baseados em RHEL, alguém se deparou com algumas armadilhas ao provisionar a partir de modelos? E as preocupações ao clonar?
BTW: Independentemente do método de provisionamento inicial, ele seria usado principalmente como um bootstrap para o Puppet para o restante da configuração.
Dependendo do ambiente e do seu processo de provisionamento, pode ser mais rápido construir de novo do que usar modelos VMware e o clone do recurso de modelo.
Eu trabalhei em um grande ambiente VMware com foco em Linux, onde o processo de implantação não era tão automatizado quanto deveria. Contamos com modelos vSphere de sistemas RHEL, mas foi necessário muito trabalho manual após o clone inicial.
Vantagens do modelo:
sys-unconfig
comando para "desconfigurar" um sistema antes da modelagem. Este é o equivalente do Linux ao da MicrosoftSysprep
e remove regras de interface de rede, chaves SSH, configurações de rede, etc.Vantagens de implementação de PXE/kickstart:
No final, depende do seu aplicativo e de quanto trabalho adicional é necessário após a instalação inicial do sistema operacional. Adotei uma abordagem híbrida, usando clones para as instâncias mais complexas e novas compilações por meio de um sistema de provisionamento para sistemas de rotina. Eles não são mutuamente exclusivos.
Os detalhes dependem da distribuição, mas darei a você algumas coisas do CentOS/RHEL para lembrar ao criar seu modelo.
/etc/ssh/
/etc/udev/rules.d/70-persistent-net.rules
que se referem às suas NICsAmbos serão gerados novamente na primeira vez que você inicializar.
Você precisa de alguma forma de executar atualizações depois de implantar o modelo.
Com o vSphere, você pode definir a rede e o nome do host. Como usuário do Puppet, posso apenas instalar o cliente Puppet em meu modelo junto com um arquivo
puppet.conf
. Se estou usando vários ambientes, na verdade preciso de um modelo diferente para cada ambiente.Ao modificar um modelo, lembre-se de remover os arquivos acima.
Pessoalmente, embora a implantação a partir do modelo seja um pouco mais rápida, prefiro provisionar a partir do PXE, pois é mais flexível.
Dê uma olhada em Preparing Linux Template VMs e as referências post-it, Creating a puppet ready image (CentOS/Fedora) . Talvez isso ajude.
Btw: Eu realmente gosto da sua ideia de implantar JeOS VMs e, em seguida, usar o fantoche para personalizá-lo em um banco de dados, Web ou qualquer outro servidor.
outro ponto positivo para iniciar o Linux vm é que os hosts serão automaticamente totalmente corrigidos na instalação (os vm obtêm os pacotes mais recentes dos repositórios locais).
Obviamente, você pode obter a mesma coisa se mantiver seus modelos atualizados, mas isso não é algo que vi acontecer nos ambientes em que trabalhei.
A seção %post de nossos arquivos kickstart (sim, temos vários, dependendo de quais sistemas instalamos, como 32 ou 64 bits, por exemplo) apenas instala o agente cfengine e, a partir daí, os hosts são gerenciados pelo cfengine.
Não cronometrei, mas duvido que a clonagem seja mais rápida quando a infraestrutura estiver instalada. Além disso, se for, você também pode instalar hosts reais ;-)
Para sistemas baseados em Debian, usamos FAI , o que também é incrível.