Existe alguma forma de automatizar o processo de setup de uma máquina nova para um novo colaborador?

Tem como automatizar o processo de setup do ambiente de um novo colaborador? Como se fosse um template que toda máquina básica segue, com o JDK, banco, estrutura de diretórios, arquivos de chaves de acesso já pré definidos? Não sei se uma imagem docker seria o ideal pois precisaria da interface gráfica

Antigamente havia o norton ghost. Você criava uma imagem e, a partir dela, criava um instalador “padrão”, contendo tudo o que a máquina base possuía.
Não sei se ainda existe. Mas, hoje em dia, deve haver ferramentas melhores.

Então, eu pesquisei e achei algumas coisas sobre Vagrant e Puppet, mas pelo que vi são VMs não sei se tem como transportar essas mudanças pro host

Bom dia!

Trabalhei numa empresa em que os colaboradores trabalhavam em instâncias de máquinas virtuais remotamente viabilizando inclusive o home office. As VMs eram pré-configuradas pela empresa já com os softwares necessários e regras de segurança pré-definidas. Procure por VDI (Virtual Desktop Infrastructure).

Em geral, VDI é uma solução cara. Teria que avaliar se justifica no seu caso.

Exemplo de fornecedor:
https://www.citrix.com/pt-br/products/citrix-virtual-apps-and-desktops/

Cara, não precisa de nada disso não.
Ele precisa criar uma imagem e instalá-la.
Porém, é corriqueiro que devs instalem seus ambientes… Então, vai dele.

Sim, em muitas empresas é bem comum um dev perder o dia todo configurando seu ambiente, então por isso eu estava atrás de um “bootstrap” de fácil replicação, sla imagina que a máquina pegou fogo, eu tenho outra pra repor porém ainda perderia muito tempo replicando o ambiente. Fora que máquinas configuradas manualmente são suscetíveis a erro humano, e até achar qual lib que faltou instalar ou qual variável está errada fica complicado

Então creio que a solução pro seu problema é mesmo criar uma imagem e distribuir ela. Dependendo do OS, é muito fácil fazer isso. Se for Linux tem soluções prontas pra isso, agr Windows/Mac já é mais dificil

Sei não, cara. A intenção é boa, mas, só nessa empresa onde estou desde janeiro, já tive que configurar o meu ambiente para 3 projetos diferentes. Como solucionaria isso? Cada vez que precisar, pega e formata a máquina do dev?

Se pegar fogo, o trabalho do cara está no repositório git ou svn ou similar.

Cara, SO é programado por seres humanos. Drivers, idem. Softwares, também. Ou seja, tudo está suscetível a isso.

Em geral, cria-se um kit contendo o básico para o projeto X ou Y ou Z. E esse cara roda as máquinas, passando de dev para dev, para evitar essas preocupações.

Pessoalmente, eu como dev prefiro configurar meu ambiente. É onde vou trabalhar, então eu sei o que preciso. Acho que cê tá procurando pelo em ovo…

Imagem padrão é o mais prático e mais usado. Normalmente quem faz isso é o pessoal de infraestrutura, desenvolvedor só tem que baixar o projeto e produzir.