Molecule QEMU
Project description
molecule-qemu
Molecule QEMU driver for testing Ansible roles.
Usage
pip install molecule-qemu
Install QEMU and CDRTools on macOS:
brew install qemu cdrtools
Supported platforms:
- MacOS 13.x (aaarch64)
Support guest OS:
- Ubuntu 20.04 LTS (aarch64)
- Ubuntu 20.04 LTS (x86_64)
- Debian 11 (x86_64)
Support of other platforms and guest OS is possible, but not tested. Please, open an issue if you want to add support for other platforms.
Network modes
Network mode is selected by setting vm_network
in molecule.yml
. Supported modes are: user
and vmnet-shared
. Default mode is user
. All modes are mutually exclusive.
user
network mode
This is the default network mode. It uses QEMU's user networking mode.
Mode is selected by setting vm_network: user
in molecule.yml
.
vmnet-shared
network mode
This mode uses QEMU's vmnet-shared
networking mode. It requires vmnet.framework
to be installed on the host. This mode is only supported on MacOS. It requires passwordless sudo
access for current user.
Mode is selected by setting vm_network: vmnet-shared
in molecule.yml
.
Examples
Example scenario
molecule init scenario default --driver-name molecule-qemu --verifier-name testinfra
Example molecule.yml
for user
network mode
---
dependency:
name: galaxy
driver:
name: molecule-qemu
platforms:
- name: ubuntu-1
image: https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-arm64.img
image_checksum: sha256:https://cloud-images.ubuntu.com/focal/current/SHA256SUMS
image_arch: aarch64
ssh_port: 10022
ssh_user: ubuntu
- name: ubuntu-2
image: https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-arm64.img
image_checksum: sha256:https://cloud-images.ubuntu.com/focal/current/SHA256SUMS
image_arch: x86_64 # default
ssh_port: 10023
ssh_user: ubuntu
- name: debian-1
image: https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-arm64.img
image_checksum: sha256:https://cloud-images.ubuntu.com/focal/current/SHA256SUMS
image_arch: x86_64 # default
ssh_port: 10024
ssh_user: debian
provisioner:
name: ansible
verifier:
name: ansible
Example molecule.yml
for vmnet-shared
network mode
---
dependency:
name: galaxy
driver:
name: molecule-qemu
platforms:
- name: ubuntu-1
image: https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-arm64.img
image_checksum: sha256:https://cloud-images.ubuntu.com/focal/current/SHA256SUMS
image_arch: aarch64
ssh_user: ubuntu
vm_network: vmnet-shared
- name: ubuntu-2
image: https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-arm64.img
image_checksum: sha256:https://cloud-images.ubuntu.com/focal/current/SHA256SUMS
image_arch: x86_64 # default
ssh_user: ubuntu
vm_network: vmnet-shared
- name: debian-1
image: https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-arm64.img
image_checksum: sha256:https://cloud-images.ubuntu.com/focal/current/SHA256SUMS
image_arch: x86_64 # default
ssh_user: debian
vm_network: vmnet-shared
provisioner:
name: ansible
verifier:
name: ansible
Cloud Images
Reference
QEMU vmnet-shared networking
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for molecule_qemu-0.4.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 997ec9b2d6924d09de4e4770633ef56833a6cbfcf2a1abe9e0a310493f2f134f |
|
MD5 | 8141d058fa2e4d9b77f7bd416a160ab1 |
|
BLAKE2b-256 | 0953db6704394f2b3af464b62d29d484d8cb6bd2d7a5940fe67352f1126bbde7 |