Testible¶
Playbooks to start and stop virtualbox vms to test your playbook.
When you write playbooks you would like to test on virtual machine before. More you learn ansible, more playbooks you write. You use snapshots to keep your vm at the right state. It becomes time consuming to start, stop and restore your vms.
Here comes testible, an easy and ansible way to start vm at state, test your playbooks, stop and restore state.
Quick start¶
Download playbooks¶
wget https://raw.githubusercontent.com/ioO/testible/master/start.yml
wget https://raw.githubusercontent.com/ioO/testible/master/stop.yml
Add ansible.cfg and set inventory¶
In the directory where you have downloaded playbooks add ansible.cfg file and set the inventory path:
# ansible.cfg
inventory = ./hosts
Note
Even if your inventory and host vars are in the same folder that the 2 playbooks, define the inventory to ./hosts. Both playbooks that start and stop vm are including vars of vm based on inventory_dir var.
Get uuid of virtualbox vm and snapshots¶
To get your vm uuid, run:
$ VBoxManage list vms
To get your vm snapshots, run:
$ VBoxManage snapshot uuid list
Set inventory and host_vars¶
In hosts file add localhost and vm:
localhost ansible_connection=local
vm_name
For each vm you need to add a var file. In hosts_vars/vm_name add:
---
host:
ip:
lan: 192.168.56.10
vbox:
uuid: vm_uuid
snapshots:
snap_name: snapshot_uuid
Start and stop vm¶
To start your vm and restore a snapshot:
ansible-playbook start.yml --extra-vars='{"vm": "vm_name", "snapshot": "snap_name"}'
To stop your vm:
ansible-playbook stop.yml --extra-vars='{"vm": "vm_name"}'