cl-install-pxe завершается с Traceback`ом

Экспериментируя с PXE, развернул cl-install dhcp, вручную сконфигурировал in.tftpd, сконфигурировал загрузку на iPXE - всё исправно работало. После решил попробовать запуск calculate через pxe, скачал cldx.iso, положил его в /var/calculate/linux и по инструкции дал команду на развертывание:

cl-install-pxe --iso /var/calculate/linux/cldx-20170407-i686.iso

В ответ на что консоль мне ответила буквально следующее:

Установка PXE
 * Установочный образ: Calculate Linux Desktop Xfce 17 i686 20170407
 * Путь для установки: /var/calculate/pxe
 * IP адрес PXE сервера: 192.168.0.254

Запустить процесс? (Yes/No):
 * Распаковка образа системы ...                                                                                                                       [ ok ]
 * Настройка PXE установки \Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/calculate/core/server/func.py", line 690, in run
    res = method(*args)
  File "/usr/lib/python2.7/site-packages/calculate/core/server/func.py", line 209, in applyTemplates
    cl_templ.applyTemplates()
  File "/usr/lib/python2.7/site-packages/calculate/lib/cl_template.py", line 71, in wrapper
    return f(*args, **kw)
  File "/usr/lib/python2.7/site-packages/calculate/lib/cl_template.py", line 4261, in applyTemplates
    skipTemplates=skipTemplates) is False:
  File "/usr/lib/python2.7/site-packages/calculate/lib/cl_template.py", line 4554, in scanningTemplates
    optNextDir)
  File "/usr/lib/python2.7/site-packages/calculate/lib/cl_template.py", line 4554, in scanningTemplates
    optNextDir)
  File "/usr/lib/python2.7/site-packages/calculate/lib/cl_template.py", line 4554, in scanningTemplates
    optNextDir)
  File "/usr/lib/python2.7/site-packages/calculate/lib/cl_template.py", line 4554, in scanningTemplates
    optNextDir)
  File "/usr/lib/python2.7/site-packages/calculate/lib/cl_template.py", line 4529, in scanningTemplates
    if not self.processingFile(absPath, prefix, optDir):
  File "/usr/lib/python2.7/site-packages/calculate/lib/cl_template.py", line 4593, in processingFile
    filesApl = self.joinTemplate(path, nameFileConfig, optFile)
  File "/usr/lib/python2.7/site-packages/calculate/lib/cl_template.py", line 6125, in joinTemplate
    formatTemplate, self.textConfig)
  File "/usr/lib/python2.7/site-packages/calculate/lib/cl_template.py", line 1875, in createObject
    obj = classFormat(textTemplate, self.parent)
  File "/usr/lib/python2.7/site-packages/calculate/lib/cl_template.py", line 1794, in __init__
    self.prepare()
  File "/usr/lib/python2.7/site-packages/calculate/lib/format/bind.py", line 44, in prepare
    self.docObj = self.textToXML()
  File "/usr/lib/python2.7/site-packages/calculate/lib/format/bind.py", line 309, in textToXML
    self.reSepFields)
  File "/usr/lib/python2.7/site-packages/calculate/lib/format/bind.py", line 114, in splitToAllArea
    reSepFields)
  File "/usr/lib/python2.7/site-packages/calculate/lib/format/bind.py", line 114, in splitToAllArea
    reSepFields)
  File "/usr/lib/python2.7/site-packages/calculate/lib/format/bind.py", line 98, in splitToAllArea
    reComment)
  File "/usr/lib/python2.7/site-packages/calculate/lib/format/bind.py", line 72, in findOpenClose
    end_bloc = bloc_a[close_bl.start():close_bl.end()]
AttributeError: 'NoneType' object has no attribute 'start'                                                                                                  ...
 * AttributeError:'NoneType' object has no attribute 'start'(calculate.lib.format.bind:72)
 * Отключение устанавливаемого дистрибутива ...                                                                                                        [ ok ]
 * Не удалось установить систему!

В итоге изменения оказались внесены в /etc/conf.d/in.tftpd; файл /etc/dhcp/dhcpd.conf оказался нетронутым, и в /var/calculate/pxe/ оказался каталог calculate с распакованым содержимым iso, но без каталога pxelinux.cfg

Я не знаю, связано ли это с этим или с тем, что я внёс изменения в конфигурацию dhcpd, но заставить отработать команду мне не удалось :frowning:

Что можно сделать в этом случае?

А какие изменения сделаны вручную?

Вручную отредактирован /etc/dhcp/dhcpd.conf:

#------------------------------------------------------------------------------
 # Modified Calculate-server 2.1.16
 # File of a profile "profile/dhcp"
#------------------------------------------------------------------------------

allow bootp;

on commit {
set client_ip = binary-to-ascii (10,8,".", leased-address);
set client_domain = pick (config-option domain-name, config-option server.ddns-domainname);
set client_host = pick (option host-name, host-decl-name);
execute ("/usr/lib/calculate/calculate-server/bin/dhcp", "--host", client_host, "--domain", client_domain, "--ip", client_ip, "-s", "ou=DNS,ou=Services,dc=calculate", "-b", "dc=calculate", "-P", "/etc/dhcp/dhcp.ldap");}
ddns-update-style none;
authoritative;
update-static-leases on;
default-lease-time 6000;
max-lease-time 72000;

option client-arch code 93 = unsigned integer 16;

subnet 192.168.0.0 netmask 255.255.255.0 {
        option broadcast-address 192.168.0.255;
        option subnet-mask 255.255.255.0;
        option routers 192.168.0.254;
        option domain-name "ttk-gw.local";
        option domain-name-servers 192.168.0.254;
        range dynamic-bootp 192.168.0.90 192.168.0.99;
        range 192.168.0.100 192.168.0.199;
        if exists user-class and option user-class = "iPXE" {
                filename "http://192.168.0.254/boot.ipxe";
        } else {
                if option client-arch = 00:06 {
                        filename "ipxe.efi";
                } elsif option client-arch = 00:07 {
                        filename "uefi/BOOTx64.EFI";
                } else {
                        filename "undionly.kpxe";
                }
        }
        next-server 192.168.0.254;
}

#host sams-test {
#fixed-address 192.168.0.199;
#hardware ethernet 00:24:54:65:e4:9a;
#filename "calculate-tst/pxelinux.0";
#next-server 192.168.0.254;
#}

host ttk-gw {
        fixed-address 192.168.0.254;
        hardware ethernet 00:0d:88:39:eb:5b;}

т.е. перекопаны настройки подсети, добавлена option и разрешён bootp.

Файл /etc/conf.d/in.tftpd в моей редакции содержит только одну незакомментированную строку:

INTFTPD_OPTS="-u tftp --address 0.0.0.0:69 -vvvvvvv -r blksize -m /etc/tftpd.remap -R 4096:32767 --secure /home/tftp/"

и кучу закомментированных :slight_smile:

Также забыл написать, что после обрыва cl-install-pxe внесены изменения в /etc/exports

Попробуйте обновить утилиты до sys-apps/calculate-utils-3.5.2.25 и sys-apps/calculate-server-2.1.18-r7.