ansible.builtin.raw – Выполняет низкоуровневую и грязную команду
Примечание
Этот модуль является частью ansible-base и включён во все установки Ansible. В большинстве случаев вы можете использовать короткое имя модуля raw даже без указания ключевого слова collections:. Несмотря на это, мы рекомендуем использовать полное имя класса (FQCN) для лёгкой ссылки на документацию по модулю и для избежания конфликтов с другими коллекциями, которые могут иметь то же имя модуля.
Описание
- Выполняет низкоуровневую и грязную команду SSH, не проходя через подсистему модулей.
- Это полезно и должно использоваться только в нескольких случаях. Распространённым случаем является установка
pythonна системе без установленного по умолчанию Python. Другой — взаимодействие с устройствами, такими как маршрутизаторы, на которых не установлен Python. Во всех остальных случаях использование модуля ansible.builtin.shell или ansible.builtin.command намного предпочтительнее. - Аргументы, переданные в
raw, выполняются непосредственно через настроенную удалённую оболочку. - Стандартный вывод, вывод ошибок и код возврата возвращаются, если доступны.
- Поддержка обработчика изменений для этого модуля отсутствует.
- Этот модуль не требует Python на удалённой системе, так же как и модуль ansible.builtin.script.
- Этот модуль также поддерживается для целевых систем Windows.
Примечание
Этот модуль имеет соответствующий плагин действий.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| executable строка добавлен в версии 1.0 ansible.builtin | Изменение оболочки, используемой для выполнения команды. Должен быть абсолютный путь к исполняемому файлу. При использовании повышения привилегий ( become) будет назначена оболочка по умолчанию, если она не указана, поскольку повышение привилегий требует оболочки. | |
| free_form строка / обязательно | Модуль raw принимает произвольную команду для выполнения. На самом деле параметра с именем «free form» нет; см. примеры! |
Примечания
Примечание
- При использовании raw из playbook, возможно, потребуется отключить сбор фактов, используя
gather_facts: no, если вы используетеrawдля установки Python на машину. - Если вы хотите выполнить команду безопасно и предсказуемо, лучше использовать модули ansible.builtin.command или ansible.builtin.shell.
- Ключевое слово
environmentобычно не работает с raw, оно требует оболочки, что значит, оно работает только еслиexecutableустановлено или при использовании модуля с повышенными привилегиями (become). - Этот модуль также поддерживается для целевых систем Windows.
См. также
См. также
- ansible.builtin.command
-
Официальная документация по модулю ansible.builtin.command.
- ansible.builtin.shell
-
Официальная документация по модулю ansible.builtin.shell.
- ansible.windows.win_command
-
Официальная документация по модулю ansible.windows.win_command.
- ansible.windows.win_shell
-
Официальная документация по модулю ansible.windows.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
Авторы
- Команда Ansible Core
- Майкл ДеХан
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/ansible/builtin/raw_module.html