Nodes inspoelen vanuit server - hoe te werk gaan?

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • init
  • Registratie: September 2011
  • Niet online
Voor een project is het nodig om vanuit een server verschillende nodes in te spoelen. Hierbij is het idee alsvolgt:

De server (Ubuntu 19.04) heeft een debian based ISO opgeslagen(momenteel Raspbian ivm raspberry pi nodes). Deze ISO zal op de server aangepast moeten worden, en deze vervolgens sturen naar de nodes. Deze aanpassingen zullen zijn: beveiligingsmaatregelen toepassen (UFW, passwords, ssh-keygen etc.), een apparaat toevoegen aan authorized devices (SSH, ivm beheerbaarheid) en configuratie van OpenVPN. Vervolgens zal deze aangepaste ISO verzonden moeten worden naar de nodes en hierop geinstalleerd moeten worden. Dit zal allemaal volledig automatisch moeten gebeuren en met behulp van opensource software.

Nu is de vraag: hoe kan ik ervoor zorgen dat de server automatisch een custom ISO opzet? Ik ben al een tijdje aan het googelen. Ondanks dat ik verschillende tools heb gevonden, heb ik nog niks kunnen vinden wat instaat is om bovengenoemde te doen.

Alle reacties


Acties:
  • 0 Henk 'm!

  • thunder7
  • Registratie: Januari 2003
  • Laatst online: 06:10

thunder7

houten vaas/schaal nodig?

Linux distributies kunnen over het algemeen booten met bestanden van een tftp-server.

/etc/hosts.allow staat je toe scripts te runnen als er een tftp verbinding binnenkomt.

Maar of je zo'n iso snel genoeg aangepast/opgebouwd hebt om een eventuele timeout voor te zijn?

Bovendien boot je dan van bestanden op de server, niet van een iso. Maar is dat echt nodig?

hout-nerd - www.hetmooistehout.nl of www.houtenschalen.nl


Acties:
  • 0 Henk 'm!

  • init
  • Registratie: September 2011
  • Niet online
thunder7 schreef op vrijdag 3 april 2020 @ 16:04:
Linux distributies kunnen over het algemeen booten met bestanden van een tftp-server.

/etc/hosts.allow staat je toe scripts te runnen als er een tftp verbinding binnenkomt.

Maar of je zo'n iso snel genoeg aangepast/opgebouwd hebt om een eventuele timeout voor te zijn?

Bovendien boot je dan van bestanden op de server, niet van een iso. Maar is dat echt nodig?
De eerste stap zou in principe het opbouwen van de ISO zijn. Daarna wil ik kijken hoe ik deze wil verplaatsen naar de nodes en hoe deze geboot gaat worden.

Bedankt in ieder geval voor de tip, wie weet kan ik dit in de volgende stap gebruiken.

Acties:
  • 0 Henk 'm!

  • _JGC_
  • Registratie: Juli 2000
  • Nu online
Je kunt bij Debian en Ubuntu gebruikmaken van preseed, kan je gewoon de standaard netinstaller gebruiken met een configfile. Eventueel kan je daar ook nog custom commando's uit laten voeren.
Serveren via DHCP, TFTP (pxelinux met HTTP support) en HTTP (grote bestanden via TFTP is traag) en je kunt je machines vanaf het netwerk booten om zo te installeren.

Zelf bij oud werkgever ooit een systeem gemaakt die servers volautomatisch kon installeren met een hook in initramfs. pxelinux, kernel en initrd van TFTP trekken, hook zat voor het mounten van rootfs en pakte een .tar.xz image van een NFS server. Bij elke reboot werd server vers geïnstalleerd.

[ Voor 29% gewijzigd door _JGC_ op 03-04-2020 19:04 ]


Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 23:29

Hero of Time

Moderator LNX

There is only one Legend

Met hierboven, een preseed of unattended installatie kan je al heel wat dingen doen. Om eventueel nog meer in te stellen wat met zo'n preseed niet direct kan, zijn er nog config management pakketten zoals Puppet, Chef, Ansible, Cfengine, etc. Die stellen je namelijk in staat om na initiële installatie de configuratie nog bij te werken indien nodig. Zo hoef je niet een nieuwe installatie uit te voeren als er iets aangepast moet worden. En het houdt een staat bij van hoe het moet zijn.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • init
  • Registratie: September 2011
  • Niet online
_JGC_ schreef op vrijdag 3 april 2020 @ 19:00:
Je kunt bij Debian en Ubuntu gebruikmaken van preseed, kan je gewoon de standaard netinstaller gebruiken met een configfile. Eventueel kan je daar ook nog custom commando's uit laten voeren.
Serveren via DHCP, TFTP (pxelinux met HTTP support) en HTTP (grote bestanden via TFTP is traag) en je kunt je machines vanaf het netwerk booten om zo te installeren.

Zelf bij oud werkgever ooit een systeem gemaakt die servers volautomatisch kon installeren met een hook in initramfs. pxelinux, kernel en initrd van TFTP trekken, hook zat voor het mounten van rootfs en pakte een .tar.xz image van een NFS server. Bij elke reboot werd server vers geïnstalleerd.
Thanks voor deze tip! Ik was nog niks tegen gekomen over preseed.
Hero of Time schreef op vrijdag 3 april 2020 @ 19:56:
Met hierboven, een preseed of unattended installatie kan je al heel wat dingen doen. Om eventueel nog meer in te stellen wat met zo'n preseed niet direct kan, zijn er nog config management pakketten zoals Puppet, Chef, Ansible, Cfengine, etc. Die stellen je namelijk in staat om na initiële installatie de configuratie nog bij te werken indien nodig. Zo hoef je niet een nieuwe installatie uit te voeren als er iets aangepast moet worden. En het houdt een staat bij van hoe het moet zijn.
Gezien de servers zo secure mogelijk moeten worden opgezet, probeer ik externe tooling te vermijden (Salt, Puppet, Chef etc.). Dit omdat vanuit de opdrachtgever verwacht wordt dat, bij gebruik van deze tooling, deze volledig wordt nagelopen op eventuele security issues. Omdat hier nogal wat tijd in gaat zitten (en ik lang niet alles nodig heb wat deze tooling biedt) zie ik af van het gebruik hiervan. Waarschijnlijk was het duidelijker geweest als ik dit in mijn beginpost had gezet.

