virt_net – Manage libvirt network configuration — Ansible Documentation

- AnsibleFest
- Products
- Community
- Webinars & Training
- Blog

Documentation

# virt_net – Manage libvirt network configuration

New in version 2.0.

- Synopsis
- Requirements
- Parameters
- Examples
- Status

## Synopsis

- Manage libvirt networks.

## Requirements

The below requirements are needed on the host that executes this module.

- python >= 2.6
- python-libvirt
- python-lxml

## Parameters

Parameter | Choices/Defaults | Comments
--- | --- | ---
autostart boolean | Choices: no yes | Specify if a given network should be started automatically on system boot.
command - | Choices: define create start stop destroy undefine get_xml list_nets facts info status modify | in addition to state management, various non-idempotent commands are available. See examples. Modify was added in version 2.1
name - / required |  | name of the network being managed. Note that network must be previously defined with xml. aliases: network
state - | Choices: active inactive present absent | specify which state you want a network to be in. If 'active', network will be started. If 'present', ensure that network is present but do not change its state; if it's missing, you need to specify xml argument. If 'inactive', network will be stopped. If 'undefined' or 'absent', network will be removed from libvirt configuration.
uri - | Default: "qemu:///system" | libvirt connection uri.
xml - |  | XML document used with the define command.

## Examples

    # Define a new network
    - virt_net:
        command: define
        name: br_nat
        xml: '{{ lookup("template", "network/bridge.xml.j2") }}'

    # Start a network
    - virt_net:
        command: create
        name: br_nat

    # List available networks
    - virt_net:
        command: list_nets

    # Get XML data of a specified network
    - virt_net:
        command: get_xml
        name: br_nat

    # Stop a network
    - virt_net:
        command: destroy
        name: br_nat

    # Undefine a network
    - virt_net:
        command: undefine
        name: br_nat

    # Gather facts about networks
    # Facts will be available as 'ansible_libvirt_networks'
    - virt_net:
        command: facts

    # Gather information about network managed by 'libvirt' remotely using uri
    - virt_net:
        command: info
        uri: '{{ item }}'
      with_items: '{{ libvirt_uris }}'
      register: networks

    # Ensure that a network is active (needs to be defined and built first)
    - virt_net:
        state: active
        name: br_nat

    # Ensure that a network is inactive
    - virt_net:
        state: inactive
        name: br_nat

    # Ensure that a given network will be started at boot
    - virt_net:
        autostart: yes
        name: br_nat

    # Disable autostart for a given network
    - virt_net:
        autostart: no
        name: br_nat

    # Add a new host in the dhcp pool
    - virt_net:
        name: br_nat
        command: modify
        xml: "<host mac='FC:C2:33:00:6c:3c' name='my_vm' ip='192.168.122.30'/>"

## Status

- This module is not guaranteed to have a backwards compatible interface. [preview]
- This module is maintained by the Ansible Community. [community]

### Authors

- Maciej Delmanowski (@drybjed)

Hint

If you notice any issues in this documentation you can edit this document to improve it.