Spec-Zone.ru › Ansible 2.10

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

Примечание

Этот плагин входит в коллекцию community.vmware (версия 1.6.0).

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

Для использования в книге задач укажите: community.vmware.vmware_guest_disk.

  • Обзор
  • Требования
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения

Обзор

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

Требования

Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.

  • python >= 2.6
  • PyVmomi

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
datacenter
строка / обязательно
Имя ЦОД, к которому принадлежит виртуальная машина.
disk
список / элементы=словарь
По умолчанию:
[]
Список дисков для добавления или удаления.
Информация о виртуальном диске предоставляется в этом списке.
Все значения и параметры чувствительны к регистру.
autoselect_datastore
булево
    Варианты:
  • нет
  • да
Выбор наименее используемого хранилища данных. Указывать только если datastore не указан.
controller_number
целое число
    Варианты:
  • 0
  • 1
  • 2
  • 3
Этот параметр используется с controller_type для указания номера шины контроллера.
controller_type
строка
    Варианты:
  • buslogic
  • lsilogic
  • lsilogicsas
  • paravirtual
  • sata
  • nvme
Этот параметр добавлен для управления подключением дисков к другим типам контроллеров, например, SATA или NVMe.
Если controller_type или scsi_type не указаны, используется тип paravirtual.
datastore
строка
Имя хранилища данных или кластера хранилищ данных, используемого для диска.
destroy
булево
    Варианты:
  • нет
  • да ←
Если state равно absent, убедитесь, что файл диска удален из хранилища данных. Добавлен в версии 2.10.
disk_mode
строка
    Варианты:
  • постоянный
  • независимый_постоянный
  • независимый_непостоянный
Тип режима диска. Если не указан, используется режим persistent для нового диска.
Если задан режим «постоянный», изменения сразу и постоянно записываются на виртуальный диск.
Если задан режим «независимый_постоянный», аналогично постоянному, но не затрагиваются снимки.
Если задан режим «независимый_непостоянный», изменения виртуального диска выполняются в журнале изменений и отбрасываются при выключении, но не затрагиваются снимки.
filename
строка
Используемый существующий образ диска. Имя файла должно уже существовать в хранилище данных.
Укажите строку имени файла в формате [datastore_name] path/to/file.vmdk. Добавлен в версии 2.10.
iolimit
словарь
Раздел указывает доли и пределы для ресурсов хранения I/O.
limit
целое число
Раздел указывает значения предела, при котором использование виртуальной машины не превысит их, даже если доступны ресурсы.
shares
словарь
Указывает различные типы долей, которые пользователь может добавить для данного диска.
level
строка
    Варианты:
  • низкий
  • нормальный
  • высокий
  • настраиваемый
Указывает различные уровни для раздела долей.
level_value
целое число
Настраиваемое значение, когда level установлено как custom.
scsi_controller
целое число
    Варианты:
  • 0
  • 1
  • 2
  • 3
Номер контроллера SCSI. Допускается только 4 контроллера SCSI на одну ВМ.
Следует соблюдать осторожность при указании «scsi_controller» = 0 и «unit_number» = 0, так как этот диск может содержать ОС.
scsi_type
строка
    Варианты:
  • buslogic
  • lsilogic
  • lsilogicsas
  • paravirtual
Тип контроллера SCSI. Это значение требуется только для первого появления контроллера SCSI.
Это значение игнорируется, если контроллер SCSI уже присутствует или state равно absent.
shares
словарь
Раздел для раздела iolimit указывает все типы долей, которые пользователь может добавить для диска.
level
строка
    Варианты:
  • низкий
  • нормальный
  • высокий
  • настраиваемый
Указывает различные уровни для раздела долей.
level_value
целое число
Настраиваемое значение, когда level установлено как custom.
sharing
булево
    Варианты:
  • нет ←
  • да
Режим совместного использования виртуального диска.
Указание совместного использования означает, что несколько виртуальных машин могут записывать на виртуальный диск.
Совместное использование может быть установлено только если type установлено как eagerzeroedthick.
size
строка
Размер хранилища диска.
Если указан размер, то должен быть указан единица измерения. Пробелы между числом размера и единицей измерения недопустимы.
Будет учтено только первое вхождение в элемент диска, даже если присутствует несколько параметров size*.
size_gb
целое число
Размер хранилища диска в ГБ.
size_kb
целое число
Размер хранилища диска в КБ.
size_mb
целое число
Размер хранилища диска в МБ.
size_tb
целое число
Размер хранилища диска в ТБ.
state
строка
    Варианты:
  • наличие ←
  • отсутствие
