Mechanizm automatycznej aktualizacji obrazów OpenWrt
Ostatnia zmiana: 2024-08-18 13:24

Attendedsysupgrade, przetłumaczony na język polski jako "Nadzorowany Sysupgrade" (we wcześniejszych wersjach) lub "Aktualizacja interaktywna" w nowszych wersjach, to mechanizm pozwalający na sprawdzenie dostępności nowej wersji OpenWrt oraz aktualizację systemu. W przeciwieństwie do ręcznej aktualizacji możliwe jest żądanie zbudowania obrazu do którego dołączone zostaną dodatkowe pakiety które już mamy w systemie lub chcemy dodać je ręcznie. Proces ten opiera się o usługę online pozwalającą na budowanie obrazów z wykorzystaniem imagebuilda, a która dostępna jest także z poziomu serwisu https://firmware-selector.openwrt.org/

Ten mechanizm jest opcjonalny, nie jest instalowany i nie jest dostępny domyślnie w obrazach OpenWrt. Moje obrazy LuCI zawierają go już wbudowanego.

Konsola



    # opkg update
    # opkg install auc

Plik konfiguracyjny (/etc/config/attendedsysupgrade, dostępny przez uci) zawiera m.in. adres URL serwera aktualizacji projektu OpenWrt (którego na początek nie musimy zmieniać).
Podstawowe wywołanie programu to:


    # auc

Sam proces aktualizacji wygląda następująco:


    # auc
    auc/0.3.1-1
    Server: https://sysupgrade.openwrt.org
    Running: 22.03.1 r19777-2853b6d652 on x86/64 (generic)
    Available: 22.03.2 r19803-9a599fee93
    Requesting package lists...
        rpcd: 2022-08-24-82904bd4-1 -> 2022-09-21-8c852b65-1
        busybox: 1.35.0-3 -> 1.35.0-5
        ucode-mod-ubus: 2022-08-29-344fa9e6-1 -> 2022-10-18-00af0650-1
        luci-theme-bootstrap: git-22.141.59265-d8ecf48 -> git-22.288.45147-96ec0cd
        libuuid: 2.37.3-3 -> 2.37.4-1
        base-files: 1492-r19777-2853b6d652 -> 1494-r19803-9a599fee93
        ucode-mod-uci: 2022-08-29-344fa9e6-1 -> 2022-10-18-00af0650-1
        partx-utils: 2.37.3-3 -> 2.37.4-1
        libsmartcols: 2.37.3-3 -> 2.37.4-1
        firewall4: 2022-09-01-f5fcdcf2-1 -> 2022-10-18-7ae5e14b-1
        dnsmasq: 2.86-14 -> 2.86-15
        luci-mod-status: git-22.189.48501-6731190 -> git-22.302.42268-2878b35
        libblkid: 2.37.3-3 -> 2.37.4-1
        ucode-mod-fs: 2022-08-29-344fa9e6-1 -> 2022-10-18-00af0650-1
        libnftnl: 1.2.1-1 -> 1.2.1-2
        rpcd-mod-file: 2022-08-24-82904bd4-1 -> 2022-09-21-8c852b65-1
        ucode: 2022-08-29-344fa9e6-1 -> 2022-10-18-00af0650-1
        luci-base: git-22.245.77528-487e58a -> git-22.304.65171-ec905e6
        libucode: 2022-08-29-344fa9e6-1 -> 2022-10-18-00af0650-1
        rpcd-mod-iwinfo: 2022-08-24-82904bd4-1 -> 2022-09-21-8c852b65-1
        luci-mod-network: git-22.244.54818-b13d8c7 -> git-22.300.51227-e076071
    Are you sure you want to continue the upgrade process? [N/y] y
    Requesting build....................
    Downloading image from https://sysupgrade.openwrt.org/store/02227acb8c8d3bf7d11d087afcd18f1b/openwrt-22.03.2-ce7c8be5016d-x86-64-generic-squashfs-combined.img.gz
    Writing to 'openwrt-22.03.2-ce7c8be5016d-x86-64-generic-squashfs-combined.img.gz'
    Tue Nov 15 19:17:51 UTC 2022 upgrade: Image metadata not present
    Tue Nov 15 19:17:51 UTC 2022 upgrade: Reading partition table from bootdisk...
    Tue Nov 15 19:17:51 UTC 2022 upgrade: Extract boot sector from the image
    Tue Nov 15 19:17:51 UTC 2022 upgrade: Reading partition table from image...
    invoking sysupgrade
    Tue Nov 15 19:17:53 UTC 2022 upgrade: Sending TERM to remaining processes ...
    Tue Nov 15 19:17:57 UTC 2022 upgrade: Sending KILL to remaining processes ...

