Оболочки#
Расширения оболочки определяют, как Ansible выполняет команды на целевых узлах. Они позволяют адаптировать формат вызова команд под конкретную операционную систему или среду выполнения.
По умолчанию Ansible автоматически выбирает подходящее расширение оболочки в зависимости от типа операционной системы и способа подключения (например, SSH, WinRM, PSRP). Также можно явно указать нужное расширение, например, если требуется использование определенной командной оболочки или синтаксиса.
Типы#
ansible.builtin.shell включает следующие расширения:
cmd– выполнение команд вcmd.exe(Windows Command Prompt) на узлах под управлением ОС Windows.powershell– выполнение команд в PowerShell на узлах под управлением ОС Windows. Это единственное доступное расширение при подключении через WinRM или PSRP. Также может использоваться с SSH, если PowerShell выбран как основная оболочка.sh– выполнение команд через/bin/shили указанную оболочку. Подходит для большинства Unix-подобных систем.
Подробное описание расширений приведено в справочнике.
Настройка#
Для выбора оболочки задайте значения следующих переменных:
ansible_shell_type– тип оболочки (cmd, powershell, sh).Например:
vars: ansible_shell_type: powershell
ansible_shell_executable– путь к исполняемому файлу оболочки, если требуется использовать альтернативный интерпретатор команд.Например:
vars: ansible_shell_executable: /bin/bash
Можно указать эти переменные на уровне узла или группы, а также в глобальной конфигурации в файле ansible.cfg.