Spec-Zone.ru › Ansible 2.11

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

Примечание

Этот модуль является частью ansible-base и включён во все установки Ansible. В большинстве случаев вы можете использовать короткое имя модуля command, даже не указывая ключевое слово collections:. Несмотря на это, мы рекомендуем использовать полное имя класса (FQCN) для лёгкой ссылки на документацию модуля и для предотвращения конфликтов с другими коллекциями, которые могут иметь то же имя модуля.

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

Описание

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

Примечание

У этого модуля есть соответствующий плагин действий.

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
argv
список / элементы=строка
добавлен в 2.6 ansible.builtin
Передаёт команду как список, а не как строку.
Используйте argv для предотвращения цитирования значений, которые в противном случае будут неправильно интерпретированы (например, "имя пользователя").
Может быть предоставлена только строка (свободная форма) или список (argv), но не оба одновременно. Должен быть указан один из них.
chdir
путь
добавлен в 0.6 ansible.builtin
Изменить текущую директорию перед выполнением команды.
cmd
строка
Команда для выполнения.
creates
путь
Имя файла или (с версии 2.0) шаблон подстановочных символов. Если соответствующий файл уже существует, этот шаг не будет выполнен.
free_form
строка
Модуль command принимает строку в свободном формате в качестве команды для выполнения.
На самом деле нет параметра с именем "free form".
removes
путь
добавлен в 0.8 ansible.builtin
Имя файла или (с версии 2.0) шаблон подстановочных символов. Если соответствующий файл существует, этот шаг будет выполнен.
stdin
строка
добавлен в 2.4 ansible.builtin
Установить stdin команды напрямую на указанное значение.
stdin_add_newline
логическое значение
добавлен в 2.8 ansible.builtin
    Варианты:
  • нет
  • да ←
Если установлено yes, добавить перевод строки к данным stdin.
strip_empty_ends
логическое значение
добавлен в 2.8 ansible.builtin
    Варианты:
  • нет
  • да ←
Удалить пустые строки из конца stdout/stderr в результате.
warn
логическое значение
добавлен в 1.8 ansible.builtin
    Варианты:
  • нет ←
  • да
(устарело) Включить или отключить предупреждения задач.
Эта функция устарела и будет удалена в версии 2.14.
Начиная с версии 2.11, этот параметр по умолчанию отключён.

Примечания

Примечание

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

См. также

См. также

ansible.builtin.raw

Официальная документация модуля ansible.builtin.raw.

ansible.builtin.script

Официальная документация модуля ansible.builtin.script.

ansible.builtin.shell

Официальная документация модуля ansible.builtin.shell.

ansible.windows.win_command

Официальная документация модуля ansible.windows.win_command.

Примеры

- name: Return motd to registered var
  ansible.builtin.command: cat /etc/motd
  register: mymotd

# free-form (string) arguments, all arguments on one line
- name: Run command if /path/to/database does not exist (without 'args')
  ansible.builtin.command: /usr/bin/make_database.sh db_user db_name creates=/path/to/database

# free-form (string) arguments, some arguments on separate lines with the 'args' keyword
# '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)
  ansible.builtin.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)
  ansible.builtin.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
  ansible.builtin.command: /usr/bin/make_database.sh db_user db_name
  become: yes
  become_user: db_owner
  args:
    chdir: somedir/
    creates: /path/to/database

# argv (list) arguments, each argument on a separate line, 'args' keyword not necessary
# 'argv' is a parameter, indented one level from the module
- name: Use 'argv' to send a command as a list - leave 'command' empty
  ansible.builtin.command:
    argv:
      - /usr/bin/make_database.sh
      - Username with whitespace
      - dbname with whitespace
    creates: /path/to/database

- name: Safely use templated variable to run command. Always use the quote filter to avoid injection issues
  ansible.builtin.command: cat {{ myfile|quote }}
  register: myoutput

Возвращаемые значения

Общие возвращаемые значения описаны здесь, следующие поля уникальны для этого модуля:

Ключ Возвращаемое значение Описание
cmd
список / элементы=строка
всегда
Команда, выполненная задачей.

Пример:
['echo', 'hello']
delta
строка
всегда
Время выполнения команды.

Пример:
0:00:00.001529
end
строка
всегда
Время окончания выполнения команды.

Пример:
2017-09-29 22:03:48.084657
msg
логическое значение
всегда
изменено

Пример:
True
rc
целое число
всегда
Код возврата команды (0 означает успех).

start
строка
всегда
Время начала выполнения команды.

Пример:
2017-09-29 22:03:48.083128
stderr
строка
всегда
Стандартная ошибка команды.

Пример:
ls cannot access foo: No such file or directory
stderr_lines
список / элементы=строка
всегда
Стандартная ошибка команды, разбитая на строки.

Пример:
[{"u'ls cannot access foo": "No such file or directory'"}, "u'ls …'"]
stdout
строка
всегда
Стандартный вывод команды.

Пример:
Clustering node rabbit@slave1 with rabbit@master …
stdout_lines
список / элементы=строка
всегда
Стандартный вывод команды, разбитый на строки.

Пример:
["u'Clustering node rabbit@slave1 with rabbit@master …'"]


Авторы

  • Команда Ansible Core
  • Michael DeHaan

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

Spec-Zone.ru

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