Skip to content

Latest commit

 

History

History
1360 lines (702 loc) · 28.7 KB

netbox_virtual_machine_module.rst

File metadata and controls

1360 lines (702 loc) · 28.7 KB
orphan:

netbox.netbox.netbox_virtual_machine module -- Create, update or delete virtual_machines within NetBox

Note

This module is part of the netbox.netbox collection (version 3.17.0).

It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.

To install it, use: ansible-galaxy collection install netbox.netbox. You need further requirements to be able to use this module, see :ref:`Requirements <ansible_collections.netbox.netbox.netbox_virtual_machine_module_requirements>` for details.

To use it in a playbook, specify: netbox.netbox.netbox_virtual_machine.

.. rst-class:: ansible-version-added

New in netbox.netbox 0.1.0

  • Creates, updates or removes virtual_machines from NetBox

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

  • pynetbox
.. tabularcolumns:: \X{1}{3}\X{2}{3}

Parameter Comments
.. rst-class:: ansible-option-title

cert

.. ansible-option-type-line::

  :ansible-option-type:`any`

Certificate path

.. rst-class:: ansible-option-title

data

.. ansible-option-type-line::

  :ansible-option-type:`dictionary` / :ansible-option-required:`required`

Defines the virtual machine configuration

.. rst-class:: ansible-option-title

cluster

.. ansible-option-type-line::

  :ansible-option-type:`any`

The name of the cluster attach to the virtual machine

.. rst-class:: ansible-option-title

comments

.. ansible-option-type-line::

  :ansible-option-type:`string`

Comments of the virtual machine

.. rst-class:: ansible-option-title

config_template

.. ansible-option-type-line::

  :ansible-option-type:`any`

:ansible-option-versionadded:`added in netbox.netbox 3.17.0`

Configuration template

.. rst-class:: ansible-option-title

custom_fields

.. ansible-option-type-line::

  :ansible-option-type:`dictionary`

Must exist in NetBox

.. rst-class:: ansible-option-title

description

.. ansible-option-type-line::

  :ansible-option-type:`string`

:ansible-option-versionadded:`added in netbox.netbox 3.10.0`

The description of the virtual machine

.. rst-class:: ansible-option-title

device

.. ansible-option-type-line::

  :ansible-option-type:`any`

:ansible-option-versionadded:`added in netbox.netbox 3.9.0`

The device the virtual machine is pinned to in the cluster

.. rst-class:: ansible-option-title

disk

.. ansible-option-type-line::

  :ansible-option-type:`integer`

Disk of the virtual machine (GB)

.. rst-class:: ansible-option-title

local_context_data

.. ansible-option-type-line::

  :ansible-option-type:`dictionary`

configuration context of the virtual machine

.. rst-class:: ansible-option-title

memory

.. ansible-option-type-line::

  :ansible-option-type:`integer`

Memory of the virtual machine (MB)

.. rst-class:: ansible-option-title

name

.. ansible-option-type-line::

  :ansible-option-type:`string` / :ansible-option-required:`required`

The name of the virtual machine

.. rst-class:: ansible-option-title

platform

.. ansible-option-type-line::

  :ansible-option-type:`any`

The platform of the virtual machine

.. rst-class:: ansible-option-title

primary_ip4

.. ansible-option-type-line::

  :ansible-option-type:`any`

Primary IPv4 address assigned to the virtual machine

.. rst-class:: ansible-option-title

primary_ip6

.. ansible-option-type-line::

  :ansible-option-type:`any`

Primary IPv6 address assigned to the virtual machine

.. rst-class:: ansible-option-title

site

.. ansible-option-type-line::

  :ansible-option-type:`any`

The name of the site attach to the virtual machine

.. rst-class:: ansible-option-title

status

.. ansible-option-type-line::

  :ansible-option-type:`any`

The status of the virtual machine

.. rst-class:: ansible-option-title

tags

.. ansible-option-type-line::

  :ansible-option-type:`list` / :ansible-option-elements:`elements=any`

