Spec-Zone.ru › Ansible 2.8

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

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

Описание

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

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
argv
список
добавлено в 2.6
Передает команду в виде списка, а не строки.
Используйте argv для предотвращения цитирования значений, которые в противном случае будут неправильно интерпретированы (например, "имя пользователя").
Можно предоставить только строку или список, но не оба. Один из них должен быть указан.
chdir
путь
Изменить текущую директорию перед выполнением команды.
creates
путь
Имя файла или (с версии 2.0) шаблон подстановки. Если файл уже существует, этот шаг не будет выполнен.
free_form
- / обязательно
Модуль команды принимает свободную команду для выполнения.
На самом деле параметра с именем 'free form' нет.
См. примеры использования этого модуля.
removes
путь
Имя файла или (с версии 2.0) шаблон подстановки. Если файл уже существует, этот шаг будет выполнен.
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').
  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').
  command: /usr/bin/make_database.sh db_user db_name
  args:
    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
  • Майкл ДеХан

Подсказка

Если вы обнаружите какие-либо проблемы в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.8/modules/command_module.html

Spec-Zone.ru

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