From OpenSCADAWiki
Jump to: navigation, search
This page is a translated version of the page Sub-projects/Automatic Builder of OpenSCADA and the translation is 100% complete.

Other languages:
English • ‎Українська
Назва Заснування Стан Учасники
Автоматичний Складальник OpenSCADA Березень 2015

Імплементовано у скриптах побудови, опрацювання репозиторіїв і гілок та перевірки цілей щодо складання до 100 цілей за допомогою: CHROOTів репозиторіїв Linux, VPS та різних під-оточень. Результатом функціонування Складальника є: свіжі та підписані репозиторії Linux, штампи Live Дисків та інші бінарні архіви OpenSCADA.

Роман Савоченко
Опис
Спрямуванням підпроєкту є спрощення розповсюдження-дистриб'юції проєкту OpenSCADA через автоматичне складання бінарних пакетів, їх готових до використання репозиторіїв та інших складних дистрибутивів на кшталт Живих Дисків.

Складач представлено двома загальними BASH-скриптами та декільком BASH-скриптами перевірки:

  • oscadaCheck* — дуже прості скрипти із переліком профілів складання для перевірки oscadaRepBranches та у залежності від хосту складання; вони запускаються зазвичай CRON планувальником, для нічних складань, або вручну. Відомий наразі перелік профілів відповідно до Таблиці 2:
    • oscadaCheck — загальний, використовується на OpenSCADA сервері;
    • oscadaCheck_WorkAtLTS — додатковий загальний, використовується на OpenSCADA сервері при новому випуску LTS версії;
    • oscadaCheck_ExtGen — зовнішній загальний, використовується на Домашньому ПК Автора;
    • oscadaCheck_ExtGen_WorkAtLTS — додатковий зовнішній загальний, використовується на Домашньому ПК Автора при новому випуску LTS версії;
    • oscadaCheck_RPi — зовнішні "Raspbian" цілі, використовується на RPi3 Автора;
    • oscadaCheck_RPi_WorkAtLTS — додаткові зовнішні "Raspbian" цілі, використовується на RPi3 Автора при новому випуску LTS версії.
  • oscadaRepBranches — для опрацювання переліку профілів вказаних у командному рядку у форматі "{Target}[:option[,optionN]] {EN}{ForWork}{ForLTS}{ForLTSServ}{OmitSourceTree}", де:
    • "EN"{0|1} — увімкнення цілі;
    • "ForWork"{0|1} — включення до складання для Робочої (Work) гілки;
    • "ForLTS"{0|1} — включення до складання для загальних оновлень Стабільної (LTS) гілки;
    • "ForLTSServ"{0|1} — включення до складання для сервісних оновлень Стабільної (LTS) гілки;
    • "OmitSourceTree"{0|1} — оминати завантаження дерева вихідних із SVN, переважно для складання Живих штампів.
  • oscadaBuild — для складання та розміщення результатних пакетів і іншого для Стабільної (LTS) та Робочої (Work) гілок OpenSCADA.

Структура файлів системи автоматичного складання передбачає:

\-- /data/
    |-- oscada/
    |   |-- bin/
    |   |   |-- oscadaBuild
    |   |   |-- oscadaRepBranches
    |   |   |-- oscadaCheck
    |   |   \-- oscadaCheck_WorkAtLTS
    |   |-- build/                 => робоча тека складання, яка містить розпаковані CHROOTи
    |   |   |-- log/               => протоколи складань
    |   |   \-- *.stamp            => штампи-ознаки вдалих складань
    |   \-- chroot-data.tgz        => містить GPG ключ підпису пакетів та їх репозиторіїв для складальника
    \-- share_res/
        \-- ftp/                   => FTP тека результатів складання
            |-- {ALTLinux,Debian}/ => Теки репозиторіїв Linux Дистрибутивів Автоматизації
            |-- Misc/
            |   \-- chroots/       => Тека архівів складальних CHROOTів
            \-- OpenSCADA/         => Теки репозиторіїв OpenSCADA
                |-- LTS/           => Теки Стабільних (LTS) репозиторіїв OpenSCADA
                \-- Work/          => Теки Робочих (Work) репозиторіїв OpenSCADA

