Spec-Zone.ru › Ansible

Модуль community.vmware.vmware_guest_disk – Управление дисками виртуальной машины в указанной инфраструктуре vCenter

Примечание

Этот модуль входит в коллекцию community.vmware (версия 6.2.0).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.

Для установки используйте: ansible-galaxy collection install community.vmware.

Чтобы использовать коллекцию в плейбуке, укажите: community.vmware.vmware_guest_disk.

  • Краткое описание
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения

Краткое описание

  • Этот модуль можно использовать для добавления, удаления и обновления дисков указанной виртуальной машины.
  • Этот модуль выполняет потенциально разрушительные операции. Перед продолжением внимательно прочитайте документацию.
  • Будьте осторожны при удалении указанного диска: это может привести к потере данных.

Параметры

Параметр

Комментарии

datacenter

string / обязательный

Имя центра обработки данных, которому принадлежит виртуальная машина.

disk

list / элементы типа dictionary

Список дисков для добавления или удаления.

Информация о виртуальных дисках передается с помощью этого списка.

По умолчанию: []

autoselect_datastore

boolean

Выбрать хранилище данных с наименьшей загрузкой. Указывайте только в том случае, если не задан параметр disk[].datastore.

Не применяется, если диск disk[].type=vpmemdisk.

Варианты:

  • false
  • true

bus_sharing

string

Работает только с паравиртуальным контроллером SCSI.

Позволяет двум виртуальным машинам совместно использовать шину SCSI.

Варианты:

  • "noSharing" ← (по умолчанию)
  • "physicalSharing"
  • "virtualSharing"

cluster_disk

boolean

Это значение позволяет двум машинам совместно использовать RDM.

Для основной машины, использующей RDM, применяется значение по умолчанию false.

Для дополнительной машины, использующей RDM, применяется true.

Варианты:

  • false ← (по умолчанию)
  • true

compatibility_mode

string

Режим совместимости для необработанных устройств. Обязателен, если disk[].type=rdm.

Варианты:

  • "physicalMode"
  • "virtualMode"

controller_number

integer

Этот параметр используется вместе с disk[].controller_type для указания номера шины контроллера.

Для disk[].controller_type=ide допустимы значения 0 и 1.

Варианты:

  • 0
  • 1
  • 2
  • 3

controller_type

string

Этот параметр добавлен для управления дисками, подключенными к контроллерам других типов, например SATA или NVMe.

Если не указан ни disk[].controller_type, ни disk[].scsi_type, используйте тип paravirtual.

Варианты:

  • "buslogic"
  • "lsilogic"
  • "lsilogicsas"
  • "paravirtual"
  • "sata"
  • "nvme"
  • "ide"

datastore

string

Имя хранилища данных или кластера хранилищ данных, используемого для диска.

Не применяется, если диск disk[].type=vpmemdisk.

destroy

boolean

Если disk[].state=absent, убедитесь, что файл диска удален из хранилища данных.

Варианты:

  • false
  • true ← (по умолчанию)

disk_mode

string

Тип режима диска. Если не указан, для нового диска используется режим persistent.

Если задан режим persistent, изменения немедленно и окончательно записываются на виртуальный диск.

Если задан режим independent_persistent, он аналогичен постоянному режиму, но не затрагивается снимками.

Если задан режим 'independent_nonpersistent, изменения виртуального диска записываются в журнал повторного выполнения и отбрасываются при выключении питания, но не затрагиваются снимками.

Не применяется, если диск disk[].type=vpmemdisk.

Варианты:

  • "persistent"
  • "independent_persistent"
  • "independent_nonpersistent"

filename

string

Существующий образ диска для использования. Файл должен уже существовать в хранилище данных.

Укажите имя файла в формате [datastore_name] path/to/file.vmdk.

Не применяется, если диск disk[].type=vpmemdisk.

iolimit

dictionary

Раздел задает доли и ограничения для ресурсов ввода-вывода хранилища.

Не применяется, если disk[].type=vpmemdisk.

limit

integer

Раздел задает предельные значения, которые не может превышать использование ресурсов виртуальной машиной, даже если ресурсы доступны.

shares

dictionary

Задает различные типы долей, которые можно назначить указанному диску.

level

string

Задает уровень для раздела долей.

Варианты:

  • "low"
  • "normal"
  • "high"
  • "custom"

level_value

integer

Пользовательское значение, если disk[].iolimit.shares.level=custom.

rdm_path

string

Путь к LUN для Raw Device Mapping, необходимый для disk[].type=rdm.

Допустимо только при disk[].type=rdm.

