raw - Выполняет низкоуровневую и грязную команду SSH
Описание
- Выполняет низкоуровневую и грязную команду SSH, не используя подсистему модуля. Это полезно и должно использоваться только в двух случаях. Первый случай — установка
python-simplejsonна более старых (Python 2.4 и ранее) хостах, которые нуждаются в ней как зависимости для запуска модулей, поскольку почти все основные модули требуют ее. Другой случай — взаимодействие с устройствами, такими как маршрутизаторы, на которых не установлен Python. Во всех остальных случаях использование модуля shell или command более уместно. Аргументы, переданныеraw, выполняются непосредственно через настроенную удалённую оболочку. Стандартный вывод, вывод ошибок и код возврата возвращаются, когда доступны. Поддержка обработчика изменений для этого модуля отсутствует. - Данный модуль не требует наличия Python на удалённой системе, так же как и модуль script.
- Этот модуль также поддерживается для целей Windows.
Параметры
| Параметр | Обязательно | Значение по умолчанию | Варианты | Комментарии |
|---|---|---|---|---|
| executable | нет | изменяет оболочку, используемую для выполнения команды. Должен быть абсолютный путь к исполняемому файлу. при использовании повышения привилегий ( become), будет назначена оболочка по умолчанию, если она не предоставлена, так как повышение привилегий требует оболочки. | ||
| free_form | да | модуль raw принимает команду в свободном формате для выполнения. Нет параметра с названием 'свободный формат'; см. примеры! |
Примеры
- name: Bootstrap a legacy python 2.4 host
raw: yum -y install python-simplejson
- 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_simplejson|quote}}"
Примечания
Примечание
- При использовании raw из playbook, вам может потребоваться отключить сбор фактов с помощью
gather_facts: no, если вы используетеraw, чтобы установить Python на машину. - Если вы хотите выполнить команду безопасно и предсказуемо, лучше использовать модули command или shell.
- ключевое слово
environmentобычно не работает с raw, оно требует оболочки, что означает, что оно работает только еслиexecutableзадано или используется модуль с повышением привилегий (become). - Этот модуль также поддерживается для целей Windows.
Статус
Этот модуль помечен как stableinterface, что означает, что разработчики этого модуля гарантируют, что не будет внесено никаких несовместимых с обратной совместимостью изменений интерфейса.
Информация о техническом обслуживании
Дополнительную информацию о поддержке этого модуля компанией Red Hat см. в knowledge base article<https://access.redhat.com/articles/rhel-top-support-policies>
Для получения помощи в разработке модулей, если вы так решите, пожалуйста, ознакомьтесь с Информация о сообществе и участие в разработке, Тестирование Ansible и Разработка модулей.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.4/raw_module.html