Como proteger melhor as máquinas virtuais vagas e excluir usuários vagabundos

1

Estou tentando usar o vagrant como forma de provisionar máquinas virtuais (configurando endereços IP, recursos, etc), mas também estou tentando dissociar a dependência do vagrant em ansible, ou seja, quero usar o vagrant para fazer uma provisão única usando ansible onde meu próprio usuário autorizado está configurado, proteja-o e use o Ansible separadamente para fazer mais provisionamentos nessas máquinas virtuais. Então eu ainda quero usar vagrant (talvez não há melhor maneira para isso) para trazer para cima / baixo / suspender / destruir máquinas virtuais usando vagrant.

Isso é o que eu tenho até agora:

vagrant up
  • Crie uma instância de VM nova usando uma caixa vagrant

fornecedor interno BP que é executado durante o vagrant up

  • Adicionar meu novo usuário (digamos ansibleuser )
  • Adicione minha própria chave pública a ansibleuser's .ssh , para que ansibleuser possa fazer login apenas por meio de chave privada (e desabilite o login por senha).
  • Modifique /etc/sudoers para sudo sem senha
  • [No momento não funciona] Apague vagrant user e altere a senha do root para tornar o root inacessível

Os problemas

  1. Não é possível excluir o usuário vagrant durante o BP provisioner porque o provedor está conectado como esse usuário. Eu preciso ter um provedor diferente executado como um usuário diferente ( ansibleuser ) para excluir o vagrant. Existe uma maneira melhor de fazer isso com um comando vagrant up de primeira e uma vez

  2. Se eu fizer vagrant halt e, em seguida, vagrant up novamente, o processo nunca será concluído porque ele tenta usar o ssh como vagrant e obtém Warning: Authentication failure. Retrying... e não consegue "trazê-lo" com êxito. Existe uma maneira de contornar isso. Uma solução possível seria especificar o usuário em config.ssh , mas seria necessário que houvesse alguma verificação condicional, dependendo de quando estou invocando vagrant up

Como posso resolver os dois problemas? Existe uma maneira melhor de fazer o que estou tentando realizar? Existe uma maneira melhor de provisionar uma máquina virtual segura e básica com o ssh configurado para que eu possa usar ansible para fazer o provisionamento adicional que eu quiser? Eu realmente gosto de como é fácil configurar a máquina virtual usando um arquivo vagrant, isto é, configurando shared_folders , configurando CPU/RAM resources, criando NICs virtuais.

    
por keyboard 20.11.2017 / 05:14

1 resposta

0

O Vagrant irá ssh com o usuário vagabundo para trabalhar sua mágica. Você pode especificar um usuário diferente com config.ssh.username (consulte link ). No entanto, parece que você não quer que o vagrant use qualquer usuário e, portanto, não há como evitar o problema.

Quanto à sua primeira pergunta, você deve deixar o vagrant terminar antes de destruir o usuário vagabundo. Então, novamente, não há como evitar isso também. : (

    
por 27.11.2017 / 20:41