scsi_controller

integer

Номер контроллера SCSI. Для каждой виртуальной машины допускается не более 4 контроллеров SCSI.

Варианты:

  • 0
  • 1
  • 2
  • 3

scsi_type

string

Тип контроллера SCSI. Это значение требуется только при первом появлении контроллера SCSI.

Это значение игнорируется, если контроллер SCSI уже существует или disk[].state=absent.

Варианты:

  • "buslogic"
  • "lsilogic"
  • "lsilogicsas"
  • "paravirtual"

shares

dictionary

Раздел для iolimit описывает различные типы долей, которые можно назначить диску.

Не применяется, если диск disk[].type=vpmemdisk.

level

string

Задает уровень для раздела долей.

Варианты:

  • "low"
  • "normal"
  • "high"
  • "custom"

level_value

integer

Пользовательское значение, если disk[].shares.level=custom.

sharing

boolean

Режим совместного использования виртуального диска.

Включение совместного использования позволяет нескольким виртуальным машинам записывать данные на виртуальный диск.

Совместное использование можно включить только при disk[].type=eagerzeroedthick или disk[].type=rdm.

Варианты:

  • false ← (по умолчанию)
  • true

size

string

Размер хранилища диска.

Если задан размер, необходимо указать единицу измерения. Между числом и единицей измерения не допускается пробел.

Будет учтено только первое вхождение в элементе disk, даже если доступно несколько параметров size*.

size_gb

integer

Размер хранилища диска в ГБ.

size_kb

integer

Размер хранилища диска в КБ.

size_mb

integer

Размер хранилища диска в МБ.

size_tb

integer

Размер хранилища диска в ТБ.

state

string

Состояние диска.

Если задано значение absent, диск будет окончательно удален из конфигурации виртуальной машины и из хранилища VMware.

Если задано значение present, диск будет добавлен, если он отсутствует у указанного контроллера и с указанным номером устройства.

Если диск существует, но имеет другой размер, его размер будет увеличен; уменьшение размера диска не допускается.

Варианты:

  • "present" ← (по умолчанию)
  • "absent"

type

string

Тип диска. Если не указан, для нового диска используется тип thick без eagerzero.

Варианты:

  • "thin"
  • "eagerzeroedthick"
  • "thick"
  • "rdm"
  • "vpmemdisk"

unit_number

integer / обязательный

Номер устройства диска.

Допустимый диапазон значений: от 0 до 15, кроме 7 для контроллера SCSI.

Допустимый диапазон значений: от 0 до 64, кроме 7 для паравиртуального контроллера SCSI на виртуальном оборудовании версии 14 или выше.

Допустимый диапазон значений: от 0 до 29 для контроллера SATA.

Допустимый диапазон значений: от 0 до 14 для контроллера NVMe.

Допустимый диапазон значений: от 0 до 1 для контроллера IDE.

folder

string

Целевая папка: абсолютный или относительный путь для поиска существующей гостевой системы.

Этот параметр обязателен, только если найдено несколько виртуальных машин с одинаковым именем.

Путь к папке должен включать центр обработки данных. Центр обработки данных ESX — ha-datacenter

Примеры:

folder: /ha-datacenter/vm

folder: ha-datacenter/vm

folder: /datacenter1/vm

folder: datacenter1/vm

folder: /datacenter1/vm/folder1

folder: datacenter1/vm/folder1

folder: /folder1/datacenter1/vm

folder: folder1/datacenter1/vm

folder: /folder1/datacenter1/vm/folder2

hostname

string

Имя узла или IP-адрес сервера vSphere vCenter.

Если значение не указано в задаче, вместо него будет использовано значение переменной окружения VMWARE_HOST.

moid

string

Идентификатор управляемого объекта экземпляра, которым нужно управлять, если он известен. Этот уникальный идентификатор действует только в пределах одного экземпляра vCenter.

Параметр обязателен, если не указаны name или uuid.

name

string

Имя виртуальной машины.

Этот параметр обязателен, если не указаны uuid или moid.

password

псевдонимы: pass, pwd

string

Пароль сервера vSphere vCenter.

Если значение не указано в задаче, вместо него будет использовано значение переменной окружения VMWARE_PASSWORD.

port

integer

Номер порта сервера vSphere vCenter.

Если значение не указано в задаче, вместо него будет использовано значение переменной окружения VMWARE_PORT.

По умолчанию: 443

proxy_host

string

Адрес прокси-сервера, который будет получать и перенаправлять все HTTPS-запросы.

Укажите имя узла или IP-адрес.

