Spec-Zone.ru › Ansible

Модуль community.vmware.vmware_vm_shell — выполнение команд в гостевой операционной системе VMware

Примечание

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

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

Чтобы установить ее, используйте: ansible-galaxy collection install community.vmware.

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

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

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

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

Параметры

Параметр

Комментарии

cluster

string

Кластер, в котором размещена виртуальная машина.

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

datacenter

string

Центр обработки данных, в котором размещена виртуальная машина.

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

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

Обязательно, если vm_id_type=inventory_path

hostname

string

Имя хоста или IP-адрес сервера vSphere vCenter.

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

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.

timeout

integer

Время ожидания в секундах.

Если задано положительное целое число, wait_for_process=true учтет этот параметр и завершит работу по истечении указанного времени ожидания.

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

username

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

string

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

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

validate_certs

boolean

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

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

Варианты:

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

vm_id

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

Имя виртуальной машины, с которой нужно работать.

vm_id_type

string

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

Варианты:

  • "uuid"
  • "instance_uuid"
  • "dns_name"
  • "inventory_path"
  • "vm_name" ← (по умолчанию)

vm_password

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

Пароль для входа в виртуальную машину.

vm_shell

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

Абсолютный путь к запускаемой программе.

В Linux оболочка запускается через bash.

vm_shell_args

string

Аргументы программы.

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

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

vm_shell_cwd

string

Текущий рабочий каталог приложения, из которого оно будет запущено.

vm_shell_env

list / элементы=string

Список переменных среды, разделенных запятыми и указанных в формате гостевой ОС.

vm_username

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

Пользователь для входа в виртуальную машину.

wait_for_process

boolean

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

Варианты:

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

Примечания

Примечание

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

Примеры

- 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

dictionary

Метаданные о новом процессе после завершения при использовании 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–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/vmware/vmware_vm_shell_module.html

Spec-Zone.ru

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