Skip to content

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

VagrantBecomes
config.vm.definea machine (the whole file is one machine without it)
vm.box, box_versionvm.os, and vm.image when the box isn't Isoloom's own for that OS
communicator = "winrm", guest = :windowsa Windows OS
private_network with an ipnetworks (by block) and the machine's address on them
forwarded_porta 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.