command – Выполняет команду на удалённом узле
Описание
- Модуль
commandпринимает имя команды, за которым следует список аргументов, разделённых пробелами. - Указанная команда будет выполнена на всех выбранных узлах. Она не будет обработана через оболочку, поэтому переменные, такие как
$HOME, и операции, такие как"<",">","|",";"и"&", не будут работать (используйте модуль shell, если вам нужны эти функции). - Для целевых систем Windows используйте модуль win_command.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| argv - добавлен в 2.6 | Позволяет пользователю указать команду в виде списка вместо строки. Можно указать только строку или список, но не оба одновременно. Нужно указать либо строку, либо список. | |
| chdir - | Изменить текущую директорию перед выполнением команды. | |
| creates - | Имя файла или (с версии 2.0) шаблон поиска. Если файл уже существует, этот шаг не будет выполнен. | |
| free_form - / обязательно | Модуль принимает команду в свободном формате для выполнения. Параметра с именем «free form» нет. См. примеры! | |
| removes - | Имя файла или (с версии 2.0) шаблон поиска. Если файл уже существует, этот шаг будет выполнен. | |
| stdin - добавлен в 2.4 | Установить stdin команды напрямую на указанное значение. | |
| warn boolean добавлен в 1.8 |
| Если в ansible.cfg включены предупреждения command_warnings, не выводить предупреждение об этой конкретной строке, если установлено значение no. |
Примечания
Примечание
- Если вы хотите выполнить команду через оболочку (например, вы используете
<,>,|, и т.д.), вам нужно использовать модуль shell вместо этого. Разбор метасимволов оболочки может привести к неожиданному выполнению команд, если цитирование не выполнено правильно, поэтому для большей безопасности следует использовать модульcommand, когда это возможно. -
creates,removes, иchdirмогут быть указаны после команды. Например, если вы хотите выполнить команду только в том случае, если определённый файл не существует, воспользуйтесь этим. - Режим проверки поддерживается при передаче
createsилиremoves. Если выполняется в режиме проверки и указаны один из этих параметров, модуль проверит существование файла и сообщит о корректном изменении статуса. Если эти параметры не указаны, задача будет пропущена. - Параметр
executableудалён с версии 2.4. Если вам нужен этот параметр, используйте модуль shell вместо этого. - Для целевых систем Windows используйте модуль win_command вместо этого.
- Для перезагрузки систем используйте модуль reboot или win_reboot.
См. также
См. также
- raw – Выполняет низкоуровневую и грязную SSH команду
- Официальная документация модуля raw.
- script – Выполняет локальный скрипт на удалённом узле после его передачи
- Официальная документация модуля script.
- shell – Выполнение команд на узлах.
- Официальная документация модуля shell.
- win_command – Выполнение команды на удалённом узле Windows
- Официальная документация модуля win_command.
Примеры
- name: return motd to registered var
command: cat /etc/motd
register: mymotd
- name: Run the command if the specified file does not exist.
command: /usr/bin/make_database.sh arg1 arg2
args:
creates: /path/to/database
# You can also use the 'args' form to provide the options.
- name: This command will change the working directory to somedir/ and will only run when /path/to/database doesn't exist.
command: /usr/bin/make_database.sh arg1 arg2
args:
chdir: somedir/
creates: /path/to/database
- name: use argv to send the command as a list. Be sure to leave command empty
command:
args:
argv:
- echo
- testing
- name: safely use templated variable to run command. Always use the quote filter to avoid injection issues.
command: cat {{ myfile|quote }}
register: myoutput
Возвращаемые значения
Общие возвращаемые значения описаны здесь, следующие — поля, уникальные для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| cmd список | всегда | Команда, которая была запущена на удалённой машине Пример: ['echo', 'hello'] |
| delta строка | всегда | Время завершения команды - время начала команды Пример: 0.001529 |
| end строка | всегда | Время завершения команды Пример: 2017-09-29 22:03:48.084657 |
| start строка | всегда | Время начала команды Пример: 2017-09-29 22:03:48.083128 |
Статус
- Этот модуль гарантированно не будет содержать изменений обратной совместимости в будущем. [stableinterface]
- Этот модуль поддерживается командой Ansible Core. [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.7/modules/command_module.html