Автоматична складальна система підтримує також її розподіл за специфічними оточеннями (для деяких типів складання) на кшталт різних апаратних платформ, інколи замість їх CHROOTів. Розподіл відбувається перенесенням частини автоматичного складальника назовні шляхом: розгортання структури на горі лише для потрібних цілей, організації локального файлового серверу та планування синхронізації скрипту oscadaSyncFtp на ядрі автоматичного складальника (скажіть Роману Савоченко щодо цього) — основний FTP-сервер.

Наразі автоматичний складальник передбачає складання:

  • Робочої (Work) версії (1) щодо останньої SVN-ревізії із тегом "(stable)";
  • Стабільної (LTS) версії (0.9.U.S) щодо загального (U) та сервісного (S) оновлення.

Table 1: Реалізовані профілі — типи складання.

Ціль Результат Метод складання Зовнішнє розгортання Додаткове
SrcTar Пакети вихідних, запаковані XZ TAR пакетами CHROOT "Debian_7_32" Так Оновлює документацію OpenSCADA для LTS.
SrcRPM, CentOs*, SuSE*, Fedora*, ALTLinux*, Mandriva* Вихідні та бінарні RedHat пакети для апаратних архітектур x86_32 і x86_64 CHROOT Так Допускає підлаштування до специфіки латками "openscada_*.patch".
Викликом наданого сценарію "reposUpdate" у теці результатів, репозиторії пакетів можуть бути: створені, оновлені, підписані щодо пакетів та репозиторію загалом.
Цільові параметри:
  • "rep" — до теки репозиторію замість теки OpenSCADA;
  • "dev" — монтувати системні теки до CHROOT (/dev, /dev/pts, /proc).
Debian*, Raspbian*, Ubuntu* Пакети Debian для апаратних архітектур x86_32, x86_64, ARMHF, ARM64, NATIVE CHROOT Так Допускає підлаштування до специфіки латками "openscada[-{platform}]_*.patch".
Викликом наданого сценарію "reposUpdate" у теці результатів, репозиторії пакетів можуть бути: створені, оновлені, підписані щодо пакетів та репозиторію загалом.
Цільові параметри:
  • "rep" — до теки репозиторію замість теки OpenSCADA.
Nokia* Пакети Debian для апаратної архітектури ARMEL Scratchbox Так Допускає підлаштування до специфіки латками "openscada_*.patch".
Gen32PLC*, LP8x81* TAR пакети прошивок ПЛК для архітектури x86_32 VPS: bldrALT32.oscada Ні Використовує mkimage профілі ALTLinux: "mkimage-profiles-5-plc", "mkimage-profiles-5-plc-LP8x81", "mkimage-profiles-6-plc", "mkimage-profiles-6-plc-LP8x81".
Цільові параметри:
  • "UI" — включити Користувацький Інтерфейс, лише для ALTLinux 5;
  • "rt1" — використати ядро "rt1-up", для ALTLinux 6.
Live_ALT Гібридний ISO штамп або TAR пакет Живого Диску Linux дистрибутиву Автоматизації заснованого на ALTLinux VPS: bldrALT32.oscada Ні Використовує ALTLinux mkimage профіль "mkimage-profiles-6-kdesktop".
Оновлює MD5SUM ISO штампів у файлі "MD5SUM".
Цільові параметри:
  • "flash" — скласти TAR пакет замість ISO штампу.
Live_Deb Гібридний ISO штамп Живого Диску Linux дистрибутиву Автоматизації заснованого на Debian VPS: bldrDeb8.oscada; home.home Ні Використовує профілі Живої Побудови Debian: live7-32, live7-64, live8-32, live8-64, live9-32, live9-64, live10-32, live10-64, live11-32, live11-64.
Оновлює MD5SUM ISO штампів у файлі "MD5SUM".
ICP_DAS_LP_ARM, SMH2Gi TAR пакети прошивок ПЛК для апаратної архітектури ARM. VPS: bldrDeb8.oscada + TOOLCHAIN Ні Використовує відповідні TOOLCHAINs.

