Как извлечь имя хоста из Ansible Playbook Run [закрыто]

Мне нужно выполнить следующий сценарий оболочки. Я пытаюсь извлечь HOSTNAME после успешного выполнения через Ansible Playbook Run.

У меня есть текстовый файл, который содержит команду запуска Ansible-Playbook, которую нужно выполнить, и записать вывод в файл журнала: result.log

Вот как выглядит файл "result.log"

PLAY RECAP *********************************************************************
TESTLINUX01                : ok=6   changed=1    unreachable=0    failed=0

Если не удалось равно «0», «Недостижимо» равно «0» и «Изменено» больше 0, затем выведите только HOSTNAME. В этом случае TESTLINUX01

Спасибо за вашу помощь.

2
задан 6 June 2017 в 22:42

2 ответа

Можно использовать что-то как это:

#!/bin/bash

file="result.log"

changed=`grep -Po "changed=\K\d+" $file`
unreachable=`grep -Po "unreachable=\K\d+" $file`
failed=`grep -Po "failed=\K\d+" $file`

if [ $changed -ge 1 -a $unreachable -eq 0 -a $failed -eq 0 ]
 then
  cut -s -f1 -d: $file | tr -s ' '
fi
<час>

Первый мы извлекаем все необходимые значения затем, мы сравниваем их с Вашими желаемыми, если они, где соответствие мы распечатываем имя хоста.

  • grep -Po "changed=\K\d+ возвраты число перед "измененным"
  • оператор IF:
    • $changed -ge 1, если изменено больше, что равный "1"
    • -a и
    • $unreachable -eq 0 недостижимый было равно "0"
    • -a, и
    • $failed -eq 0 отказавший было равно "0", Затем:
  • cut -s -f1 -d: $file | tr -s ' ' печать имя хоста
1
ответ дан 2 December 2019 в 04:48

Спасибо всем за то, что ответили и предоставили решение. Выполнение до конца кодом работает на меня:

cat $file
$file >> $LOGFILE

SUCCESS=`grep "unreachable=0    failed=0" $LOGFILE | awk '{printf "%s ", $1;}'`
echo "Success: $SUCCESS"

FAILURE=`grep -E "unreachable=0    failed=[1-9]" $LOGFILE | awk '{printf "%s ", $1;}'`
echo "Failure: $FAILURE"

Unreachable=`grep -E "unreachable=1    failed=0" $LOGFILE | awk '{printf "%s ", $1;}'`
echo "Unreachable: $Unreachable"
0
ответ дан 2 December 2019 в 04:48

Другие вопросы по тегам:

Похожие вопросы: