scale_computing.hypercore.vm_import module – Handles import of the virtual machine

Note

This module is part of the scale_computing.hypercore collection (version 1.6.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 scale_computing.hypercore.

To use it in a playbook, specify: scale_computing.hypercore.vm_import.

New in scale_computing.hypercore 1.0.0

Synopsis

  • Use vm_import to import virtual machine, from a specified location.

  • Use either smb or http_uri, which are mutually exclusive.

Parameters

Parameter

Comments

cloud_init

dictionary

Configuration to be used by cloud-init (Linux) or cloudbase-init (Windows).

When non-empty will create an extra ISO device attached to VirDomain as a NoCloud datasource.

There has to be cloud-config comment present at the beginning of cloud_init file or raw yaml.

Default: {}

meta_data

string

Configuration meta-data to be used by cloud-init (Linux) or cloudbase-init (Windows).

Valid YAML syntax.

user_data

string

Configuration user-data to be used by cloud-init (Linux) or cloudbase-init (Windows).

Valid YAML syntax.

cluster_instance

dictionary

Scale Computing HyperCore instance information.

auth_method

string

Select login method. If not set, the value of the SC_AUTH_METHOD environment variable will be used.

Value local - username/password is verified by the HyperCore server (the local users).

Value oidc - username/password is verified by the configured OIDC provider.

Choices:

  • "local" ← (default)

  • "oidc"

host

string / required

The HyperCore instance URL.

If not set, the value of the SC_HOST environment variable will be used.

For example “https://10.1.2.3:443”.

password

string / required

Password used for authentication.

If not set, the value of the SC_PASSWORD environment variable will be used.

timeout

float

Timeout in seconds for the connection with the Scale Computing HyperCore API instance.

If not set, the value of the SC_TIMEOUT environment variable will be used.

username

string / required

Username used for authentication.

If not set, the value of the SC_USERNAME environment variable will be used.

http_uri

dictionary

Specified URI location.

path, file name.

file_name

string / required

File name to be imported from the specified URI location.

path

string / required

Specified URI location, where the virtual machine is to be imported from.

smb

dictionary

SMB server, access and location data.

file_name

string

Specified .xml file name.

If not specified, plugin assumes .xml file name is the same as directory name from the path parameter.

password

string / required

Password.

path

string / required

Specified location on the SMB server, where the exported virtual machine is to be imported from.

It must start with ‘/’.

server

string / required

Specified SMB server, where the selected virtual machine is to be imported from.

Has to be IP or DNS name.

username

string / required

Username.

vm_name

string / required

Virtual machine name.

Used to identify selected virtual machine by name.

Notes

Note

  • check_mode is not supported.

Examples

- name: import VM from SMB
  scale_computing.hypercore.vm_import:
    vm_name: demo-vm
    smb:
      server: IP-or-DNS-name-of-SMB-server
      path: /share/path/to/vms/demo-vm-exported-v0
      username: user
      password: pass
      file_name: my_file.xml
  register: output

- name: import VM from SMB with cloud init data added
  scale_computing.hypercore.vm_import:
    vm_name: demo-vm
    smb:
      server: IP-or-DNS-name-of-SMB-server
      path: /share/path/to/vms/demo-vm-exported-v0
      username: user
      password: pass
      file_name: my_file.xml
    cloud_init:
      user_data: "{{ lookup('file', 'cloud-init-user-data-example.yml') }}"
      meta_data: |
        # Content for cloud-init meta-data (or user-data) can be inline too.
  register: output

- name: import VM from URI
  scale_computing.hypercore.vm_import:
    vm_name: demo-vm
    http_uri:
      path: 'http://some-address-where-file-is-located'
      file_name: actual_file_name.xml
  register: output

- name: import VM from URI with cloud init data added
  scale_computing.hypercore.vm_import:
    vm_name: demo-vm
    http_uri:
      path: 'http://some-address-where-file-is-located'
      file_name: actual_file_name.xml
    cloud_init:
      user_data: "{{ lookup('file', 'cloud-init-user-data-example.yml') }}"
      meta_data: |
        # Content for cloud-init meta-data (or user-data) can be inline too.
  register: output

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key

Description

msg

string

Return message.

Returned: success

Sample: "Virtual machine - VM-TEST - import complete."

Authors

  • Domen Dobnikar (@domen_dobnikar)