Проверка прогресса при выполнении ansible-pull с cloud-init

Вопрос или проблема

Я развертываю виртуальную машину Ubuntu в Kubernetes. Для ее настройки я использую Ansible.

Как я могу увидеть журналы ansible-pull, выполняемого в cloud-init?

Я бы хотел контролировать процесс и проверить, когда он завершится.

Вот пример того, что я использую:

        - cloudInitNoCloud:
            userData: |-
              #cloud-config
              packages:
                - ansible
              runcmd:
                - ansible-pull -U https://...

Я пытался искать журналы в /var/log, но ничего подходящего не нашел.

Я нашел обходной путь: использовать tee, чтобы перенаправить журнал в файл:

ansible-pull -U https://... | tee -a /var/log/ansible-pull.log

Ответ или решение

Чтобы отслеживать прогресс выполнения команды ansible-pull, запущенной через cloud-init на вашем Ubuntu VM в Kubernetes, вы можете использовать несколько различных подходов. Нижеприведенные методы помогут вам собрать логи и иметь возможность контролировать процесс установки.

1. Логирование с использованием tee

Как вы уже упомянули, один из простых способов – использовать команду tee, которая позволит вам выводить логи в файл, параллельно отображая их в стандартном выходном потоке. Просто измените вашу команду ansible-pull, добавив tee следующим образом:

- cloudInitNoCloud:
    userData: |-
      #cloud-config
      packages:
        - ansible
      runcmd:
        - ansible-pull -U https://... | tee -a /var/log/ansible-pull.log

Это обеспечит запись всех выходных данных команды ansible-pull в файл /var/log/ansible-pull.log, который вы затем сможете проверить для мониторинга процесса работы.

2. Использование cloud-init для записи логов

Вы также можете изменить конфигурацию cloud-init для записи логов непосредственно в стандартные логи cloud-init. Это делается с помощью команды cloud-init-output:

- cloudInitNoCloud:
    userData: |-
      #cloud-config
      packages:
        - ansible
      runcmd:
        - cloud-init-output -w
        - ansible-pull -U https://... >> /var/log/cloud-init-output.log 2>&1

3. Проверка статуса выполнения через cloud-init

Логи cloud-init обычно находятся в /var/log/cloud-init.log и /var/log/cloud-init-output.log. Вы можете их проверить, чтобы найти информацию о выполнении команды. Используйте следующие команды для просмотра логов:

sudo tail -f /var/log/cloud-init-output.log

или

sudo tail -f /var/log/cloud-init.log

Эти команды помогут отслеживать статус выполнения ansible-pull в реальном времени.

4. Мониторинг с помощью системы

Для дополнительного контроля, вы можете использовать инструменты мониторинга и алертинга, такие как Prometheus или Elasticsearch, в сочетании с Grafana для визуализации, что даст вам возможность иметь более широкий обзор за процессом развертывания.

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...