script – Запуск локального скрипта на удалённом узле после его передачи
Описание
- Модуль
scriptпринимает имя скрипта, за которым следует список аргументов, разделённых пробелами. - Локальный скрипт по указанному пути будет передан на удалённый узел и затем выполнен.
- Указанный скрипт будет обработан через среду оболочки на удалённом узле.
- Данному модулю не требуется Python на удалённой системе, так же как и модулю raw.
- Этот модуль также поддерживается для целевых систем Windows.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| chdir - добавлен в 2.4 | Изменить текущую директорию на удалённом узле перед запуском скрипта. | |
| creates - добавлен в 1.5 | Имя файла на удалённом узле. Если файл уже существует, этот шаг не будет выполнен. | |
| decrypt boolean добавлен в 2.4 |
| Этот параметр управляет автоматическим расшифрованием исходных файлов с помощью vault. |
| executable - добавлен в 2.6 | Имя или путь к исполняемому файлу для запуска скрипта. | |
| free_form - / требуется | Путь к локальному файлу скрипта, за которым следуют необязательные аргументы. На самом деле параметра с именем 'free form' нет, см. примеры! | |
| removes - добавлен в 1.5 | Имя файла на удалённом узле. Если файл не существует, этот шаг не будет выполнен. |
Примечания
Примечание
- В большинстве случаев предпочтительнее создавать Ansible модули, чем передавать скрипты. Превратите свой скрипт в Ansible модуль для получения дополнительных баллов!
- Подключаемый модуль
sshсоединения будет принудительно назначать псевдо-терминал через-ttпри выполнении скриптов. Псевдо-терминалы не имеют канала stderr, и все данные stderr передаются в stdout. Если вам необходимы раздельные ключи результатов stdout и stderr, переключитесь на набор задач копирования и выполнения команд вместо использования script. - Если путь к локальному скрипту содержит пробелы, он должен быть заключен в кавычки.
- Этот модуль также поддерживается для целевых систем Windows.
Примеры
- name: Run a script with arguments
script: /some/local/script.sh --some-argument 1234
- name: Run a script only if file.txt does not exist on the remote node
script: /some/local/create_file.sh --some-argument 1234
args:
creates: /the/created/file.txt
- name: Run a script only if file.txt exists on the remote node
script: /some/local/remove_file.sh --some-argument 1234
args:
removes: /the/removed/file.txt
- name: Run a script using an executable in a non-system path
script: /some/local/script
args:
executable: /some/remote/executable
- name: Run a script using an executable in a system path
script: /some/local/script.py
args:
executable: python3
Статус
- Данный модуль гарантированно не будет содержать изменений интерфейса, несовместимых с предыдущими версиями. [stableinterface]
- Этот модуль поддерживается командой Ansible Core. [core]
Поддержка Red Hat
Дополнительная информация о поддержке данного модуля компанией Red Hat доступна в статье базы знаний Red Hat Red Hat Knowledge Base article.
Авторы
- Команда Ansible Core
- Michael DeHaan
Подсказка
Если вы заметите какие-либо проблемы в этом документе, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.7/modules/script_module.html