Skip to content

Test Ansible Roles with Multipass VMs

This guide runs the Ansible provisioning playbook against a Multipass VM to validate the roles on a systemd host with real kernel and networking behavior.

  • Multipass installed on your workstation
  • Ansible installed on your workstation
  • A dedicated SSH key stored at ansible/.keys/multipass.pub
Terminal window
mkdir -p ansible/.keys
ssh-keygen -t ed25519 -f ansible/.keys/multipass -N ""
Terminal window
multipass launch --name ansible-test --cpus 2 --memory 4G --disk 20G 24.04
Terminal window
multipass exec ansible-test -- bash -c "mkdir -p /home/ubuntu/.ssh && cat >> /home/ubuntu/.ssh/authorized_keys" < ansible/.keys/multipass.pub
Terminal window
cat <<'EOF' > /tmp/ansible-multipass-test.yaml
all:
children:
k8s_nodes:
hosts:
ansible-test:
ansible_host: 192.168.2.200
ansible_user: ubuntu
EOF

Replace the IP address with the one shown in multipass list.

Terminal window
ANSIBLE_HOST_KEY_CHECKING=False ANSIBLE_ROLES_PATH=ansible/roles \
ANSIBLE_PRIVATE_KEY_FILE=ansible/.keys/multipass \
ansible-playbook -i /tmp/ansible-multipass-test.yaml \
ansible/playbooks/provision-cpu.yaml \
-e @ansible/group_vars/all.yaml
Terminal window
multipass delete ansible-test
multipass purge