Spec-Zone.ru › Ansible 2.8

win_shell – Выполнение команд оболочки на целевых хостах

Новая версия 2.2.

  • Описание
  • Параметры
  • Примечания
  • См. также
  • Примеры
  • Возвращаемые значения
  • Статус

Описание

  • Модуль win_shell принимает имя команды, за которым следует список аргументов, разделенных пробелами. Он похож на модуль win_command, но выполняет команду через оболочку (по умолчанию PowerShell) на целевом хосте.
  • Для целевых хостов, не являющихся Windows, используйте модуль shell.

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
chdir
путь
Устанавливает указанный путь как текущий рабочий каталог перед выполнением команды
creates
путь
Путь или шаблон фильтра пути; если указанный путь существует на целевом хосте, задача будет пропущена.
executable
путь
Изменяет оболочку, используемую для выполнения команды (например, cmd).
Целевая оболочка должна принимать параметр /c, за которым следует исходная командная строка для выполнения.
free_form
строка / обязательно
Модуль win_shell принимает команду в свободном формате для выполнения.
Нет параметра с именем 'free form'. Обратите внимание на примеры!
no_profile
булево
добавлен в 2.8
    Варианты:
  • нет ←
  • да
Не загружать профиль пользователя перед выполнением команды. Это применимо только при использовании PowerShell в качестве исполняемого файла.
removes
путь
Путь или шаблон фильтра пути; если указанный путь не существует на целевом хосте, задача будет пропущена.
stdin
строка
добавлен в 2.5
Установить stdin команды непосредственно на указанное значение.

Примечания

Примечание

  • Если вы хотите безопасно и предсказуемо выполнить исполняемый файл, лучше использовать модуль win_command вместо этого. Лучшие практики при написании playbooks будут заключаться в использовании win_command, если явно не требуется win_shell. При выполнении произвольных команд используйте свой здравый смысл.
  • WinRM не вернётся из выполнения команды, пока не завершатся все дочерние процессы. Поэтому нельзя использовать win_shell для запуска дочерних или фоновых процессов длительного выполнения. Рассмотрите возможность создания службы Windows для управления фоновыми процессами.

См. также

См. также

psexec – Выполнение команд на удалённом хосте Windows на основе модели PsExec
Официальная документация по модулю psexec.
raw – Выполнение низкоуровневой и грязной команды
Официальная документация по модулю raw.
script – Выполнение локального скрипта на удалённом узле после его передачи
Официальная документация по модулю script.
shell – Выполнение команд оболочки на целевых узлах
Официальная документация по модулю shell.
win_command – Выполнение команды на удалённом узле Windows
Официальная документация по модулю win_command.
win_psexec – Выполнение команд (удалённо) от имени другого (привилегированного) пользователя
Официальная документация по модулю win_psexec.

Примеры

# Execute a command in the remote shell; stdout goes to the specified
# file on the remote.
- win_shell: C:\somescript.ps1 >> C:\somelog.txt

# Change the working directory to somedir/ before executing the command.
- win_shell: C:\somescript.ps1 >> C:\somelog.txt chdir=C:\somedir

# You can also use the 'args' form to provide the options. This command
# will change the working directory to somedir/ and will only run when
# somedir/somelog.txt doesn't exist.
- win_shell: C:\somescript.ps1 >> C:\somelog.txt
  args:
    chdir: C:\somedir
    creates: C:\somelog.txt

# Run a command under a non-Powershell interpreter (cmd in this case)
- win_shell: echo %HOMEDIR%
  args:
    executable: cmd
  register: homedir_out

- name: Run multi-lined shell commands
  win_shell: |
    $value = Test-Path -Path C:\temp
    if ($value) {
        Remove-Item -Path C:\temp -Force
    }
    New-Item -Path C:\temp -ItemType Directory

- name: Retrieve the input based on stdin
  win_shell: '$string = [Console]::In.ReadToEnd(); Write-Output $string.Trim()'
  args:
    stdin: Input message

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

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

Ключ Возвращаемое значение Описание
cmd
строка
всегда
Команда, выполненная задачей.

Пример:
rabbitmqctl join_cluster rabbit@master
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: Нет такого файла или каталога
stdout
строка
всегда
Стандартный вывод команды.

Пример:
Узел кластера rabbit@slave1 подключается к rabbit@master ...
stdout_lines
список
всегда
Стандартный вывод команды, разделённый на строки.

Пример:
["u'Узел кластера rabbit@slave1 подключается к rabbit@master ...'"]


Статус

  • Этот модуль не гарантирует обратной совместимости интерфейса. [превью]
  • Этот модуль поддерживается Командой Ansible Core. [core]

Поддержка Red Hat

Дополнительную информацию о поддержке этого модуля Red Hat можно найти в этой статье базы знаний Red Hat.

Авторы

  • Matt Davis (@nitzmahone)

Подсказка

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

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.8/modules/win_shell_module.html

Spec-Zone.ru

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