Spec-Zone.ru › Ansible 2.10

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

Примечание

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

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

Описание

  • Модуль command принимает имя команды, за которым следует список аргументов, разделённых пробелами.
  • Заданная команда будет выполнена на всех выбранных узлах.
  • Команда(ы) не будут обрабатываться через оболочку, поэтому такие переменные, как $HOSTNAME, и операции, такие как "*", "<", ">", "|", ";" и "&", не будут работать. Используйте модуль ansible.builtin.shell, если вам нужны эти возможности.
  • Для создания command задач, которые легче читать, чем те, которые используют аргументы, разделённые пробелами, передавайте параметры с помощью ключевого слова args задачи или используйте параметр 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
строка
Модуль команды принимает строку в свободном формате как команду для выполнения.
Параметра с именем 'свободная форма' фактически нет.
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
    Варианты:
  • нет
  • да ←
Включить или выключить предупреждения задачи.

Примечания

Примечание

  • Если вы хотите выполнить команду через оболочку (скажем, вы используете <, >, |, и т.д.), вам нужен модуль 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
  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')
  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)
  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 (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
  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
  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 не может получить доступ к foo: Нет такого файла или каталога
stderr_lines
список / элементы=строка
всегда
Стандартная ошибка команды, разделённая на строки

Пример:
[{"u'ls не может получить доступ к foo": "Нет такого файла или каталога'"}, "u'ls …'"]
stdout
строка
всегда
Стандартный вывод команды

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

Пример:
["u'Узел кластера rabbit@slave1 с rabbit@master …'"]


Авторы

  • Команда 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.10/collections/ansible/builtin/command_module.html

Spec-Zone.ru

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