Состояние диска.
Если установлено «отсутствует», диск будет постоянно удален из конфигурации виртуальной машины и из хранилища VMware.
Если установлено «наличие», диск будет добавлен, если он не присутствует на заданном контроллере и номере устройства.
или диск существует с другим размером, размер диска увеличивается, уменьшение размера диска недопустимо.
type
строка
    Варианты:
  • тонкий
  • eagerzeroedthick
  • толстый
Тип диска, если не указан, то для нового диска используется тип thick, без eagerzero.
unit_number
целое число / обязательно
Номер устройства диска.
Допустимый диапазон значений от 0 до 15, за исключением 7 для контроллера SCSI.
Допустимый диапазон значений от 0 до 29 для контроллера SATA.
Допустимый диапазон значений от 0 до 14 для контроллера NVME.
folder
строка
Папка назначения, абсолютный или относительный путь к поиску существующего гостя.
Этот параметр является обязательным только если обнаружено несколько ВМ с одинаковым именем.
Папка должна содержать ЦОД. ЦОД 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
строка
Имя хоста или IP-адрес сервера vSphere vCenter или ESXi.
Если значение не указано в задаче, используется значение переменной среды VMWARE_HOST.
Поддержка переменных среды добавлена в Ansible 2.6.
moid
строка
Идентификатор управляемого объекта экземпляра для управления, если он известен, это уникальный идентификатор только в пределах одного экземпляра vCenter.
Это требуется, если name или uuid не предоставлены.
name
строка
Имя виртуальной машины.
Это обязательный параметр, если параметр uuid или moid не указан.
password
строка
Пароль сервера vSphere vCenter или ESXi.
Если значение не указано в задаче, используется значение переменной среды VMWARE_PASSWORD.
Поддержка переменных среды добавлена в Ansible 2.6.

псевдонимы: pass, pwd
port
integer
Default:
443
Порт сервера vSphere vCenter или ESXi.
Если значение не указано в задаче, используется значение переменной среды VMWARE_PORT.
Поддержка переменных среды добавлена в Ansible 2.6.
proxy_host
string
Адрес прокси-сервера, который будет получать все запросы HTTPS и пересылать их.
Формат — имя хоста или IP-адрес.
Если значение не указано в задаче, используется значение переменной среды VMWARE_PROXY_HOST.
Эта функция зависит от версии pyvmomi, большей v6.7.1.2018.12
proxy_port
integer
Порт HTTP-прокси-сервера, который будет получать все запросы HTTPS и пересылать их.
Если значение не указано в задаче, используется значение переменной среды VMWARE_PROXY_PORT.
use_instance_uuid
boolean
    Choices:
  • нет ←
  • да
Использовать UUID экземпляра VMware вместо UUID BIOS.
username
string
Имя пользователя сервера vSphere vCenter или ESXi.
Если значение не указано в задаче, используется значение переменной среды VMWARE_USER.
Поддержка переменных среды добавлена в Ansible 2.6.

псевдонимы: admin, user
uuid
string
UUID экземпляра для сбора фактов, если известен (уникальный идентификатор VMware).
Это обязательный параметр, если параметры name или moid не указаны.
validate_certs
boolean
    Choices:
  • нет
  • да ←
Разрешает подключение, когда сертификаты SSL недействительны. Установите в false, если сертификаты не доверяются.
Если значение не указано в задаче, используется значение переменной среды VMWARE_VALIDATE_CERTS.
Поддержка переменных среды добавлена в Ansible 2.6.
Если установлено true, убедитесь, что на данном компьютере установлен Python >= 2.7.9.

Примечания

Примечание

  • Тестировалось на vSphere 6.0 и 6.5

Примеры

- 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: 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: no
  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: no
    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

Значения возврата

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

Ключ Возвращаемое значение Описание
disk_status
словарь
всегда
Метаданные о дисках виртуальной машины после их управления

Пример:
{'0': {'backing_datastore': 'datastore2', 'backing_disk_mode': 'постоянный', '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': 'Жесткий диск 1', 'summary': '10 240 КБ', 'unit_number': 0}}


Авторы

  • Abhijeet Kasurde (@Akasurde) <akasurde@redhat.com>

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

Spec-Zone.ru

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