Spec-Zone.ru › Ansible 2.11

community.vmware.vmware_vm_shell – Выполнение команд в гостевой операционной системе VMware

Примечание

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

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

Для использования в плейбуке укажите: community.vmware.vmware_vm_shell.

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

Описание

  • Модуль позволяет пользователю запускать общие системные административные команды в гостевой операционной системе.

Требования

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

  • python >= 2.6
  • PyVmomi

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
cluster
строка
Кластер, на котором размещена виртуальная машина.
Если задано, это поможет ускорить поиск виртуальной машины.
datacenter
строка
Центр обработки данных, на котором размещена виртуальная машина.
Если задано, это поможет ускорить поиск виртуальной машины.
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-адрес сервера vCenter vSphere или ESXi.
Если значение не указано в задаче, вместо него используется значение переменной окружения VMWARE_HOST.
Поддержка переменных окружения добавлена в Ansible 2.6.
password
строка
Пароль сервера vCenter vSphere или ESXi.
Если значение не указано в задаче, вместо него используется значение переменной окружения VMWARE_PASSWORD.
Поддержка переменных окружения добавлена в Ansible 2.6.

псевдонимы: pass, pwd
port
целое число
По умолчанию:
443
Номер порта сервера vCenter vSphere или ESXi.
Если значение не указано в задаче, вместо него используется значение переменной окружения VMWARE_PORT.
Поддержка переменных окружения добавлена в Ansible 2.6.
proxy_host
строка
Адрес прокси-сервера, который будет получать все запросы HTTPS и пересылать их.
Формат — имя хоста или IP-адрес.
Если значение не указано в задаче, вместо него используется значение переменной окружения VMWARE_PROXY_HOST.
Эта функция зависит от версии pyvmomi, большей, чем v6.7.1.2018.12
proxy_port
целое число
Порт HTTP-прокси, который будет получать все запросы HTTPS и пересылать их.
Если значение не указано в задаче, вместо него используется значение переменной окружения VMWARE_PROXY_PORT.
timeout
целое число
По умолчанию:
3600
Таймаут в секундах.
Если задано положительное целое число, то wait_for_process учтет этот параметр и завершит работу после этого таймаута.
username
строка
Имя пользователя сервера vCenter vSphere или ESXi.
Если значение не указано в задаче, вместо него используется значение переменной окружения VMWARE_USER.
Поддержка переменных окружения добавлена в Ansible 2.6.

псевдонимы: admin, user
validate_certs
логическое значение
    Варианты:
  • нет
  • да ←
Разрешает подключение, когда сертификаты SSL недействительны. Установите в false, когда сертификаты не доверяются.
Если значение не указано в задаче, вместо него используется значение переменной окружения VMWARE_VALIDATE_CERTS.
Поддержка переменных окружения добавлена в Ansible 2.6.
Если значение установлено в true, убедитесь, что на данном компьютере установлен Python >= 2.7.9.
vm_id
строка / обязательно
Имя виртуальной машины, с которой необходимо работать.
vm_id_type
строка
    Варианты:
  • uuid
  • instance_uuid
  • dns_name
  • inventory_path
  • имя_вм ←
Способ идентификации виртуальной машины в VMware.
vm_password
строка / обязательно
Пароль, используемый для входа в виртуальную машину.
vm_shell
строка / обязательно
Абсолютный путь к программе, которую необходимо запустить.
В Linux оболочка запускается через bash.
vm_shell_args
строка
По умолчанию:
" "
Аргумент для программы.
Символы, которые должны быть экранированы в оболочке, также должны быть экранированы в предоставленной команде.
vm_shell_cwd
строка
Текущая рабочая директория приложения, из которой будет запущена программа.
vm_shell_env
список / элементы=строка
Список переменных окружения, разделенных запятыми, указанных в формате гостевой ОС.
vm_username
строка / обязательно
Имя пользователя для входа в виртуальную машину.
wait_for_process
логическое значение
    Варианты:
  • нет ←
  • да
Если установлено в True, модуль будет ожидать завершения процесса в заданной виртуальной машине.

Примечания

Примечание

  • Тестировалось на vSphere 5.5, 6.0 и 6.5.
  • Используется только первое совпадение с vm_id, даже если есть несколько совпадений.

Примеры

- name: Run command inside a virtual machine
  community.vmware.vmware_vm_shell:
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    datacenter: "{{ datacenter }}"
    folder: "/{{datacenter}}/vm"
    vm_id: "{{ vm_name }}"
    vm_username: root
    vm_password: superSecret
    vm_shell: /bin/echo
    vm_shell_args: " $var >> myFile "
    vm_shell_env:
      - "PATH=/bin"
      - "VAR=test"
    vm_shell_cwd: "/tmp"
  delegate_to: localhost
  register: shell_command_output

- name: Run command inside a virtual machine with wait and timeout
  community.vmware.vmware_vm_shell:
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    datacenter: "{{ datacenter }}"
    folder: "/{{datacenter}}/vm"
    vm_id: NameOfVM
    vm_username: root
    vm_password: superSecret
    vm_shell: /bin/sleep
    vm_shell_args: 100
    wait_for_process: True
    timeout: 2000
  delegate_to: localhost
  register: shell_command_with_wait_timeout

- name: Change user password in the guest machine
  community.vmware.vmware_vm_shell:
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    datacenter: "{{ datacenter }}"
    folder: "/{{datacenter}}/vm"
    vm_id: "{{ vm_name }}"
    vm_username: sample
    vm_password: old_password
    vm_shell: "/bin/echo"
    vm_shell_args: "-e 'old_password\nnew_password\nnew_password' | passwd sample > /tmp/$$.txt 2>&1"
  delegate_to: localhost

- name: Change hostname of guest machine
  community.vmware.vmware_vm_shell:
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    datacenter: "{{ datacenter }}"
    folder: "/{{datacenter}}/vm"
    vm_id: "{{ vm_name }}"
    vm_username: testUser
    vm_password: SuperSecretPassword
    vm_shell: "/usr/bin/hostnamectl"
    vm_shell_args: "set-hostname new_hostname > /tmp/$$.txt 2>&1"
  delegate_to: localhost

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

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

Ключ Возвращаемое значение Описание
results
словарь
при успешном выполнении
метаданные о новом процессе после завершения с wait_for_process

Пример:
{'cmd_line': '"/bin/sleep" 1', 'end_time': '2018-04-26T05:03:21+00:00', 'exit_code': 0, 'name': 'sleep', 'owner': 'dev1', 'start_time': '2018-04-26T05:03:19+00:00', 'uuid': '564db1e2-a3ff-3b0e-8b77-49c25570bb66'}


Авторы

  • Ritesh Khadgaray (@ritzk)
  • Abhijeet Kasurde (@Akasurde)

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

Spec-Zone.ru

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