Guides
Import from Vagrant
Draft an isoloom.yml from a Vagrantfile, loops and variables included, with a note for everything the draft doesn't say.
isoloom import vagrant Vagrantfile
A Vagrantfile is a Ruby program: machines often come from a list and a loop. So Isoloom doesn't
read it as text: it runs it (in Vagrant's own Ruby when Vagrant is installed) against a
stand-in Vagrant module that records every setting, without creating or starting anything. The
draft comes from what the file actually set.
What it carries over
| Vagrant | Becomes |
|---|---|
config.vm.define | a machine (the whole file is one machine without it) |
vm.box, box_version | vm.os, and vm.image when the box isn't Isoloom's own for that OS |
communicator = "winrm", guest = :windows | a Windows OS |
private_network with an ip | networks (by block) and the machine's address on them |
forwarded_port | a service with publish |
provider cpus, memory (VirtualBox, VMware vmx, Parallels, libvirt, QEMU…) | resources |
provision "shell", path: | vm.provision (.sh, .ps1) |
provision "ansible_local" | vm.provision (a playbook run inside the VM) |
provision "ansible" (from your machine) | environment-level provision:, from a controller |
Global provisioners run before a machine's own, as in Vagrant. Notes cover the rest: inline
scripts (put them in a file), DHCP networks (give a fixed address), shared folders (Isoloom copies
the project), customize (raw commands for one hypervisor).
Importing a Vagrantfile Isoloom generated gives back the same machines and networks; Isoloom's own router and controller aren't machines of the environment, so they're left out.