Я устанавливаю MAAS 3.0 (regiond+rackd) на узел управления HPC (Ubuntu 18.04х¼. Сетевые интерфейсы infiniband сразу вызвали некоторые проблемы, потому что его MAC-адрес 20-октет долго, не 6-октет длинный. Но БД MAAS использует тип макадр для столбца mac_address в таблице maasserver_interface, который предполагает 6 октетов.
2021-07-21 07:37:31 maasserver.start_up: [ошибка] Ошибка базы данных при запуске
Traceback (последний последний вызов):
Файл "/snap/maas/15003/usr/lib/python3/dist-packages/django/db/backends/utils.py", строка 84, в _execute
вернуть self.cursor.execute (sql, параметры)
psycopg2.errors.InvalidTextRepresentation: недопустимый синтаксис ввода для типа macaddr: "20:00:19:07:fe:80:00:00:00:00:00:00:b8:83:03:ff:ff:7f: 31:d5"
LINE 1: ...15:fe', '00:11:0a:6c:25:4d', '14:02:ec:33:2b:75', '20:00:19:...
^
Вышеупомянутое исключение было прямой причиной следующего исключения:
Traceback (последний последний вызов):
Файл "/snap/maas/15003/lib/python3.8/site-packages/maasserver/start_up.py", строка 68, в start_up
выход deferToDatabase (inner_start_up, master = master)
Файл "/snap/maas/15003/usr/lib/python3/dist-packages/twisted/python/threadpool.py", строка 250, inContext
результат = inContext.theWork()
Файл "/snap/maas/15003/usr/lib/python3/dist-packages/twisted/python/threadpool.py", строка 266, в <lambda>
inContext.theWork = lambda: context.call(ctx, func, *args, **kw)
Файл "/snap/maas/15003/usr/lib/python3/dist-packages/twisted/python/context.py", строка 122, в callWithContext
вернуть self.currentContext().callWithContext(ctx, func, *args, **kw)
Файл "/snap/maas/15003/usr/lib/python3/dist-packages/twisted/python/context.py", строка 85, в callWithContext
функция возврата (*аргументы,**кВт)
Файл "/snap/maas/15003/lib/python3.8/site-packages/provisioningserver/utils/twisted.py", строка 870, в callInContext
функция возврата (*args, **kwargs)
Файл "/snap/maas/15003/lib/python3.8/site-packages/provisioningserver/utils/twisted.py", строка 202, в обертке
результат = функция (* аргументы, ** kwargs)
Файл "/snap/maas/15003/lib/python3.8/site-packages/maasserver/utils/orm.py", строка 706, в call_with_connection
функция возврата (*args, **kwargs)
Файл "/snap/maas/15003/lib/python3.8/site-packages/maasserver/utils/__init__.py", строка 194, в call_with_lock
функция возврата (*args, **kwargs)
Файл "/snap/maas/15003/lib/python3.8/site-packages/maasserver/utils/orm.py", строка 751, в call_within_transaction
вернуть func_outside_txn(*args, **kwargs)
Файл "/snap/maas/15003/lib/python3.8/site-packages/maasserver/utils/orm.py", строка 554, в retrier
функция возврата (*args, **kwargs)
Файл "/usr/lib/python3.8/contextlib.py", строка 75, во внутреннем
функция возврата (*args, **kwds)
Файл "/snap/maas/15003/lib/python3.8/site-packages/maasserver/start_up.py", строка 121, в inner_start_up
node = RegionController.objects.get_or_create_running_controller()
Файл "/snap/maas/15003/lib/python3.8/site-packages/maasserver/models/node.py", строка 741, в get_or_create_running_controller
узел = self._find_or_create_running_controller()
Файл "/snap/maas/15003/lib/python3.8/site-packages/maasserver/models/node.py", строка 778, в _find_or_create_running_controller
узел = self._find_running_node()
Файл "/snap/maas/15003/lib/python3.8/site-packages/maasserver/models/node.py", строка 798, в _find_running_node
вернуть get_one (nodes.distinct())
Файл "/snap/maas/15003/lib/python3.8/site-packages/maasserver/utils/orm.py", строка 112, в get_one
извлеченные_элементы = кортеж (islice (элементы, 0, 2))
Файл "/snap/maas/15003/usr/lib/python3/dist-packages/django/db/models/query.py", строка 274, в __iter__
self._fetch_all()
Файл "/snap/maas/15003/usr/lib/python3/dist-packages/django/db/models/query.py", строка 1242, в _fetch_all
self._result_cache = список (self._iterable_class (я))
Файл "/snap/maas/15003/usr/lib/python3/dist-packages/django/db/models/query.py", строка 55, в __iter__
результаты = компилятор.execute_sql (chunked_fetch = self.chunked_fetch, chunk_size = self.chunk_size)
Файл "/snap/maas/15003/usr/lib/python3/dist-packages/django/db/models/sql/compiler.py", строка 1140, в execute_sql
курсор.execute(sql, параметры)
Файл "/snap/maas/15003/usr/lib/python3/dist-packages/django/db/backends/utils.py", строка 67, выполняется
вернуть self._execute_with_wrappers (sql, params, many=False, executor=self._execute)
Файл "/snap/maas/15003/usr/lib/python3/dist-packages/django/db/backends/utils.py", строка 76, в _execute_with_wrappers
исполнитель возврата (sql, params, many, context)
Файл "/snap/maas/15003/usr/lib/python3/dist-packages/django/db/backends/utils.py", строка 84, в _execute
вернуть self.cursor.execute (sql, параметры)
Файл "/snap/maas/15003/usr/lib/python3/dist-packages/django/db/utils.py", строка 89, в __exit__
поднять dj_exc_value.with_traceback(traceback) из exc_value
Файл "/snap/maas/15003/usr/lib/python3/dist-packages/django/db/backends/utils.py", строка 84, в _execute
вернуть self.cursor.execute (sql, параметры)
django.db.utils.DataError: неверный синтаксис ввода для типа macaddr: "20:00:19:07:fe:80:00:00:00:00:00:00:b8:83:03:ff:ff: 7f:31:d5"
LINE 1: ...15:fe', '00:11:0a:6c:25:4d', '14:02:ec:33:2b:75', '20:00:19:...
^
Есть ли способ ограничить сетевые интерфейсы, которые будет читать maas? Например, чтобы исключить интерфейсы infiniband (ib0 и ib1 в моем случае).
Или я предлагаю разработчикам MAAS использовать другой тип (изменяющийся символ) для столбца mac_address.
Спасибо