LINUX.ORG.RU

ansible отображение имени и адреса узла в плейбуке

 


1

4

хочется получить вот такое поведение ansible при работе

TASK [system information] *************************************************************************************
skipping: [host1 1.1.1.1]
skipping: [host2 1.1.1.2]

то есть чтобы в плее выводилось и имя узла и его ip адрес. но кроме рисования в инвентори никаких мыслей не приходит.

[group]
host1-1.1.1.2 ansible_host=1.1.1.2

но как-то это некошерно… чтение док не помогает :( грамотно сформулировать запрос в гугле тоже не получается - ищем какую-то фигню…


/usr/lib/python2.7/site-packages/ansible/plugins/callback/default.py :

    def v2_runner_on_skipped(self, result):

        if self.display_skipped_hosts:

            self._clean_results(result._result, result._task.action)

            if self._last_task_banner != result._task._uuid:
                self._print_task_banner(result._task)

            if result._task.loop and 'results' in result._result:
                self._process_items(result)
            else:
                msg = "skipping: [%s]" % result._host.get_name()
                if self._run_is_verbose(result):
                    msg += " => %s" % self._dump_results(result._result)
                self._display.display(msg, color=C.COLOR_SKIP)
NDfan
()
Ответ на: комментарий от slovazap

Это у него просто некроверсия какая-то. RHEL, возможно.

anonymous
()
Ответ на: комментарий от slovazap

Надеюсь, что этот пятничный вечер не сильно подпорчен той строчкой, в итоге :D

Всё правильно коллега следом предположил.

Так что там с коллбэками можем посоветовать? Тема-то неплохая, в целом.

NDfan
()
Ответ на: комментарий от NDfan

похоже что это как раз то что надо. с колбэками еще дело не имел и в ту сторону даже не заглядывался. насколько понимаю - нужно писать что-то свое, подменяющее дефолтовый вывод примерно так

msg = "ok: [%s - %s]" % (result._host.get_name(), result._host.get_ip())

с налету поправить для эксперимента в default.py не получилось - обьект не имеет такого атрибута. чешу репу - откуда взять ip узла?

andy77
() автор топика
Ответ на: комментарий от andy77

откуда взять ip узла?

Вот, это, кстати, краеугольный вопрос, как мне кажется. Т.е. либо единократно уделить время inventory, и ansible_host везде прописать; либо предварительно отдельным task-ом эти факты собрать и прикопать. Как-то так.

А стоит ли вообще игра свеч? Я бы в начале сценария вывел сводную таблицу, да и хватит на этом.

Хотя, поиграться с питоновскими дополнениями под ansible, может быть полезной задачкой, наверно.

NDfan
()
Ответ на: комментарий от NDfan

мне проще однократно сделать инвентори. но вот не могу понять - как в колбэк вытащить ansible_host? для меня игра стоит свеч - приходится работать с СУ в которой прописаны имена без айпи, и нет dns.

andy77
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.