[Debian] Customized install uitrollen over netwerk

Pagina: 1
Acties:
  • 1.250 views sinds 30-01-2008
  • Reageer

Acties:
  • 0 Henk 'm!

  • benoni
  • Registratie: November 2003
  • Niet online
Laatst heb ik Debian geinstalleerd op een verouderd werkstation, in opdracht van een applicatiebeheerder die problemen had met de oudere Windows systemen onder de Citrix clients.

Al sinds de eerste dag waren de betrokken werkneemster en de applicatiebeheerder erg tevreden met de Linux installatie. We willen nu op alle oude werkstations Linux gaan installeren. Het zijn HP Vectra's, uit verschillende 'jaargangen', de meeste zonder CD.

Nu had ik voor het pilot-systeem best wat tijd uitgetrokken om het systeem te optimaliseren en een beetje toonbaar te maken (tja... 't is geen Ubuntu he :X ).
Ik heb geen tijd om dit voor elk op te leveren systeem overnieuw te doen, en wil dus de bestaande configuratie kunnen overnemen naar de andere systemen.

Hiervoor zijn een aantal mogelijkheden, die ook in aanvulling op elkaar gebruikt kunnen worden. Ik hoor van jullie graag wat handig is en wat niet. De verschillende oplossingen roepen ook uiteenlopende vragen op, een paar heb ik er al bij geplaatst.

0,5. Een lokale apt-cache draait inmiddels al bij mij op een server. Het downloaden van Debian-pakketten gaat via deze cache. Dit is maar een deeloplossing want er gaat nog niets echt automatisch.

1. Met dd en netcat kun je een harde schijf dupliceren over het netwerk en/of een image ervan maken.
> Informatie erover is hier en daar wel te vinden.
Dit gaat bij ons wat lastig om twee redenen:
- De harde schijven van de werkstations verschillen in omvang. Dus ik moet per partitie gaan dupliceren. Moeten de partities altijd precies even groot zijn als het origineel? Bijkomend nadeel: als ik per partitie doe dan moet ik vooraf de schijf partitioneren en achteraf een GRUB-reparatiefloppy erop loslaten om het MBR bij te werken, want:
- De werkstations hebben geen CD-drive en geen USB-2, dus het moet zonder Knoppix.
De rescue-floppy van Debian heeft volgens mij geen netcat, dus dan moet je dat programma van floppy zien te starten of een tussenfase-installatie maken op de swap... In het laatste geval schiet het niet erg op. Zie ik nog een mogelijkheid over het hoofd?

2. Met rsync is een bestaande installatie te dupliceren door alle bestanden te synchroniseren.
> Informatie staat o.a. hier.
Dit gaat ook wat lastig als je niet vanaf CD kunt starten. Ik denk dat ik in dit geval ook eerst vanaf floppy een minimale systeeminstallatie moet uitvoeren.
- Hoe gaat rsync om met de /dev en /proc folders, worden die automatisch overgeslagen?

3. Een bash-script toepassen die de installatie-procedure automatiseert.
Misschien een aardig alternatief omdat ik vanwege het ontbreken van een CD-ROM waarschijnlijk alleen vanaf floppies kan werken. Ik heb zo gauw geen voorbeelden van scripts kunnen vinden, maar ik kan me niet voorstellen dat het niet bestaat. Ik denk aan een script die van een bestaande installatie een profiel samenstelt (welke .debs zijn geinstalleerd, welke users/groups, de inhoud van homefolders), en een bijbehorend script die deze met behulp van deze gegevens (getarzipt op een server) een nieuw systeem kan installeren.
- Bijkomende vraag: kun je een bestaande /var/lib/dpkg map zondermeer overkopieren naar een nieuw systeem, of krijgt daardoor apt-get bij de eerstvolgende sessie zoveel voor zijn kiezen dat er problemen ontstaan?

4. Een heel andere oplossing waar ik nog niet aan had gedacht.

Wat denken jullie ervan?

Acties:
  • 0 Henk 'm!

  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 03-10 18:29

deadinspace

The what goes where now?

benoni schreef op woensdag 07 september 2005 @ 00:24:
Nu had ik voor het pilot-systeem best wat tijd uitgetrokken om het systeem te optimaliseren en een beetje toonbaar te maken (tja... 't is geen Ubuntu he :X ).
Ik heb geen tijd om dit voor elk op te leveren systeem overnieuw te doen, en wil dus de bestaande configuratie kunnen overnemen naar de andere systemen.
Om wat voor configuratie gaat het dan? Voor bijvoorbeeld de geinstalleerde packages kun je op de voorbeeld-host dpkg --get-selections doen, en de output daarvan voeren aan dpkg --set-selections op de doelmachines. Je zou zo een verzameling configuratie-files (waaronder de dpkg selections) op een ftp-server op de voorbeeld-machine kunnen zetten. Dan kun je een doelsysteem op de gewone manier installeren, dan de configuratie-files overhalen, en op de juiste plek neerzetten. Je zult alleen moeten oppassen voor configuratie-files die bijvoorbeeld een hostname bevatten (zoals Apache's config).
1. Met dd en netcat kun je een harde schijf dupliceren over het netwerk en/of een image ervan maken.
Hier ben ik niet zo van gecharmeerd, maar als je het op die manier wil doen, dan raad ik een wat andere taktiek aan. Eerst moet je dan in het voorbeeldsysteem zorgen dat je de voorbeeldige harddisk (:P) kunt benaderen zonder dat deze geboot is (Komt er dus op neer dat er een tweede harddisk bij moet waar je ook op installeert, en dan vanaf boot, of van CD, of zet het hele voorbeeld-filesystem in een directory op een nieuwe Debian installatie). Dan doe je voor elke te installeren computer:
  • Hang de te installeren harddisk in het voorbeeldsysteem
  • Partitioneer die harddisk
  • Maak de gewenste filesystems aan
  • Kopieer met cp (let op de juiste opties, -a is zeker nodig en -x zul je ook wel nodig hebben) het gewenste filesystem naar de nieuwe harddisk
  • Pas de hostname en evt andere instellingen aan op het nieuwe systeem
  • Installeer de bootloader op het nieuwe systeem
Voor die laatste stap is het waarschijnlijk erg makkelijk als de te installeren harddisk in het voorbeeldsysteem op dezelfde 'plaats' hangt als in het doelsysteem (meestal Primary Master IDE dus).
- Hoe gaat rsync om met de /dev en /proc folders, worden die automatisch overgeslagen?
Daar heeft rsync "blijf op dit filesystem" opties voor (net als cp en tar overigens).
4. Een heel andere oplossing waar ik nog niet aan had gedacht.
FAI - Full Automatic Installer lijkt me wel een leuke. Ik heb er geen ervaring mee, maar het ziet er zo snel vrij degelijk uit. Het kost waarschijnlijk wel wat werk om op te zetten, maar als het goed is heb je daarna per systeem maar weinig werk.

Acties:
  • 0 Henk 'm!

  • benoni
  • Registratie: November 2003
  • Niet online
deadinspace schreef op woensdag 07 september 2005 @ 01:29:
Om wat voor configuratie gaat het dan? Voor bijvoorbeeld de geinstalleerde packages kun je op de voorbeeld-host dpkg --get-selections doen, en de output daarvan voeren aan dpkg --set-selections op de doelmachines. ...
Als ik het zo begrijp is het een export/import functie van dpkg... da's erg handig!

Voor het gemak heb ik slechts 2 useraccounts, een simpele die alleen Citrix opstart en verder niks, en eentje met een eigen gebruikersomgeving. De configuratie is een KDE, zonder fratsen, met Citrix, oOo en Firefox (en *ook handig!* burobladfoto's met alle doorkiesnummers erin).
De usernamen van de accounts blijven hetzelfde, ik verander alleen een volgnummer in de hostnaam.
Je zou zo een verzameling configuratie-files (waaronder de dpkg selections) op een ftp-server op de voorbeeld-machine kunnen zetten. Dan kun je een doelsysteem op de gewone manier installeren, dan de configuratie-files overhalen, en op de juiste plek neerzetten. Je zult alleen moeten oppassen voor configuratie-files die bijvoorbeeld een hostname bevatten (zoals Apache's config).
Als ik zoiets doe dan moet het dus vanaf een (tekst-/batch-)bestand waarin ehm.... wacht even mischien kan ik dan net zo goed een .deb pakket (ver)bouwen, daarin zitten ook scripts die alles op hun plek zetten en hier en daar iets door sed heen halen om de hostnaam aan te passen.
... (over dd) ... Hier ben ik niet zo van gecharmeerd, maar als je het op die manier wil doen, dan raad ik een wat andere taktiek aan. ... (er volgt een uitgebreide beschrijving)
Zoiets was de eerste oplossing waar ik vantevoren aan zat te denken. Maar als netwerkgebaseerde methodes ook zonder CD drive redelijk te automatiseren zijn heeft dat toch wel z'n voordelen. Ik zou het uiteindelijk zo eenvoudig willen hebben dat ook de applicatiebeheerder, liefst vanaf een willekeurige plek in het netwerk, zonder veel omhaal een werkstation kan installeren. Niet dat hij dom is hoor, maar je weet wel vooral ervaring met Windows enzo
Daar heeft rsync "blijf op dit filesystem" opties voor (net als cp en tar overigens).
Ah! Ik werk nu op de Powerbook, die heeft een man-netje voor rsync:

-x, --one-file-system = don't cross filesystem boundaries

Deze opties lijken me ook relevant:

-r, --recursive = recurse into directories
-l, --links = copy symlinks as symlinks
-p, --perms = preserve permissions
-o, --owner = preserve owner (root only)
-g, --group = preserve group
-D, --devices = preserve devices (root only)
-t, --times = preserve times

Edit: Oja, -a doet hetzelfde als -rlptgoD, zoiets schreef je al. Had ik niet meteen door }:O
FAI - Full Automatic Installer lijkt me wel een leuke. Ik heb er geen ervaring mee, maar het ziet er zo snel vrij degelijk uit. Het kost waarschijnlijk wel wat werk om op te zetten, maar als het goed is heb je daarna per systeem maar weinig werk.
Is zeker het proberen waard.

Ik denk dat ik even op FAI moet studeren. Zou toch tof zijn: floppy erin, paar keer 'return' drukken, klaar :7 Als het desondanks erg tegenvalt om het stabiel te krijgen, of de configuraties blijken toch erg te verschillen per type, dan probeer ik vanaf een minimale standaardinstallatie te werken, met een bash-script erachteraan of een custom .deb pakketje.

Hoop tips, leuke uitgangspunten. Veel dank totzover!

[ Voor 6% gewijzigd door benoni op 07-09-2005 03:27 ]


Acties:
  • 0 Henk 'm!

Verwijderd

is ltsp misschien iets voor je ?
http://www.ltsp.org/

Acties:
  • 0 Henk 'm!

  • benoni
  • Registratie: November 2003
  • Niet online
Maar dan moet je nog steeds Linux op de clients installeren en configureren.

Als ik dit zo bekijk is een server/client applicatie die het gebruiken van een Linux systeem als terminal server vergemakkelijkt. Oftewel de Linux equivalent van Citrix. Ik zou natuurlijk zo'n servertje kunnen neerzetten voor het geval dat de Citrix accounts weer eens op zijn, maar de mensen werken juist makkelijk met Citrix omdat hun account een vertrouwde werkomgeving biedt.

Acties:
  • 0 Henk 'm!

  • blouweKip
  • Registratie: November 1999
  • Laatst online: 09:38
Maar dan moet je nog steeds Linux op de clients installeren en configureren.
Juist niet, gewoon via de dhcpserver aan de hand van t mac een juiste rom (pxe oid) laden en je hebt maar 1 server nodig en wat thinclients
Heeft ook als voordeel dat je alles maar 1x hoeft up te daten op de terminal server

"For my friends, anything; for my enemies, the law."


Acties:
  • 0 Henk 'm!

  • benoni
  • Registratie: November 2003
  • Niet online
blouweKip schreef op woensdag 07 september 2005 @ 19:20:
Juist niet, gewoon via de dhcpserver aan de hand van t mac een juiste rom (pxe oid) laden en je hebt maar 1 server nodig en wat thinclients
Heeft ook als voordeel dat je alles maar 1x hoeft up te daten op de terminal server
De meeste werkstations hebben een 3com-kaart (3C590), dus kan ik de netboot optie van 3com gaan uitproberen. Hier en daar zit er een fout Realtec kaartje in, die kunnen we eigenlijk beter dumpen.

  • tomato
  • Registratie: November 1999
  • Niet online
Misschien vind je m23 iets. Ik heb het zelf nooit gebruikt, maar het schijnt eenvoudiger te zijn dan FAI.

  • SA007
  • Registratie: Oktober 2002
  • Laatst online: 03-10 11:10

SA007

Moderator Tweaking
Anders haal een kleine linux versie (iets als smalllinux of freesco, met 1 floppy en met een ssh client, laat deze eerst een ramdisk maken, haal dan via scp utils als fdisk etc binnen, laat die automatisch draaien over de hdd, en alle bestanden van een image op een voorbeeldmachine halen,

Dit kan in principe aangezien de floppy alleen van het netwerk leest met een oneindig aantal pc's tegelijk kunnen, enigste wat de bottleneck is is je netwerkcapaciteit.

anders kan zoiets ook met de hdd van het te installeren systeem loskoppelen en dan via een usb-2 verbinding installeren, hiervoor kan je evt tijdelijk een laptop of andere usb2 bak neergooien.

Voordeel van usb hiervoor gebruiken is dat je geen gekloot krijgt met elke keer rebooten voor de volgende met ide, je hoeft (als je een ide->usb converter en niet een hele casing) niet de hele hdd uit te bouwen etc.

Depends on wat je wil, alles is mogelijk :) :D

  • Sendy
  • Registratie: September 2001
  • Niet online
Als die Vectra's over het netwerk kunnen booten, dan kan je ook een bootimage maken/aanpassen. Begin bijvoorbeeld met de Debian installatie images. Maak een basis installatie en booten maar. Als dat klaar is kan je nog de laatste configuratiewijzingen overkopieren.

Trouwens als je dd niet wilt gebruiken, kan je ook tar uitvoer door nc pipen en deze weer untarren op alle clients.

Acties:
  • 0 Henk 'm!

  • benoni
  • Registratie: November 2003
  • Niet online
SA007 schreef op donderdag 08 september 2005 @ 21:52:
Depends on wat je wil, alles is mogelijk :) :D
Afbeeldingslocatie: http://www.settembre.com/tweaks/dazzling.gif

Acties:
  • 0 Henk 'm!

Verwijderd

Even een update,

We zijn verder gaan kijken met Fai. We hebben op 1 van de pc's geinstalleerd. Vervolgens hebben we de server volledig ingericht zoals beschreven staat in de officiële fai handleiding.

(http://www.informatik.uni...-guide.html/ch-intro.html)

Na de configuratie van de server hebben we een bootfloppy aan gemaakt. Verschillende problemen tegen gekomen toen we vanaf floppy probeerden te booten. Het bleek om netwerk instellingen te gaan. We hadden in ons netwerk namelijk al een dhcp-server draaien en kwamen er achter dat de fai-server dit ook doet.

Toen de problemen waren opgelost leek verder alles prima te gaan. De pc startte naar behoren op. Hij maakt verschillende partities aan en vroeg om een reboot.
Floppy er uit en de pc een reboot gegeven.

Toen hij weer opstartte werkte alles prima en we kwamen in het beginscherm waar we in konden loggen.

Tot hier zijn we gekomen want nu kregen we een regel,

Plan your installation, and FAI installs your plans.

Uhm ja... kan die gedachten lezen of zo ? 8)7

We willen graag het voorbeeldsysteem (de fai-server) compleet over kopiëren!
Heeft iemand dit al eens eerder onder handen gehad? Moet je op de server een soort van images voorbereiden door de root van een bestaand systeem naar de servermap te kopiëren? Of hebben we wat gemist en heeft FAI een gescripte oplossing om het bestaande systeem te dupliceren?

Acties:
  • 0 Henk 'm!

  • benoni
  • Registratie: November 2003
  • Niet online
Omdat onze buurman ineens heel veel haast had moest ik snel aan een werkende oplossing geraken. Er was namelijk een vervelende worm uitgerold over al hun Windows2000 clients :')

Bovenstaande oplossingen liepen allemaal niet erg lekker, en een boel basissystemen vanaf floppy installeren is ook een langdurig karwei, dus ik heb nog eens wat rondgezocht en vond g4u.

Het is eigenlijk heel simpel. Met 2 floppies kun je elk systeem starten, en de HD als image wegschrijven naar een FTP share, of een image terughalen met FTP en naar de HD wegschrijven.
Het werkt ook voor Windows installaties, dus dat komt mooi uit. Het basissysteem en de klonen moeten wel dezelfde technische specificaties hebben.

Ik ben het nu aan het uitproberen, en werk deze post bij als ik aanmerkingen heb.

GHOST IMAGE UPLOADEN MET G4U
  • Maak een FTP share aan op een server,

    in dit voorbeeld gebruikersnaam 'systeembeheer' op server 192.168.111.11.
  • Download floppydisk images op http://www.feyrer.de/g4u/
  • Maak floppies van de images volgens de aanwijzingen op de pagina.
  • Maak het sjabloonsysteem netjes klaar en sluit het af.
  • Start het sjabloonsysteem op met de g4u floppy 1, laden, floppy 2 erin, laden.
  • Tik 'GZIP=-1 ' om de image te comprimeren (en vooral de lege ruimte over te slaan).
  • Tik 'uploaddisk systeembeheer@192.168.111.11 system00.ghostz wd0', return.
  • Tik het wachtwoord voor FTP in.
  • Nu moet ie de image van de HD gaan uploaden. Als 't fout gaat, probeer nog een keer.
GHOST IMAGE INSTALLEREN MET G4U
  • Start het te installeren systeem op met de g4u floppy 1, laden, floppy 2 erin, laden.
  • Tik 'slurpdisk systeembeheer@192.168.111.11 system00.ghostz wd0', return.
  • Tik het wachtwoord voor FTP in.
  • Nu moet ie het kloon systeem bouwen. Als 't fout gaat, probeer nog een keer.

Acties:
  • 0 Henk 'm!

  • freggy
  • Registratie: Juli 2002
  • Niet online
Als je over heel wat computers een installatie moet uitrollen, is udpcast wel interessant: http://www.udpcast.linux.lu/

Je installeert één machine, en daarna kan je vanaf die ene machine de installatie tegelijkertijd multicasten naar alle andere machines. Je kan best (net zoals g4u dacht ik trouwens), lege ruimte vullen met nullen, zodat die met compressie nog een pak sneller ge-udpcast worden.

Acties:
  • 0 Henk 'm!

  • benoni
  • Registratie: November 2003
  • Niet online
freggy schreef op woensdag 18 april 2007 @ 22:51:
Als je over heel wat computers een installatie moet uitrollen, is udpcast wel interessant: http://www.udpcast.linux.lu/

Je installeert één machine, en daarna kan je vanaf die ene machine de installatie tegelijkertijd multicasten naar alle andere machines.
Dat is wel heel interessant, dat udpcast. Vooral de 'save configuration' optie waarmee je de basisdiskette makkelijk in een automatische installatie-diskette verandert, dat had ik bij andere systemen nog niet gezien.
Je kan best (net zoals g4u dacht ik trouwens), lege ruimte vullen met nullen, zodat die met compressie nog een pak sneller ge-udpcast worden.
Als ik het goed doe, vantevoren:
df # Om lege ruimte te tellen
# Aantal blokken lege ruimte invullen bij 'count'
dd if=/dev/zero of=vollulnullen bs=1024 count=$freespace; rm vollulnullen

[ Voor 5% gewijzigd door benoni op 02-05-2007 10:38 ]


Acties:
  • 0 Henk 'm!

  • benoni
  • Registratie: November 2003
  • Niet online
Heeft er trouwens iemand ervaring met Windows computers installeren vanaf een ghost image?
Bij ons werkt g4u prima om Linux systemen te dupliceren, maar als ik voor Windows XP+SP2 de harde schijf heb overschreven met een ghost image krijg ik dit:

code:
1
2
3
Windows kon niet goed worden gestart. Onze excuses voor dit ongemak.
Mogelijk is een recente wijziging van de hardware of software hier de oorzaak van.
...


Het origineel en het duplicaat-systeem zijn beide COMPAQ D51S/P1.8/20/256c UK.
Netwerk los of vast maakt niet uit.

offtopic:
Mods: zeg 't aub even als deze post beter als los topic in WOS past, of zo...

Acties:
  • 0 Henk 'm!

  • Roconda
  • Registratie: Oktober 2005
  • Laatst online: 03-10 09:34
Misschien kun je NOC-monkey gebruiken (http://nocmonkey.psoft.net/) Daar kun je dacht ik zelf ook eigen images bij toevoegen.

Acties:
  • 0 Henk 'm!

  • benoni
  • Registratie: November 2003
  • Niet online
Dank!

En daarbij nog even een 'note to self' en anderen die eveneens op het probleem stuiten dat de eth0 niet meer werkt van een Linux kloon-systeem:
Hi,

your problems sound exactly like the problem we ran into when cloning a Debian installation.

The root of the problem at our site was udev's handling of devices. Udev keeps a history of devices attached to the computer. What makes sense for i.e. USB sticks (that is, each USB stick you attach will be recorded and mounted to the same point when attached again at a later point in time), causes problems when systems are cloned.

There is a file /etc/udev/rules.d/z25_persistent-net.rules, where udev memorises, which hardware device should get named eth0. Here it looks like this:
# PCI device 14xx:16xx (tg3)
ACTION=="add", SUBSYSTEM=="net", DRIVERS=="?*", SYSFS{address}=="00:11:xx:xx:xx:xx", NAME="eth0"

When you run the image on another computer, the new network adapter is recognised on the PCI bus and a new entry in the above mentioned file is generated. "eth0" is already given to device 14xx:16xx, so the new device gets named "eth1".

If you delete this file, it will be rebuilt during the next system startup and your problem should go away.

Regards,
Rainer

Acties:
  • 0 Henk 'm!

  • benoni
  • Registratie: November 2003
  • Niet online
<schaamteloze tweakers.net-als-systeembeheer-documentatie-oplossing misbruik modus>

Met g4u kregen we een foutmelding (file too large o.i.d.) als de ingepakte partitie ergens rond de 2 GB uitkomt. Voor de Windows bakken (die zo'n logge systeeminstallatie hadden, maar gelukkig ook een optie om vanaf een CD te starten) heb ik teruggegrepen op het oude vertrouwde dd en nc (netcat). Waarchijnlijk zal udpcast (zie post van freggy) ook werken.

- Windows master-systeem klaarmaken, defragmenteren en de ongebruikte ruimte opschonen, daarvoor kun je bijvoorbeeld Eraser gebruiken.

- Start het originele systeem en het duplicaat systeem allebei op met een LiveCD (bijvoorbeeld de standaard Ubuntu installatie-CD).

In de de Terminal van het duplicaat systeem:
sudo su # Word root
ifconfig # om het IP-nummer te kijken
nc -l -p 7000 | gzip -dfc | dd of=/dev/hda


In de de Terminal van het originele systeem:
sudo su # Word root
# IP-nummer invullen van het duplicaat systeem
dd if=/dev/hda | gzip -cf | nc 192.168.?.? 7000 -q 10



Netcat is a tool that is called 'the hackers swiss army knife'. That too is a description that I feel does not do this tool justice. The feature I will look at here is its ability to create a basic dummy connection. Basically we will create a simple listening socket on the target, and connect to it on the source system. This linux.com article describes this feature far better than I could, so I will not try to reinvent the wheel. Using the description provided by this article, if I wanted to copy a file from one system to another over a network, I would do something like this:

On the target system I would run:
nc -l -p 7000 | dd of=/dev/hda

On the source system I would run:
dd if=/dev/hda | nc 192.168.1.120 7000 -q 10

Wait several hours and your good to go. You just saved yourself money on Ghost. There are other options here as well. If you?re worried about bandwidth, you can pipe the streams through gzip to compress the data transfer. So to do this, you would run the following commands:

On the target system:
nc -l -p 7000 | gzip -dfc | dd of=/dev/hda

And on the source system:
dd if=/dev/hda | gzip -cf | nc 192.168.1.120 7000 -q 10
</> :>

[ Voor 3% gewijzigd door benoni op 27-01-2008 19:49 ]

Pagina: 1