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 строка |
| Способ идентификации виртуальной машины в 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