script – Выполняет локальный скрипт на удалённом узле после его передачи
Описание
- Модуль
scriptпринимает имя скрипта, за которым следует список аргументов, разделённых пробелами. - Требуется либо команда произвольной формы, либо параметр
cmd, см. примеры. - Локальный скрипт в указанном пути будет передан на удалённый узел и затем выполнен.
- Указанный скрипт будет обработан через среду оболочки на удалённом узле.
- Данному модулю не требуется Python на удалённой системе, подобно модулю raw.
- Этот модуль также поддерживается для целевых систем Windows.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| chdir - добавлено в 2.4 | Изменить текущую директорию на удалённом узле перед выполнением скрипта. | |
| cmd строка | Путь к локальному скрипту для выполнения, за которым могут следовать необязательные аргументы. | |
| creates - | Имя файла на удалённом узле. Если файл уже существует, этот шаг не будет выполнен. | |
| decrypt булево добавлено в 2.4 |
| Этот параметр управляет автоматическим расшифрованием исходных файлов с помощью vault. |
| executable - добавлено в 2.6 | Имя или путь исполняемого файла для вызова скрипта. | |
| free_form - | Путь к локальному файлу скрипта, за которым могут следовать необязательные аргументы. | |
| removes - | Имя файла на удалённом узле. Если файла не существует, этот шаг не будет выполнен. |
Примечания
Примечание
- Вместо передачи скриптов обычно предпочтительнее создавать Ansible-модули. Преобразуйте свой скрипт в Ansible-модуль для дополнительных баллов!
- Подключаемый модуль
sshсоединения будет принудительно назначат выделение псевдо-терминала через-tt, когда выполняются скрипты. Псевдо-терминалы не имеют канала stderr, и все данные stderr отправляются в stdout. Если вам необходимы отдельные ключи результата stdout и stderr, используйте набор задач копирования и выполнения, вместо модуля script. - Если путь к локальному скрипту содержит пробелы, он должен быть заключён в кавычки.
- Этот модуль также поддерживается для целевых систем Windows.
См. также
См. также
- shell – Выполнение команд оболочки на узлах
- Официальная документация по модулю shell.
- win_shell – Выполнение команд оболочки на целевых узлах
- Официальная документация по модулю win_shell.
Примеры
- name: Run a script with arguments (free form)
script: /some/local/script.sh --some-argument 1234
- name: Run a script with arguments (using 'cmd' parameter)
script:
cmd: /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]
Поддержка Red Hat
Дополнительная информация о поддержке этого модуля Red Hat доступна в статье из базы знаний Red Hat по данной ссылке.
Авторы
- Команда 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.9/modules/script_module.html