Any tags that the virtual machine may need to be associated with

.. rst-class:: ansible-option-title

tenant

.. ansible-option-type-line::

  :ansible-option-type:`any`

The tenant that the virtual machine will be assigned to

.. rst-class:: ansible-option-title

vcpus

.. ansible-option-type-line::

  :ansible-option-type:`float`

Number of vcpus of the virtual machine

.. rst-class:: ansible-option-title

virtual_machine_role

.. ansible-option-type-line::

  :ansible-option-type:`any`

The role of the virtual machine

.. rst-class:: ansible-option-title

netbox_token

.. ansible-option-type-line::

  :ansible-option-type:`string` / :ansible-option-required:`required`

The NetBox API token.

.. rst-class:: ansible-option-title

netbox_url

.. ansible-option-type-line::

  :ansible-option-type:`string` / :ansible-option-required:`required`

The URL of the NetBox instance.

Must be accessible by the Ansible control host.

.. rst-class:: ansible-option-title

query_params

.. ansible-option-type-line::

  :ansible-option-type:`list` / :ansible-option-elements:`elements=string`

This can be used to override the specified values in ALLOWED_QUERY_PARAMS that are defined

in plugins/module_utils/netbox_utils.py and provides control to users on what may make

an object unique in their environment.

.. rst-class:: ansible-option-title

state

.. ansible-option-type-line::

  :ansible-option-type:`string`

.. rst-class:: ansible-option-title

validate_certs

.. ansible-option-type-line::

  :ansible-option-type:`any`

If no, SSL certificates will not be validated.

This should only be used on personally controlled sites using a self-signed certificates.

.. rst-class:: ansible-option-line

:ansible-option-default-bold:`Default:` :ansible-option-default:`true`

Note

  • Tags should be defined as a YAML list
  • This should be ran with connection local and hosts localhost
- name: "Test NetBox modules"
  connection: local
  hosts: localhost
  gather_facts: False
  tasks:
    - name: Create virtual machine within NetBox with only required information
      netbox_virtual_machine:
        netbox_url: http://netbox.local
        netbox_token: thisIsMyToken
        data:
          name: Test Virtual Machine
          cluster: test cluster
        state: present

    - name: Delete virtual machine within netbox
      netbox_virtual_machine:
        netbox_url: http://netbox.local
        netbox_token: thisIsMyToken
        data:
          name: Test Virtual Machine
        state: absent

    - name: Create virtual machine with tags
      netbox_virtual_machine:
        netbox_url: http://netbox.local
        netbox_token: thisIsMyToken
        data:
          name: Another Test Virtual Machine
          cluster: test cluster
          site: Test Site
          tags:
            - Schnozzberry
        state: present

    - name: Update vcpus, memory and disk of an existing virtual machine
      netbox_virtual_machine:
        netbox_url: http://netbox.local
        netbox_token: thisIsMyToken
        data:
          name: Test Virtual Machine
          cluster: test cluster
          vcpus: 8
          memory: 8
          disk: 8
        state: present

Common return values are documented :ref:`here <common_return_values>`, the following are the fields unique to this module:

.. tabularcolumns:: \X{1}{3}\X{2}{3}

Key Description
.. rst-class:: ansible-option-title

msg

.. ansible-option-type-line::

  :ansible-option-type:`string`

Message indicating failure or info about what has been achieved

.. rst-class:: ansible-option-line

:ansible-option-returned-bold:`Returned:` always

.. rst-class:: ansible-option-title

virtual machine

.. ansible-option-type-line::

  :ansible-option-type:`dictionary`

Serialized object as created or already existent within NetBox

.. rst-class:: ansible-option-line

:ansible-option-returned-bold:`Returned:` success (when state=present)

Authors

  • Gaelle MANGIN (@gmangin)

Collection links

.. ansible-links::

  - title: "Issue Tracker"
    url: "https://github.com/netbox-community/ansible_modules/issues"
    external: true
  - title: "Repository (Sources)"
    url: "https://github.com/netbox-community/ansible_modules"
    external: true