Ik begrijp je advies. Als de beveiliging niet zo'n hoge prioriteit had, had ik ook voor een soort gelijke tool gekozen. Zelf heb ik al wel eerder met Saltstack gewerkt, waardoor een programma als deze ook als eerste bij mij te binnen schoot.

Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 23:29

Hero of Time

Moderator LNX

There is only one Legend

Als je om mogelijk, misschien, potentiële security redenen afziet van config management tools, heb je niet goed begrepen wat voor werk ze je uit handen nemen. Want wil je echt alle nodes met de hand langs gaan of opnieuw moeten uitrollen als je een instelling wilt wijzigen die juist de beveiliging kan verhogen? Wat als iemand het voor elkaar krijgt de firewall uit te schakelen bijvoorbeeld, hoe zorg je er voor dat, dat wordt hersteld?

Het mooie van dit soort tooling, mede door het open source zijnde, is dat er vele ogen naar kijken en security issues snel en serieus opgepakt worden.

Maar goed, als je liever downtime van je nodes wilt en uren aan tijd wilt verspillen door een tool minder te gebruiken, ga ik je niet in de weg zitten. Maar realiseer je dan ook dat het uitrollen via het netwerk z'n eigen security implicaties geeft die veel groter kan zijn dan een config management tool.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • init
  • Registratie: September 2011
  • Niet online
Hero of Time schreef op vrijdag 3 april 2020 @ 23:42:
Als je om mogelijk, misschien, potentiële security redenen afziet van config management tools, heb je niet goed begrepen wat voor werk ze je uit handen nemen. Want wil je echt alle nodes met de hand langs gaan of opnieuw moeten uitrollen als je een instelling wilt wijzigen die juist de beveiliging kan verhogen? Wat als iemand het voor elkaar krijgt de firewall uit te schakelen bijvoorbeeld, hoe zorg je er voor dat, dat wordt hersteld?

Het mooie van dit soort tooling, mede door het open source zijnde, is dat er vele ogen naar kijken en security issues snel en serieus opgepakt worden.

Maar goed, als je liever downtime van je nodes wilt en uren aan tijd wilt verspillen door een tool minder te gebruiken, ga ik je niet in de weg zitten. Maar realiseer je dan ook dat het uitrollen via het netwerk z'n eigen security implicaties geeft die veel groter kan zijn dan een config management tool.
Ik begrijp het doel wel van config management tools, alleen passen deze minder goed in dit project. Het is de bedoeling dat de nodes gemakkelijk ingespoeld kunnen worden zonder veel handelingen. Dit zal gedaan worden binnen het bedrijf zelf, waar zowel de server als de node(s) staan. Het zal dus niet de bedoeling zijn dat dit via het internet loopt. Als de installatie voltooid is, is het de bedoeling dat de node de server niet meer kan bereiken. Dit sluit mijn inziens de toevoeging van een config management tool uit. De installatie blijft immers binnen het pand en na de installatie is het niet de bedoeling dat er aanpassingen worden uitgevoerd. Mochten er aanpassingen nodig zijn, dan zal de volledige node opnieuw worden ingespoeld met de vernieuwde versie.

Ik begrijp je denkwijze wel, en zal dit normaliter zelf ook eerder zo gedaan hebben. Vanuit de opdracht (betreft een schoolproject) zijn bepaalde eisen gesteld waardoor config management tools minder functioneel zijn.

Bedankt voor de vragen die je in het begin van je comment stelt. Dit zijn inderdaad dingen waarin we afwegingen moeten maken en moeten gaan kijken hoe we hiermee omgaan. Ik had nog niet bij al je punten stil gestaan. Ik zal deze verder uitzoeken om te bekijken hoe wij hier het beste mee om kunnen gaan.
_JGC_ schreef op vrijdag 3 april 2020 @ 19:00:
Je kunt bij Debian en Ubuntu gebruikmaken van preseed, kan je gewoon de standaard netinstaller gebruiken met een configfile. Eventueel kan je daar ook nog custom commando's uit laten voeren.
Serveren via DHCP, TFTP (pxelinux met HTTP support) en HTTP (grote bestanden via TFTP is traag) en je kunt je machines vanaf het netwerk booten om zo te installeren.

Zelf bij oud werkgever ooit een systeem gemaakt die servers volautomatisch kon installeren met een hook in initramfs. pxelinux, kernel en initrd van TFTP trekken, hook zat voor het mounten van rootfs en pakte een .tar.xz image van een NFS server. Bij elke reboot werd server vers geïnstalleerd.
Zou je me kunnen uitleggen hoe je de node/pi laat weten waar hij de installatie bestanden kan vinden? De server heb ik kunnen configureren, ik kan alleen niet vinden hoe de node/pi tijdens het booten de server kan bereiken.

[ Voor 53% gewijzigd door init op 15-04-2020 20:35 ]

Pagina: 1