Spec-Zone.ru › Ansible 2.9

command – Выполнение команд на целевых узлах

  • Описание
  • Параметры
  • Примечания
  • См. также
  • Примеры
  • Возвращаемые значения
  • Статус

Описание

  • Модуль command принимает имя команды, за которым следует список аргументов, разделенных пробелами.
  • Указанная команда будет выполнена на всех выбранных узлах.
  • Команды не будут обрабатываться через оболочку, поэтому переменные, такие как $HOME, и операции, такие как "<", ">", "|", ";" и "&", не будут работать. Используйте модуль shell, если вам нужны эти возможности.
  • Чтобы создать command задачи, которые легче читать, чем задачи с использованием аргументов, разделенных пробелами, передавайте параметры с помощью ключевого слова args task или используйте параметр cmd.
  • Требуется либо команда в свободном формате, либо параметр cmd, см. примеры.
  • Для целевых узлов Windows используйте модуль win_command вместо этого.

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
argv
список
добавлен в 2.6
Передает команду в виде списка, а не строки.
Используйте argv для предотвращения цитирования значений, которые в противном случае были бы интерпретированы неправильно (например, "имя пользователя").
Можно указать либо строку, либо список, но не оба одновременно. Один из них должен быть предоставлен.
chdir
путь
Изменить текущий каталог перед выполнением команды.
cmd
строка
Команда для выполнения.
creates
путь
Имя файла или (с версии 2.0) шаблон glob. Если файл уже существует, этот шаг не будет выполнен.
free_form
-
Модуль команд принимает команду в свободном формате для выполнения.
Фактически параметра с именем 'free form' нет.
removes
путь
Имя файла или (с версии 2.0) шаблон glob. Если файл уже существует, этот шаг будет выполнен.
stdin
-
добавлен в 2.4
Установить stdin команды напрямую на указанное значение.
stdin_add_newline
логическое
добавлен в 2.8
    Варианты:
  • нет
  • да ←
Если установлено значение yes, добавляет перевод строки к данным stdin.
strip_empty_ends
логическое
добавлен в 2.8
    Варианты:
  • нет
  • да ←
Удаляет пустые строки из конца stdout/stderr в результате.
warn
логическое
    Варианты:
  • нет
  • да ←
Включить или выключить предупреждения задачи.

Примечания

Примечание

  • Если вы хотите выполнить команду через оболочку (скажем, вы используете <, >, |, и т. д.), вам фактически нужен модуль shell. Парсинг метасимволов оболочки может привести к неожиданному выполнению команд, если цитирование не выполнено правильно, поэтому безопаснее использовать модуль command всякий раз, когда это возможно.
  • creates, removes, и chdir могут быть указаны после команды. Например, если вы хотите выполнить команду только в том случае, если определенный файл не существует, используйте это.
  • Режим проверки поддерживается при передаче creates или removes. Если выполнение происходит в режиме проверки и указано любое из этих значений, модуль проверит существование файла и сообщит правильный статус изменения. Если эти параметры не указаны, задача будет пропущена.
  • Параметр executable удален с версии 2.4. Если вам нужен этот параметр, используйте модуль shell вместо этого.
  • Для целевых узлов Windows используйте модуль win_command вместо этого.
  • Для перезагрузки систем используйте модули reboot или win_reboot.

См. также

См. также

raw – Выполняет низкоуровневую и грязную команду
Официальная документация по модулю raw.
script – Выполняет локальный скрипт на удалённом узле после переноса
Официальная документация по модулю script.
shell – Выполнение команд оболочки на целевых узлах
Официальная документация по модулю shell.
win_command – Выполнение команды на удалённом узле Windows
Официальная документация по модулю win_command.

Примеры

- name: return motd to registered var
  command: cat /etc/motd
  register: mymotd

- name: Run command if /path/to/database does not exist (without 'args' keyword).
  command: /usr/bin/make_database.sh db_user db_name creates=/path/to/database

# 'args' is a task keyword, passed at the same level as the module
- name: Run command if /path/to/database does not exist (with 'args' keyword).
  command: /usr/bin/make_database.sh db_user db_name
  args:
    creates: /path/to/database

# 'cmd' is module parameter
- name: Run command if /path/to/database does not exist (with 'cmd' parameter).
  command:
    cmd: /usr/bin/make_database.sh db_user db_name
    creates: /path/to/database

- name: Change the working directory to somedir/ and run the command as db_owner if /path/to/database does not exist.
  command: /usr/bin/make_database.sh db_user db_name
  become: yes
  become_user: db_owner
  args:
    chdir: somedir/
    creates: /path/to/database

# 'argv' is a parameter, indented one level from the module
- name: Use 'argv' to send a command as a list - leave 'command' empty
  command:
    argv:
      - /usr/bin/make_database.sh
      - Username with whitespace
      - dbname with whitespace

- 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.9/modules/command_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API