Таблиця 2: Актуальні цілі складання (на 01.01.7531/01.03.2023).

Ціль(і) OpenSCADA Хост Примітки
SrcTar Work+LTS oscada.org
SrcRPM LTS oscada.org
Debian
Debian_11_{32,64,armhf,arm64} -
Debian_11_{32,64,armhf,arm64}:rep Work+LTS home.home
Debian_10_{32,64,armhf} -
Debian_10_{32,64,armhf}:rep Work+LTS home.home
Debian_9_{32,64,armhf} -
Debian_9_{32,64,armhf}:rep Work+LTS home.home
Debian_8_{32,64,armhf} -
Debian_8_{32,64,armhf}:rep Work+LTS oscada.org
Debian_7_{32,64} -
Debian_7_{32,64}:rep Work+LTS oscada.org
Debian_6_{32,64} -
Raspbian, the same Debian but for Raspberry Pi — a very specific ARMv6 environment for the BCM2835 and early chips mostly.
Raspbian_9_native Work+LTS pi.home
Raspbian_8_native LTS pi.home
Ubuntu
Ubuntu_22.04_{32,64} Work+LTS home.home The 32-bit architecture is some limited and there is missing the MariaDB and libphonon4qt5 packages.
Ubuntu_20.04_{32,64} Work+LTS home.home The 32-bit architecture is some limited and there is missing the MariaDB and libphonon4qt5 packages.
Ubuntu_18.04_{32,64} LTS home.home Very new Linux kernel for CHROOT on oscada.org
Ubuntu_16.04_{32,64} LTS oscada.org
Ubuntu_14.04_{32,64} LTS oscada.org
Ubuntu_12.04_{32,64} LTS oscada.org
Ubuntu_11.10_{32,64} -
Ubuntu_10.04_{32,64} -
CentOs
CentOs_8_64:dev Work+LTS+ServLTS home.home
CentOs_7_64 LTS oscada.org
CentOs_6_{32,64} LTS oscada.org
SuSE
SuSE_15_64:dev LTS home.home Very new Linux kernel for CHROOT on oscada.org. GPG2 needs for mounting the system folders.
SuSE_13_{32,64} LTS oscada.org
SuSE_12_{32,64} LTS oscada.org
SuSE_11_{32,64} -
ALTLinux
ALTLinux_7_{32,64} -
ALTLinux_7_{32,64}:rep LTS oscada.org
ALTLinux_6_{32,64} -
ALTLinux_6_{32,64}:rep Work+LTS oscada.org
ALTLinux_5_{32,64} -
ALTLinux_5_{32,64}:rep -
Fedora
Fedora_12_32 LTS oscada.org
Mandriva
Mandriva_2011_{32,64} -
Mandriva_2010_{32,64} -
Nokia
Nokia_800 LTS oscada.org
Nokia_900 Work+LTS oscada.org
Nokia_950 LTS oscada.org
PLC+Embedded
Gen32PLC_ALT6 LTS oscada.org
Gen32PLC_ALT6:rt1 LTS oscada.org
Gen32PLC_ALT5 -
Gen32PLC_ALT5:UI -
LP8x81_ALT6 LTS oscada.org
LP8x81_ALT6:rt1 LTS oscada.org
LP8x81_ALT5 -
LP8x81_ALT5:UI -
SMH2Gi LTS oscada.org
ICP_DAS_LP_ARM -
TionPro270 -
Live
Live_Deb11_{32,64} Work+LTS home.home
Live_Deb10_{32,64} Work+LTS home.home
Live_Deb9_{32,64} Work+LTS home.home
Live_Deb8_{32,64} Work+LTS oscada.org
Live_Deb7_{32,64} Work+LTS oscada.org
Live_ALT Work+LTS oscada.org
Live_ALT:flash -