Если значение не указано в задаче, вместо него будет использовано значение переменной окружения VMWARE_PROXY_HOST.

proxy_port

integer

Порт HTTP-прокси, который будет получать и перенаправлять все HTTPS-запросы.

Если значение не указано в задаче, вместо него будет использовано значение переменной окружения VMWARE_PROXY_PORT.

use_instance_uuid

boolean

Использовать UUID экземпляра VMware вместо UUID BIOS.

Варианты:

  • false ← (по умолчанию)
  • true

username

псевдонимы: admin, user

string

Имя пользователя сервера vSphere vCenter.

Если значение не указано в задаче, вместо него будет использовано значение переменной окружения VMWARE_USER.

uuid

string

UUID экземпляра для сбора фактов, если он известен; это уникальный идентификатор VMware.

Этот параметр обязателен, если не указаны name или moid.

validate_certs

boolean

Разрешает подключение при недействительных SSL-сертификатах. Установите значение false, если сертификаты не являются доверенными.

Если значение не указано в задаче, вместо него будет использовано значение переменной окружения VMWARE_VALIDATE_CERTS.

Варианты:

  • false
  • true ← (по умолчанию)

Примечания

Примечание

  • Для работы всем модулям необходим доступ на запись через API, поэтому они не поддерживаются при использовании бесплатной лицензии ESXi.
  • Имена всех переменных и объектов VMware чувствительны к регистру.
  • Модули могут использовать библиотеку Python ‘requests’, которая по умолчанию не использует системное хранилище сертификатов. Чтобы указать хранилище сертификатов, задайте переменную окружения REQUESTS_CA_BUNDLE. Обратите внимание: в некоторых случаях при заданной переменной параметр ‘validate_certs’ со значением ‘false’ может быть проигнорирован. Пример: ‘export REQUESTS_CA_BUNDLE=/path/to/your/ca_bundle.pem’

Примеры

- name: Add disks to virtual machine using UUID
  community.vmware.vmware_guest_disk:
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    datacenter: "{{ datacenter_name }}"
    uuid: 421e4592-c069-924d-ce20-7e7533fab926
    disk:
      - size_mb: 10
        type: thin
        datastore: datacluster0
        state: present
        scsi_controller: 1
        unit_number: 1
        scsi_type: 'paravirtual'
        disk_mode: 'persistent'
      - size_gb: 10
        type: eagerzeroedthick
        state: present
        autoselect_datastore: true
        scsi_controller: 2
        scsi_type: 'buslogic'
        unit_number: 12
        disk_mode: 'independent_persistent'
      - size: 10Gb
        type: eagerzeroedthick
        state: present
        autoselect_datastore: true
        scsi_controller: 2
        scsi_type: 'buslogic'
        unit_number: 1
        disk_mode: 'independent_nonpersistent'
      - filename: "[datastore1] path/to/existing/disk.vmdk"
  delegate_to: localhost
  register: disk_facts

- name: Add disks with specified shares to the virtual machine
  community.vmware.vmware_guest_disk:
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    datacenter: "{{ datacenter_name }}"
    disk:
      - size_gb: 1
        type: thin
        datastore: datacluster0
        state: present
        scsi_controller: 1
        unit_number: 1
        disk_mode: 'independent_persistent'
        shares:
          level: custom
          level_value: 1300
  delegate_to: localhost
  register: test_custom_shares

- name: Add physical raw device mapping to virtual machine using name
  community.vmware.vmware_guest_disk:
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    datacenter: "{{ datacenter_name }}"
    validate_certs: false
    name: "Test_VM"
    disk:
      - type: rdm
        state: present
        scsi_controller: 1
        unit_number: 5
        rdm_path: /vmfs/devices/disks/naa.060000003b1234efb453
        compatibility_mode: 'physicalMode'

- name: Add virtual raw device mapping to virtual machine using name and virtual mode
  community.vmware.vmware_guest_disk:
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    datacenter: "{{ datacenter_name }}"
    validate_certs: false
    name: "Test_VM"
    disk:
      - type: rdm
        state: present
        scsi_controller: 1
        unit_number: 5
        rdm_path: /vmfs/devices/disks/naa.060000003b1234efb453
        compatibility_mode: 'virtualMode'
        disk_mode: 'persistent'

- name: Add raw device mapping to virtual machine with Physical bus sharing
  community.vmware.vmware_guest_disk:
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    datacenter: "{{ datacenter_name }}"
    validate_certs: false
    name: "Test_VM"
    disk:
      - type: rdm
        state: present
        scsi_controller: 1
        unit_number: 5
        rdm_path: /vmfs/devices/disks/naa.060000003b1234efb453
        compatibility_mode: 'virtualMode'
        disk_mode: 'persistent'
        bus_sharing: physicalSharing

