54 lines
1.3 KiB
Python
54 lines
1.3 KiB
Python
import sys
|
|
|
|
from backbone.hypervisor import Shell
|
|
|
|
shell = Shell()
|
|
|
|
|
|
def apt_install(packages):
|
|
shell.execute(f"sudo apt install --yes --no-install-suggests --no-install-recommends {packages}")
|
|
|
|
|
|
def main(args):
|
|
prepare()
|
|
setup_vagrant()
|
|
setup_kvm()
|
|
setup_libvirt()
|
|
setup_packer()
|
|
|
|
|
|
def prepare():
|
|
shell.execute("sudo apt update")
|
|
apt_install("build-essential")
|
|
|
|
|
|
def setup_vagrant():
|
|
VAGRANT_SERVER = "https://releases.hashicorp.com/vagrant/2.4.6"
|
|
VAGRANT_PACKAGE = "vagrant_2.4.6-1_amd64.deb"
|
|
shell.execute(f"wget {VAGRANT_SERVER}/{VAGRANT_PACKAGE} -O {VAGRANT_PACKAGE}")
|
|
shell.execute(f"sudo dpkg -i {VAGRANT_PACKAGE}")
|
|
|
|
|
|
def setup_packer():
|
|
PACKER_KEY = "https://apt.releases.hashicorp.com/gpg"
|
|
PACKER_REPO = '"deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main"'
|
|
shell.execute(f"curl -fsSL {PACKER_KEY} | sudo apt-key add -")
|
|
shell.execute(f"sudo apt-add-repository {PACKER_REPO}")
|
|
apt_install("packer cloud-utils")
|
|
|
|
|
|
def setup_kvm():
|
|
apt_install("qemu-kvm")
|
|
shell.execute("sudo usermod -aG kvm $USER")
|
|
|
|
|
|
def setup_libvirt():
|
|
apt_install("libvirt-dev libvirt-daemon-system qemu-utils dnsmasq-base")
|
|
shell.execute("sudo usermod -aG libvirt $USER")
|
|
shell.execute("vagrant plugin install vagrant-libvirt")
|
|
shell.execute("vagrant plugin install vagrant-hostmanager")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
sys.exit(main(sys.argv))
|