UDM-Pro-SE: docker-ce & docker-compose

Reddwarf

UniFier
5 okt 2018
647
844
143
Ik weet niet of er interesse voor is maar na een regenachtig weekendje is het vrij eenvoudig gelukt om onderstaande functionaliteit toe te voegen aan de UDM-Pro-SE:

  • nextdns.io
  • docker-ce (op /ssd1/docker zodat deze ook eens wordt gebruikt)
Mocht er interesse voor zijn kan ik mijn stappen delen, alles blijft actief na een reboot, zie onderstaande schermafbeeldingen:



edit: cockpit/cockpit-docker is verwijderd
 
Laatst bewerkt:
Nog geen idee aangezien er nog geen nieuwe fw is uitgebracht maar de stappen zijn zeker makkelijk te scripten en ik neem aan dat de fw update van de ssd1 afblijft.
 
Als het blijft werken wil ik er met alle liefde een handleiding van maken, onderstaand alvast mijn eigen documentatie. Laat even weten als er zaken onduidelijk zijn.

## docker-ce installation

# install prerequsites
sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common

# setup docker repo for debian 9 - stretch
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=arm64] https://download.docker.com/linux/debian stretch stable"

# install docker-ce
sudo apt-get update
sudo apt-get install docker-ce
sudo apt-get install docker-compose

## move docker directory to ssd

# stop docker daemon
sudo systemctl stop docker

# create docker configuration file /etc/docker/daemon.json with this content
{
"data-root": "/ssd1/docker"
}

# move docker directory
mkdir /ssd1/docker
sudo rsync -aP /var/lib/docker/ /ssd1/docker
sudo rm -fr /var/lib/docker

# start docker
systemctl start docker



# nextdns.io installation
NEXTDNS_VERSION=master/SNAPSHOT-74b49b1 sh -c 'sh -c "$(curl -sL https://nextdns.io/install)"'
 
Laatst bewerkt:
Ik vraag me af waarom je dit zou willen. Natuurlijk, experimenteren is leuk, maar ik zou niet het risico willen nemen dat je door dit soort extra pakketten problemen op je netwerk veroorzaakt.
 
  • Leuk
Waarderingen: PcRene en LTAX04
Gelukkig staat daar iedereen helemaal vrij in en ik kijk er meer naar dat de routers bepaalde functionaliteit missen (zoals openvpn, wireguard onersteuning) en dit mogelijk is door container sofware als docker te installeren. Voordeel is dat docker verder geen wijzigingen doet aan het host systeem en het ook weer zo is verwijderd.

2e punt is dat je met een factory default en restore van een backup weer snel terug bent waar je was begonnen….
 
Tuurlijk is iedereen daar vrij in, maar ik zou een dergelijk gemodificeerd product nooit bij een klant inzetten. Of omgekeerd als klant zijnde accepteren.
 
  • Leuk
Waarderingen: MOHdennisNL
Gelukkig staat daar iedereen helemaal vrij in en ik kijk er meer naar dat de routers bepaalde functionaliteit missen (zoals openvpn, wireguard onersteuning) en dit mogelijk is door container sofware als docker te installeren. Voordeel is dat docker verder geen wijzigingen doet aan het host systeem en het ook weer zo is verwijderd.

2e punt is dat je met een factory default en restore van een backup weer snel terug bent waar je was begonnen….
Het staat eenieder vrij om te doen en laten wat ze willen. Zelf vind ik het zonde. Heb je zo'n mooi ding in huis, gooi je je garantie in eens weg met een dergelijke actie. De leverancier kan volgens mij achterhalen of onder de motorkap "geknoeid" is. Ik zou dit niet aanraden bij een nieuw product :confused:. Als je functionaliteiten mist zou ik denken dat je een verkeerd product in huis gehaald hebt.
 
