Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Subir VMs através do python

Estou desenvolvendo uma aplicação em Python, que atualmente roda no WSL e utiliza uma biblioteca baseada no Selenium. Desejo gerar um executável para rodar no Windows, porém, ao invés de executá-lo diretamente no sistema operacional do usuário, pretendo isolar sua execução em um ambiente virtual. A ideia é que o próprio código Python criasse esse ambiente e o codigo fosse executado ali dentro, eliminando a necessidade de o usuário ter conhecimentos técnicos para configurar uma máquina virtual e evitando o uso do Docker, que também pode ser complexo para usuários comuns.

Alguém conhece alguma biblioteca ou ferramenta em Python que permita iniciar e gerenciar uma máquina virtual (ou ambiente isolado) linux diretamente a partir do processo, possibilitando a execução de scripts nesse ambiente? Qual seria a abordagem mais adequada?

1 resposta
solução!

Olá Pedro! Tudo bem?

Criar e gerenciar máquinas virtuais diretamente a partir de um script Python pode ser um desafio, mas existem algumas abordagens que podem te ajudar a alcançar isso. Uma opção é usar a biblioteca pyvmomi, que é uma API do VMware vSphere para Python. Essa biblioteca permite que você interaja com infraestruturas de virtualização VMware, mas requer que você tenha acesso a um servidor vSphere.

Outra alternativa é utilizar o Vagrant em conjunto com o Python. O Vagrant é uma ferramenta que facilita a criação e configuração de ambientes de desenvolvimento virtuais. Você pode usar o Vagrant para definir a configuração da máquina virtual em um arquivo Vagrantfile e, em seguida, usar a biblioteca subprocess do Python para executar comandos do Vagrant a partir do seu script Python. Aqui está um exemplo básico de como você poderia fazer isso:

import subprocess

# Inicializa a máquina virtual usando Vagrant
subprocess.run(["vagrant", "up"])

# Executa um script dentro da máquina virtual
subprocess.run(["vagrant", "ssh", "-c", "python /vagrant/seu_script.py"])

Se você busca algo mais integrado e simples, considere também o uso de virtualenv ou venv para criar ambientes virtuais Python, que são mais leves do que máquinas virtuais completas e podem isolar dependências de projetos sem a necessidade de uma VM completa. No entanto, isso não isola o sistema operacional em si, apenas o ambiente Python.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.