.. _run_cloud_init_locally: How to run ``cloud-init`` locally ********************************* It's very likely that you will want to test ``cloud-init`` locally before deploying it to the cloud. Fortunately, there are several different virtual machine (VM) and container tools that are ideal for this sort of local testing. * :ref:`boot cloud-init with QEMU ` * :ref:`boot cloud-init with LXD ` * :ref:`boot cloud-init with Libvirt ` * :ref:`boot cloud-init with Multipass ` .. _run_with_qemu: QEMU ==== `QEMU`_ is a general purpose computer hardware emulator that is capable of running virtual machines with hardware acceleration as well as emulating the instruction sets of different architectures than the host that you are running on. The ``NoCloud`` datasource allows users to provide their own user data, metadata, or network configuration directly to an instance without running a network service. This is helpful for launching local cloud images with QEMU. Create your configuration ------------------------- We will leave the :file:`network-config` and :file:`meta-data` files empty, but populate :file:`user-data` with a cloud-init configuration. You may edit the :file:`network-config` and :file:`meta-data` files if you have a config to provide. .. code-block:: shell-session $ touch network-config $ touch meta-data $ cat >user-data <user-data <