ansible.windows.win_command – Выполняет команду на удаленном узле Windows
Примечание
Этот плагин входит в состав коллекции ansible.windows (версия 1.3.0).
Для его установки используйте: ansible-galaxy collection install ansible.windows.
Для использования в книге задач укажите: ansible.windows.win_command.
Обзор
- Модуль
win_commandпринимает имя команды, за которым следует список аргументов, разделенных пробелами. - Указанная команда будет выполнена на всех выбранных узлах. Она не будет обрабатываться оболочкой, поэтому такие переменные, как
$env:HOME, и операции, такие как"<",">","|", и";", не будут работать (используйте модуль ansible.windows.win_shell, если вам нужны эти возможности). - Для узлов, не являющихся Windows, используйте модуль ansible.builtin.command вместо этого.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| chdir путь | Устанавливает указанный путь в качестве текущей рабочей директории перед выполнением команды. | |
| creates путь | Путь или шаблон фильтрации пути; когда на целевом хосте существует указанный путь, задача будет пропущена. | |
| free_form строка / обязательно | Модуль win_command принимает команду в свободном формате для выполнения.На самом деле параметра с именем 'free form' нет. Смотрите примеры! | |
| output_encoding_override строка | Этот параметр переопределяет кодировку вывода stdout/stderr. Вы можете использовать этот параметр, когда вам нужно выполнить команду, которая игнорирует кодовую страницу консоли. Вам следует использовать этот параметр только в очень редких случаях. Это значение может быть любой допустимой кодировкой Name, основанной на выводе [System.Text.Encoding]::GetEncodings(). См. https://docs.microsoft.com/dotnet/api/system.text.encoding.getencodings. | |
| removes путь | Путь или шаблон фильтрации пути; когда на целевом хосте отсутствует указанный путь, задача будет пропущена. | |
| stdin строка | Устанавливает stdin команды напрямую на указанное значение. |
Примечания
Примечание
- Если вы хотите выполнить команду через оболочку (скажем, вы используете
<,>,|, и т. д.), вам фактически нужен модуль ansible.windows.win_shell вместо этого. Модуль ansible.windows.win_command намного безопаснее, так как он не зависит от среды пользователя. -
creates,removes, иchdirможно указать после команды. Например, если вы хотите выполнить команду только в том случае, если определенный файл отсутствует, используйте это.
См. также
См. также
- ansible.builtin.command
-
Официальная документация по модулю ansible.builtin.command.
- community.windows.psexec
-
Официальная документация по модулю community.windows.psexec.
- ansible.builtin.raw
-
Официальная документация по модулю ansible.builtin.raw.
- community.windows.win_psexec
-
Официальная документация по модулю community.windows.win_psexec.
- ansible.windows.win_shell
-
Официальная документация по модулю ansible.windows.win_shell.
Примеры
- name: Save the result of 'whoami' in 'whoami_out'
ansible.windows.win_command: whoami
register: whoami_out
- name: Run command that only runs if folder exists and runs from a specific folder
ansible.windows.win_command: wbadmin -backupTarget:C:\backup\
args:
chdir: C:\somedir\
creates: C:\backup\
- name: Run an executable and send data to the stdin for the executable
ansible.windows.win_command: powershell.exe -
args:
stdin: Write-Host test
Возвращаемые значения
Общие возвращаемые значения документированы здесь, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| cmd строка | всегда | Команда, выполненная задачей Пример: rabbitmqctl join_cluster rabbit@main |
| delta строка | всегда | Время выполнения команды Пример: 0:00:00.325771 |
| end строка | всегда | Время завершения выполнения команды Пример: 2016-02-25 09:18:26.755339 |
| msg логическое значение | всегда | изменилось Пример: True |
| rc целое число | всегда | Код возврата команды (0 означает успех) |
| start строка | всегда | Время начала выполнения команды Пример: 2016-02-25 09:18:26.429568 |
| stderr строка | всегда | Стандартная ошибка команды Пример: ls: cannot access foo: No such file or directory |
| stdout строка | всегда | Стандартный вывод команды Пример: Clustering node rabbit@slave1 with rabbit@main ... |
| stdout_lines список / элементы=строка | всегда | Стандартный вывод команды, разделенный на строки Пример: ["u'Clustering node rabbit@slave1 with rabbit@main ...'"] |
Авторы
- Matt Davis (@nitzmahone)
© 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/ansible/windows/win_command_module.html