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