command - Выполнение команды на удалённом узле
Описание
- Модуль
commandпринимает имя команды, за которым следует список аргументов, разделённых пробелами. - Указанная команда будет выполнена на всех выбранных узлах. Она не будет обработана через оболочку, поэтому такие переменные, как
$HOMEи операции, такие как"<",">","|",";"и"&", не будут работать (используйте модуль shell, если вам нужны эти возможности). - Для целевых систем Windows используйте модуль win_command.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| chdir | Перейти в этот каталог перед запуском команды. | |
| creates | Имя файла или (с версии 2.0) шаблон подстановки, если файл уже существует, этот шаг не будет выполнен. | |
| free_form обязательно | Модуль команды принимает команду в свободном формате для выполнения. Нет параметра, фактически названного 'free form'. Смотрите примеры! | |
| removes | Имя файла или (с версии 2.0) шаблон подстановки, если файл не существует, этот шаг не будет выполнен. | |
| stdin (добавлено в 2.4) | По умолчанию: None | Установить stdin команды непосредственно на указанное значение. |
| warn (добавлено в 1.8) |
| Если флаг command_warnings включён в ansible.cfg, не предупреждать об этой строке, если установлено значение no. |
Примечания
Примечание
- Если вы хотите запустить команду через оболочку (например, если вы используете
<,>,|, и т. д.), вам, на самом деле, нужен модуль shell. Парсинг метасимволов оболочки может привести к неожиданному выполнению команд, если цитирование не выполнено правильно, поэтому для обеспечения большей безопасности рекомендуется использовать модульcommandпо возможности. -
creates,removes, иchdirмогут быть указаны после команды. Например, если вы хотите запустить команду только в случае, если определённый файл не существует, используйте это. - Параметр
executableудалён с версии 2.4. Если вам нужен этот параметр, используйте модуль shell вместо него. - Для целевых систем 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 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: 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, что означает, что разработчики этого модуля гарантируют, что не будет внесено обратной несовместимости интерфейса.
Поддержка
Дополнительную информацию о поддержке этого модуля 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.5/modules/command_module.html