community.libvirt.virt_net 模块 – 管理 libvirt 网络配置

注意

此模块是 community.libvirt 集合(版本 1.3.0)的一部分。

如果您使用的是 ansible 包,您可能已经安装了这个集合。它不包含在 ansible-core 中。要检查是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.libvirt。您需要进一步的要求才能使用此模块,请参阅 要求 了解详情。

要在 playbook 中使用它,请指定:community.libvirt.virt_net

概要

  • 管理 libvirt 网络。

要求

执行此模块的主机需要满足以下要求。

  • libvirt python 绑定

  • python >= 2.6

  • python-lxml

参数

参数

注释

autostart

布尔值

指定是否应在系统启动时自动启动给定网络。

选择

  • false

  • true

command

字符串

除了状态管理之外,还提供了各种非幂等命令。请参阅示例。在 Ansible 版本 2.1 中添加了 Modify。

选择

  • "define"

  • "create"

  • "start"

  • "stop"

  • "destroy"

  • "undefine"

  • "get_xml"

  • "list_nets"

  • "facts"

  • "info"

  • "status"

  • "modify"

name

别名:network

字符串

正在管理的网络的名称。请注意,必须先使用 xml 定义网络。

state

字符串

指定您希望网络处于哪种状态。如果为“active”,网络将启动。如果为“present”,则确保网络存在但不更改其状态;如果缺少,则需要指定 xml 参数。如果为“inactive”,则网络将停止。如果为“undefined”或“absent”,则网络将从 libvirt 配置中删除。

选择

  • "active"

  • "inactive"

  • "present"

  • "absent"

uri

字符串

Libvirt 连接 uri。

默认值: "qemu:///system"

xml

字符串

与 define 命令一起使用的 XML 文档。

必须使用 lookup 的原始 XML 内容。XML 不能引用文件。

示例

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

- name: Start a network
  community.libvirt.virt_net:
    command: create
    name: br_nat

- name: List available networks
  community.libvirt.virt_net:
    command: list_nets

- name: Get XML data of a specified network
  community.libvirt.virt_net:
    command: get_xml
    name: br_nat

- name: Stop a network
  community.libvirt.virt_net:
    command: destroy
    name: br_nat

- name: Undefine a network
  community.libvirt.virt_net:
    command: undefine
    name: br_nat

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

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

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

- name: Ensure that a network is inactive
  community.libvirt.virt_net:
    state: inactive
    name: br_nat

- name: Ensure that a given network will be started at boot
  community.libvirt.virt_net:
    autostart: true
    name: br_nat

- name: Disable autostart for a given network
  community.libvirt.virt_net:
    autostart: false
    name: br_nat

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

作者

  • Maciej Delmanowski (@drybjed)