Распознавание ошибок в специальных командах Ansible

Есть ли способ захватить stdout и stderr отдельно в bash, возможно, в виде кортежа, для специальных специальных команд? Что-то вроде: stdout, stderr= ansible -i hosts -m shell -a "command"


person QuantAC    schedule 14.04.2020    source источник
comment
Не могли бы вы уточнить, что требуется от какой команды? Вы можете использовать grep или sed для перенаправления stdout и stderr в нужный файл журнала.   -  person 32cupo    schedule 14.04.2020


Ответы (1)


Вы можете использовать опцию -t для регистрации вывода в формате JSON. Например, если я выполняю

ansible -m shell -a "echo test" -t tmp localhost

то в файле ./tmp/localhost я получу этот вывод:

{
  "changed": true,
  "cmd": "echo test",
  "delta": "0:00:00.006099",
  "end": "2020-04-14 11:43:01.878959",
  "rc": 0,
  "start": "2020-04-14 11:43:01.872860",
  "stderr": "",
  "stderr_lines": [],
  "stdout": "test",
  "stdout_lines": [
    "test"
  ]
}

Затем вы можете проанализировать stdout и stderr.

person rolf82    schedule 14.04.2020