raw – Выполняет низкоуровневую и грязную команду
Описание
- Выполняет низкоуровневую и грязную команду SSH, не проходя через подсистему модуля.
- Это полезно и следует использовать только в нескольких случаях. Типичный случай — установка
pythonна системе без предварительно установленного Python. Другой случай — взаимодействие с устройствами, такими как маршрутизаторы, на которых нет Python. Во всех остальных случаях использование модуля shell или command более уместно. - Аргументы, переданные в
raw, выполняются непосредственно через настроенную удалённую оболочку. - Стандартный вывод, вывод ошибок и код возврата возвращаются, если доступны.
- Для этого модуля не поддерживается обработка событий изменений.
- Этот модуль не требует Python на удалённой системе, подобно модулю script.
- Этот модуль также поддерживается для целевых систем Windows.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| executable - | Изменяет оболочку, используемую для выполнения команды. Должен быть абсолютный путь к исполняемому файлу. При использовании повышения привилегий ( become) будет назначена оболочка по умолчанию, если она не указана, так как повышение привилегий требует оболочки. | |
| free_form - / обязательно | Модуль raw принимает произвольную команду для выполнения. Нет параметра с именем «free form»; см. примеры! |
Примечания
Примечание
- При использовании raw из playbook, возможно, потребуется отключить сбор фактов с помощью
gather_facts: no, если используетсяraw, чтобы запустить Python на машине. - Если требуется выполнить команду безопасно и предсказуемо, лучше использовать модули command или shell.
- Ключевое слово
environmentобычно не работает с raw, оно требует оболочки, что означает, что оно работает только, еслиexecutableзадано или используется модуль с повышенными привилегиями (become). - Этот модуль также поддерживается для целевых систем Windows.
См. также
См. также
- command – Выполнение команд на целевых системах
- Официальная документация модуля command.
- shell – Выполнение команд оболочки на целевых системах
- Официальная документация модуля shell.
- win_command – Выполнение команды на удалённом узле Windows
- Официальная документация модуля win_command.
- win_shell – Выполнение команд оболочки на целевых хостах
- Официальная документация модуля win_shell.
Примеры
- name: Bootstrap a host without python2 installed
raw: dnf install -y python2 python2-dnf libselinux-python
- name: Run a command that uses non-posix shell-isms (in this example /bin/sh doesn't handle redirection and wildcards together but bash does)
raw: cat < /tmp/*txt
args:
executable: /bin/bash
- name: Safely use templated variables. Always use quote filter to avoid injection issues.
raw: "{{ package_mgr|quote }} {{ pkg_flags|quote }} install {{ python|quote }}"
- name: List user accounts on a Windows system
raw: Get-WmiObject -Class Win32_UserAccount
Статус
- Этот модуль гарантирует обратную совместимость интерфейса в будущем. [stableinterface]
- Этот модуль поддерживается Командой разработчиков Ansible. [core]
Поддержка Red Hat
Дополнительную информацию о поддержке данного модуля Red Hat см. в этой статье базы знаний Red Hat.
Авторы
- Команда разработчиков Ansible
- 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/raw_module.html