De garantie is niet echt een punt. Want zodra je de firmware er opnieuw opzet dan is alles weer in fabriekstoestand. Dat is dan ook een van de grootste nadelen, bij elke firmware update moet je alle wijzigingen opnieuw installeren en ook opnieuw testen of alles nog werkt.
Dus een praktische oplossing is het niet.
Maar zoals gezegd: Als experiment is het leuk :)
 
  • Leuk
Waarderingen: MOHdennisNL
Zo zie ik het ook hoor, ale een hobby project en altijd benieuwd hoe zaken onder de motorkap werken.

Als je geen risico's wil lopen raad ik iedereen mijn stappen te volgen en (nog) niet als een handleiding te zien, daarvoor is het te kort door de bocht en zoals eerder genoemd nog geen idee of het een fw update overleeft.
 
  • Leuk
Waarderingen: dbw
De update 2.2.7 geïnstalleerd en volgende conclusies:
- configuratie bestanden in /etc/docker, /etc/nextdns.conf en toevoegingen voor apt zijn netjes blijven staan
- zoals verwacht is de /ssd1 netjes met rust gelaten en zijn alle docker images en containers beschikbaar
- herinstallatie van de packages met apt-get install was voldoende om de boel weer in de lucht te krijgen

Samen met een startup script die checkt of de packages aanwezig zijn lijkt het eenvoudig om dit een nieuwe fw update te laten overleven..

een blij rood dwergje ;-)
 
Ga je nu in het startup script zaken installeren? Dat lijkt me toch een risico, als er iets misgaat.
Of controleer je alleen, en geef je een melding : “je moet nog iets installeren”
 
Dit zijn standaard debian packages waarbij ik geen risico zie deze te installeren met de check of ze al dan niet bestaan (of nog beter of ee bepaalde configuratie bestanden zijn aangemaakt).
Ik heb een service aangemaakt die als een van de laatste stappen in het boot proces zaken start en eventueel checkt of dit gelukt is.
 
Door aan de file /etc/default/ubnt-dpkg-cache de volgende regel toe te voegen worden ook de docker files weer toegevoegd na een firmware update en komen de containers weer in de lucht (als je dat hebt ingesteld voor de betreffende container)

Code:
DPKG_CACHE=yes
DPKG_CACHE_DEBUG=yes
DPKG_CACHE_APT_UNPACK=yes
DPKG_CACHE_APT_REMOVE_AS_PURGE=yes
DPKG_CACHE_UBNT_PKGS="unifi unifi-base-ucore unifi-core unifi-protect uid-agent gnupg2 software-properties-common gir1.2-packagekitglib-1.0 iso-codes libglib2.0-data libpackagekit-glib2-18 python-apt-common python3-apt python3-pycurl python3-software-properties software-properties-common unattended-upgrades cgroupfs-mount containerd.io docker-ce docker-ce-cli git git-man liberror-perl pigz docker-compose python-backports.ssl-match-hostname python-cached-property python-cffi-backend python-chardet python-cryptography python-docker python-dockerpty python-docopt python-enum34 python-funcsigs python-functools32 python-idna python-ipaddress python-jsonschema python-mock python-openssl python-pbr python-pyasn1 python-requests python-six python-texttable python-urllib3 python-websocket python-yaml"
 
  • Leuk
Waarderingen: Hempie, PcRene en dbw
Geen nadelen in mijn ogen, je past geen zaken aan in het UnifiOS die impact zouden kunnen hebben op de werking. Theoretisch is de impact met linux 0% maar kan afhankelijk zijn van de inrichting qua security en of je de container al dan niet als root user draait.
 
  • Leuk
Waarderingen: SDeath
Activiteit
Er wordt op dit moment (nog) geen nieuwe reactie gepost.
  Topic Status: Hallo . Er is al meer dan 14 dagen geen nieuwe reactie meer geplaatst.
  De inhoud is mogelijk niet langer relevant.
  Misschien is het beter om in plaats daarvan een nieuw onderwerp te starten..