- name: Add raw device mapping to virtual machine with Physical bus sharing and clustered disk
  community.vmware.vmware_guest_disk:
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    datacenter: "{{ datacenter_name }}"
    validate_certs: false
    name: "Test_VM"
    disk:
      - type: rdm
        state: present
        scsi_controller: 1
        unit_number: 5
        compatibility_mode: 'virtualMode'
        disk_mode: 'persistent'
        bus_sharing: physicalSharing
        filename: "[datastore1] path/to/rdm/disk-marker.vmdk"

- name: create new disk with custom IO limits and shares in IO Limits
  community.vmware.vmware_guest_disk:
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    datacenter: "{{ datacenter_name }}"
    disk:
      - size_gb: 1
        type: thin
        datastore: datacluster0
        state: present
        scsi_controller: 1
        unit_number: 1
        disk_mode: 'independent_persistent'
        iolimit:
            limit: 1506
            shares:
              level: custom
              level_value: 1305
  delegate_to: localhost
  register: test_custom_IoLimit_shares

- name: Remove disks from virtual machine using name
  community.vmware.vmware_guest_disk:
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    datacenter: "{{ datacenter_name }}"
    name: VM_225
    disk:
      - state: absent
        scsi_controller: 1
        unit_number: 1
  delegate_to: localhost
  register: disk_facts

- name: Remove disk from virtual machine using moid
  community.vmware.vmware_guest_disk:
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    datacenter: "{{ datacenter_name }}"
    moid: vm-42
    disk:
      - state: absent
        scsi_controller: 1
        unit_number: 1
  delegate_to: localhost
  register: disk_facts

- name: Remove disk from virtual machine but keep the VMDK file on the datastore
  community.vmware.vmware_guest_disk:
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    datacenter: "{{ datacenter_name }}"
    name: VM_225
    disk:
      - state: absent
        scsi_controller: 1
        unit_number: 2
        destroy: false
  delegate_to: localhost
  register: disk_facts

- name: Add disks to virtual machine using UUID to SATA and NVMe controller
  community.vmware.vmware_guest_disk:
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    datacenter: "{{ datacenter_name }}"
    validate_certs: false
    uuid: 421e4592-c069-924d-ce20-7e7533fab926
    disk:
      - size_mb: 256
        type: thin
        datastore: datacluster0
        state: present
        controller_type: sata
        controller_number: 1
        unit_number: 1
        disk_mode: 'persistent'
      - size_gb: 1
        state: present
        autoselect_datastore: true
        controller_type: nvme
        controller_number: 2
        unit_number: 3
        disk_mode: 'independent_persistent'
  delegate_to: localhost
  register: disk_facts

- name: Add a new vPMem disk to virtual machine to SATA controller
  community.vmware.vmware_guest_disk:
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    datacenter: "{{ datacenter_name }}"
    validate_certs: false
    name: VM_226
    disk:
      - type: vpmemdisk
        size_gb: 1
        state: present
        controller_type: sata
        controller_number: 1
        unit_number: 2
  delegate_to: localhost
  register: disk_facts

Возвращаемые значения

Общие возвращаемые значения описаны здесь, ниже перечислены поля, уникальные для этого модуля:

Ключ

Описание

disk_changes

dictionary

результат каждой задачи; ключ — индекс, начинающийся с 0, в той же последовательности, в которой были определены задачи

Возвращается: всегда

Пример: {"0": "Disk deleted.", "1": "Disk created."}

disk_data

dictionary

метаданные о дисках виртуальной машины после управления ими

Возвращается: всегда

Пример: {"0": {"backing_datastore": "datastore2", "backing_disk_mode": "persistent", "backing_eagerlyscrub": false, "backing_filename": "[datastore2] VM_225/VM_225.vmdk", "backing_thinprovisioned": false, "backing_uuid": "421e4592-c069-924d-ce20-7e7533fab926", "backing_writethrough": false, "capacity_in_bytes": 10485760, "capacity_in_kb": 10240, "controller_key": 1000, "key": 2000, "label": "Hard disk 1", "summary": "10,240 KB", "unit_number": 0}}

Авторы

  • Abhijeet Kasurde (@Akasurde)

Ссылки на коллекцию

  • Отслеживание ошибок
  • Главная страница
  • Репозиторий (исходный код)

© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/vmware/vmware_guest_disk_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API