kubevirt_vm:
namespace:
name:
cpu_cores:
memory:
disks:
- name:
volume:
containerDisk:
image:
disk:
bus:
You can automate container-native virtualization management tasks by using Red Hat Ansible Automation Platform. Learn the basics by using an Ansible Playbook to create a new virtual machine.
Ansible is an automation tool used to configure systems, deploy software, and perform rolling updates. Ansible includes support for container-native virtualization, and Ansible modules enable you to automate cluster management tasks such as template, persistent volume claim, and virtual machine operations.
Ansible provides a way to automate container-native virtualization management, which you can also
accomplish by using the oc
CLI tool or APIs. Ansible is unique because it
allows you to integrate
KubeVirt modules with other Ansible modules.
You can use the kubevirt_vm
Ansible Playbook to create virtual machines in
your OpenShift Container Platform cluster using Red Hat Ansible Automation Platform.
Red Hat Ansible Engine version 2.8 or newer
Edit an Ansible Playbook YAML file so that it includes the kubevirt_vm
task:
kubevirt_vm:
namespace:
name:
cpu_cores:
memory:
disks:
- name:
volume:
containerDisk:
image:
disk:
bus:
This snippet only includes the |
Edit the values to reflect the virtual machine you want to create, including the
namespace
, the number of cpu_cores
, the memory
, and the disks
. For
example:
kubevirt_vm:
namespace: default
name: vm1
cpu_cores: 1
memory: 64Mi
disks:
- name: containerdisk
volume:
containerDisk:
image: kubevirt/cirros-container-disk-demo:latest
disk:
bus: virtio
If you want the virtual machine to boot immediately after creation, add
state: running
to the YAML file. For example:
kubevirt_vm:
namespace: default
name: vm1
state: running (1)
cpu_cores: 1
1 | Changing this value to state: absent deletes the virtual machine, if it
already exists. |
Run the ansible-playbook
command, using your playbook’s file name as the
only argument:
$ ansible-playbook create-vm.yaml
Review the output to determine if the play was successful:
(...) TASK [Create my first VM] ************************************************************************ changed: [localhost] PLAY RECAP ******************************************************************************************************** localhost : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
If you did not include state: running
in your playbook file and you want to
boot the VM now, edit the file so that it includes state: running
and run the
playbook again:
$ ansible-playbook create-vm.yaml
To verify that the virtual machine was created, try to access the VM console.
You can use the kubevirt_vm
Ansible Playbook to automate virtual machine
creation.
The following YAML file is an example of the kubevirt_vm
playbook. It includes
sample values that you must replace with your own information if you run the
playbook.
---
- name: Ansible Playbook 1
hosts: localhost
connection: local
tasks:
- name: Create my first VM
kubevirt_vm:
namespace: default
name: vm1
cpu_cores: 1
memory: 64Mi
disks:
- name: containerdisk
volume:
containerDisk:
image: kubevirt/cirros-container-disk-demo:latest
disk:
bus: virtio