# Getting Started With Virtualbox

The Virtualbox cloud module allows you to manage a local Virtualbox hypervisor. Remote hypervisors may come later on.

## Dependencies

The virtualbox module for Salt Cloud requires the Virtualbox SDK which is contained in a virtualbox installation from

https://www.virtualbox.org/wiki/Downloads

## Configuration

The Virtualbox cloud module just needs to use the virtualbox driver for now. Virtualbox will be run as the running user.

`/etc/salt/cloud.providers` or `/etc/salt/cloud.providers.d/virtualbox.conf`:

    virtualbox-config:
       driver: virtualbox

## Profiles

Set up an initial profile at `/etc/salt/cloud.profiles` or `/etc/salt/cloud.profiles.d/virtualbox.conf`:

    virtualbox-test:
        provider: virtualbox-config
        clonefrom: VM_to_clone_from
        # Optional
        power_on: True
        deploy: True
        ssh_username: a_username
        password: a_password
        sudo: a_username
        sudo_password: a_password
        # Example minion config
        minion:
            master: localhost
        make_master: True

`clonefrom` Mandatory

  Enter the name of the VM/template to clone from.

So far only machines can only be cloned and automatically provisioned by Salt Cloud.

### Provisioning

In order to provision when creating a new machine `power_on` and `deploy` have to be `True`.

Furthermore to connect to the VM `ssh_username` and `password` will have to be set.

`sudo` and `sudo_password` are the credentials for getting root access in order to deploy salt

## Actions

`start`

  Attempt to boot a VM by name. VMs should have unique names in order to boot the correct one.

`stop`

  Attempt to stop a VM. This is akin to a force shutdown or 5 second press.

## Functions

`show_image`

  Show all available information about a VM given by the image parameter

      $ salt-cloud -f show_image virtualbox image=my_vm_name