Spec-Zone.ru › Ansible 2.10

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

Примечание

Этот плагин входит в состав коллекции ansible.windows (версия 1.3.0).

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

Чтобы использовать его в книге задач, укажите: ansible.windows.win_shell.

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

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

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

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
chdir
путь
Установить указанный путь как текущую рабочую директорию перед выполнением команды
creates
путь
Путь или шаблон фильтрации пути; если на целевом хосте существует указанный путь, задача будет пропущена.
executable
путь
Изменить оболочку, используемую для выполнения команды (например, cmd).
Целевая оболочка должна принимать параметр /c и за ним — исходную командную строку для выполнения.
free_form
строка / обязательно
Модуль ansible.windows.win_shell принимает свободную командную строку для выполнения.
Нет параметра с именем 'free form'. Смотрите примеры!
no_profile
логическое значение
    Варианты:
  • нет ←
  • да
Не загружать профиль пользователя перед выполнением команды. Это применимо только при использовании PowerShell в качестве исполняемого файла.
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_command вместо этого. Лучшие практики при написании книг задач будут следовать тенденции использования ansible.windows.win_command, если win_shell не требуется явно. При выполнении ad-hoc команд используйте свой здравый смысл.
  • WinRM не вернётся из выполнения команды, пока не завершатся все созданные дочерние процессы. Поэтому невозможно использовать ansible.windows.win_shell для запуска дочерних или фоновых процессов длительного выполнения. Рассмотрите создание службы Windows для управления фоновыми процессами.

См. также

См. также

community.windows.psexec

Официальная документация модуля community.windows.psexec.

ansible.builtin.raw

Официальная документация модуля ansible.builtin.raw.

ansible.builtin.script

Официальная документация модуля ansible.builtin.script.

ansible.builtin.shell

Официальная документация модуля ansible.builtin.shell.

ansible.windows.win_command

Официальная документация модуля ansible.windows.win_command.

community.windows.win_psexec

Официальная документация модуля community.windows.win_psexec.

Примеры

- name: Execute a comand in the remote shell, stdout goes to the specified file on the remote
  ansible.windows.win_shell: C:\somescript.ps1 >> C:\somelog.txt

- name: Change the working directory to somedir/ before executing the command
  ansible.windows.win_shell: C:\somescript.ps1 >> C:\somelog.txt
  args:
    chdir: C:\somedir

- name: Run a command with an idempotent check on what it creates, will only run when somedir/somelog.txt does not exist
  ansible.windows.win_shell: C:\somescript.ps1 >> C:\somelog.txt
  args:
    chdir: C:\somedir
    creates: C:\somelog.txt

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

- name: Run multi-lined shell commands
  ansible.windows.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
  ansible.windows.win_shell: '$string = [Console]::In.ReadToEnd(); Write-Output $string.Trim()'
  args:
    stdin: Input message

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

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

Ключ Возвращаемое значение Описание
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–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/ansible/windows/win_shell_module.html

Spec-Zone.ru

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