W przypadku takiej aktualizacji wszystkie pliki konfiguracyjne zostaną zachowane, ale stracimy własne pliki, skrypty czy ustawienia które nie wchodzą w skład pakietów. Czyli zachowuje się identyczne jak ręczna aktualizacja z opcją zachowania konfiguracji.

auc posiada kilka różnych opcji pozwalających na sprawdzenie dostępności wydania, wymuszenie aktualizacji, instalowane określonej wersji czy aktualizację innego wydania niż ostatnie dostępne.

LuCI

W środowisku graficznym LuCI aktualizujemy listę pakietów i instalujemy dodatkowe pakiety (menu System -> Oprogramowanie): luci-app-attendedsysupgrade oraz ew pakiet luci-i18n-attendedsysupgrade-pl jeżeli chcemy mieć język polski. Po ponownym zalogowaniu się do LuCI w menu "System" powinna być dostępna pozycja "Nadzorowany Sysupgrade" lub "Aktualizacja interaktywna".

image

image

Pierwsza zakładka umożliwia sprawdzenie i ew pobranie oprogramowania, druga zakładka - konfigurację usługi. Jeżeli zostanie zaznaczona opcja "Tryb zaawansowany" w zakładce "Konfiguracja" to w momencie sprawdzenia dostępności wersji zostanie wyświetlona lista zainstalowanych pakietów którą można zmodyfikować - usunąć lub wpisać nowe pakiety. Serwis zbuduje nowe obraz bazując na takiej liście który będzie można pobrać lub/i automatycznie zainstalować.

image

image

image

Obrazy z eko.one.pl

Witryna eko.one.pl także posiada mechanizm aktualizacji obrazów do ostatniej dostępnej wersji. W przeciwieństwie do serwisu openwrt.org, mechanizm eko.one.pl nie pozwala na automatycznie budowanie obrazów bazujących na własnej liście pakietów tylko dostarcza gotowe, skompilowane obrazy które dostępne są także za pośrednictwem wyszukiwarki czy bezpośrednio do pobrania z witryny dl.eko.one.pl.

Aby skorzystać z mechanizmu dostarczonego przez portal eko.one.pl należy zmienić adres serwera aktualizacji na https://dl.eko.one.pl który zawarty jest w pliku /etc/config/attendedsysupgrade - ręcznie z konsoli:


    # uci set attendedsysupgrade.server.url='https://dl.eko.one.pl'
    # uci commit

lub w LuCI z zakładce "System" -> "Nadzorowany Sysupgrade" -> "Konfiguracja", sekcja "Serwer" pole "Adres".

image

Po zapisaniu zmian możliwe jest użycie w identyczny sposób z konsoli lub LuCI jak opisano powyżej.

Wraz z końcem sierpnia 2023r pojawił się w repozytorium eko.one.pl pakiet backupandrestore, zawarty domyślnie w aktualnie budowanych obrazach pobieranych z https://dl.eko.one.pl. W jego skład wchodzą dwa skrypty:
- backuppkgslist.sh, wykonanie go tworzy listę pakietów zainstalowanych ręcznie przez użytkownika
- restorepkgslist.sh, po którego uruchomieniu instalowane są pakiety ze wcześniej utworzonej listy

Dzięki tym pakietom możliwe jest zrobienie listy pakietów zrobionych przez użytkownika, wykonanie aktualizacji systemu z zachowaniem konfiguracji (ręcznie przez sysupgrade, przez auc lub z LuCI przez attendedsysupgrade) a później zainstalowanie pakietów na podstanie danych z zachowanego backupu.

Więcej informacji: na forum witryny.