Automated fast-vm
deploy with Ansible
Admittively fast-vm
initial installation and configuration is
not the easiest one and has several places where choices can be made. However
for some people this might not be interesting or some would like to just get
the thing installed with some kind of "recommended configuration ready for
use". So to achieve this I have created 2 Ansible roles which if combined gets
all the needed setup and ready for use. In case you don't care about any
settings then you will receive applying these roles:
fast-vm
installation from repositoryfast-vm
fully configured on 50GB thinpool LV created during installation with network 192.168.42.0/24 for VMs- support for UEFI VMs
- support for fencing VMs using fence_xvm with key in
/etc/cluster/fence_xvm.key
qemu-kvm
andseabios-bin
with support for MegaRAID SAS and LSI SAS controllers- Import of all
fast-vm
images from public image list
To achieve above you will need Ansible and VG that has 50GB of free space and target system should be CentOS/RHEL 7.3. With this knowledge you can use the example playbook below and get all of above done in less than hour depending on your Internet connection, HW, etc.
Example offast-vm.yml
--- - hosts: servers remote_user: root roles: - { role: 'OndrejHome.fast-vm-server', fastvm_vg: 'data_vg', tags: 'always' } - { role: 'OndrejHome.fast-vm-import-images' }Example of
fast-vm.hosts
[servers] 192.168.XXX.XXXCommands that will make all above to happen.
# ansible-galaxy install OndrejHome.fast-vm-server # ansible-galaxy install OndrejHome.fast-vm-import-images # ansible-playbook -i fast-vm.hosts fast-vm.ymlIf you wish to import only some of the images to be imported then just run the
ansible-playbook
command with --tags
argument and
specify which images or group of images you want. Below is example on how to
import all CentOS 7 images (normal and UEFI), Fedora 25 image and all Debian
images.
# ansible-playbook -i fast-vm.hosts fast-vm.yml --tags 'centos7_all,fedora_25,debian'
That's it. In above example VG 'data_vg' is used for fast-vm
thinpool LV. All other things are done by the ansible roles. Feel free to play
with above and check the README files of ansible roles to learn more on what
everything you can change if you want to. Link for ansible roles are below.