Ansible, ошибка lxd при установке XRoad: Attribute Error: у NoneType нет атрибута “items”, что приводит к lxd_container.py

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

Я пытался установить XRoad с помощью ansible и LXD, следуя этим шагам:

Sudo snap install lxd

lxd init

$ sudo apt update $ sudo apt install software-properties-common $ sudo add-apt-repository –yes –update ppa:ansible/ansible $ sudo apt install ansible ansible-playbook hosts -i hosts/lxd_hosts.txt xroad_init.yml

Я получил эту ошибку: Attribute Error: NoneType has no attribute “items”, что привело к lxd_container.py

ansible-loop-var item: xroad-lxd-cs

Localhost ok=1 failed=1

В первый раз, когда я делал почти те же шаги, я не получил никакой ошибки. Теперь я пытался установить Xroad на другой ВМ (Ubuntu) и получил эту ошибку.

Я использую Ubuntu 22.04

Спасибо за любую помощь

Я пробовал:

Переустановить lxd, ansible (на другие версии)

Установить python 3.12

Apt update + upgrade

Переключиться с Bridged на NAT

Переустановить Ubuntu

Изображения ошибки:

введите описание изображения здесь

введите описание изображения здесь

введите описание изображения здесь

введите описание изображения здесь

введите описание изображения здесь

введите описание изображения здесь

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

Проблема, с которой вы столкнулись при установке XRoad с использованием Ansible и LXD, связана с ошибкой AttributeError: NoneType has no attribute 'items', что указывает на то, что в коде модуля lxd_container.py происходит обращение к объекту, который равен None. Это может быть вызвано множеством причин, но, как правило, это связано с неправильной конфигурацией или отсутствующими данными.

Вот несколько шагов, которые вы можете предпринять для решения этой проблемы:

  1. Проверка конфигурации LXD:
    Убедитесь, что у вас правильно настроен LXD. Выполните команду lxc info, чтобы проверить статус LXD и наличие доступных локальных контейнеров. Если lxd init не выполнялся должным образом, попробуйте перезапустить его и убедиться, что все необходимые параметры заданы правильно.

  2. Проверка версии Ansible:
    Убедитесь, что версия Ansible, которую вы используете, совместима с версией LXD. Попробуйте использовать стабильную версию Ansible, такую как 2.10 или выше, и убедитесь, что вы используете соответствующую версию Python (Python 3.8, например).

  3. Убедитесь, что у вас есть необходимые переменные:
    Проверьте ваш hosts/lxd_hosts.txt и файл xroad_init.yml. Убедитесь, что все переменные, которые ожидаются в xroad_init.yml, играют свою роль и не являются пустыми. Ошибка может возникнуть, если Ansible пытается обработать переменные, которые не были заданы или были определены неправильно.

  4. Отключение фактов Ansible:
    Если вы используете факты Ansible в вашей плейбуке, попробуйте временно отключить сбор фактов, добавив gather_facts: no в начало вашего плейбука. Это может помочь вам определить, связана ли ошибка с частью кода, которая собирает факты.

  5. Обновление и переустановка пакетов:
    Так как вы пробовали переустанавливать LXD и Ansible, убедитесь, что вы очищаете все старые зависимости. Попробуйте также удалить папки и файлы конфигурации, если они остались после удаления пакетов, затем переустановите необходимые пакеты.

  6. Просмотр логов:
    Проверьте логи Ansible для получения более подробной информации относительно ошибки. Запустите Ansible с повышенным уровнем подробности, добавив -vvv к вашей команде запуска, это может помочь определить, в каком именно месте происходит ошибка.

  7. Обратитесь к документации XRoad:
    Возможно, представители проекта XRoad предложат дополнительные решения для установки на Ubuntu 22.04, если проблема вызвана уникальными аспектами данной версии ОС.

Если все вышеперечисленные шаги не помогли, я рекомендую создать issue на GitHub в репозитории проекта XRoad или Ansible, предоставив подробные сведения о вашей среде и возникшей ошибке. अभिनेत्री, включите журналы ошибок и конфигурацию, чтобы разработчики могли помочь вам более конкретно.

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

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