Re: Clients identiek houden
On Sat, Jan 10, 2015 at 12:33:18PM +0100, Steven Post wrote:
> Dag Paul,
>
> Disclaimer: ik werk als ICT system engineer en sta mee in voor het
> beheer van een aantal Linux systemen. Een aantal dat steeds blijft
> groeien. Momenteel zo'n 250.
>
> On Fri, 2015-01-09 at 12:25 +0100, Paul van der Vlis wrote:
> > Hoi allen,
> >
> > Ik beheer een aantal clients die eigenlijk identiek zijn, op een paar
> > uitzonderingen na zoals de hostname. Ik heb een backup van zo'n client
> > op de server.
> >
> > Om een client te installeren boot ik met een live-cd, partitioneer,
> > formatteer, download de data uit de backup, en installeer grub. Wellicht
> > kan dit handiger, maar dit werkt.
> >
> > Nu zit ik me af te vragen of zoiets ook later zou kunnen, dus om de
> > machines identiek te houden. Bijvoorbeeld vanaf de server iets van:
> > rsync -a --exclude=... --del /client pc01:/
> >
> > Het lijkt me eigenlijk moeten kunnen, alleen komt die --exclude
> > natuurlijk wel vrij precies. en zijn er wellicht nog meer punten (zoals
> > de netwerk interfaces in udev, en het UUID van het filesystem moet
> > identiek zijn).
> >
> > Hebben jullie al eens met zo'n gedachte gespeeld of er zelfs ervaring mee?
> >
> > Uiteraard is het hele filesysteem via NFS ook een optie, maar dat maakt
> > b.v. het opstarten van een applicatie weer traag lijkt me.
> > Verder wordt het niet zo heel veel gebruikt en is het niet altijd
> > bruikbaar (bijvoorbeeld niet bij laptops).
> >
> > Ook iets als Puppet is een optie, maar dat lijkt me veel werk om goed
> > aan de praat te krijgen. Ik gebruik nu een eigen script, wat een ander
> > script download en uitvoert.
> >
>
> Zelf gebruik ik Puppet om systemen identiek te houden, of althans de
> delen van de systemen die me interesseren.
>
> Onze systemen zijn Red Hat, maar dat is perfect te vertalen naar
> Debian-based systemen. Wij gebruiken kickstart om een machine te
> installeren (virtueel of fysiek), in Debian zou dat 'preseeding' zijn.
> Een van de items in onze 'post-install' scripts (uitgevoerd via de
> automatische kickstart/preseed) gaat een puppet agent installeren en
> verbinden met de puppet master (2 dedicated machines achter een hardware
> load balancer). Als het moeilijk is om een aparte server te gebruiken
> voor de Puppet master (geen hardware ter beschikking, of geografisch te
> verspreid) kan je ook 'puppet apply' uitvoeren op de verschillende
> machines (via crontab bijvoorbeeld).
>
> Puppet (en enkele andere tools zoals chef, maar daar heb ik geen
> ervaring mee)zijn uitstekend geschikt voor configuration management
> zoals het beheren van users, packages, services, etc...
> Het identiek houden van files kan ook op een simpele manier (inclusief
> de attributen zoals permissions, owner, etc.), maar als dit er echt veel
> worden (hele directory trees) zal het Puppet erg vertragen tijdens een
> run. Hiervoor is iets als rsync beter voor geschikt. Het rsync-commando
> in een cronjob kan op zich dan weer perfect via puppet verspreid worden
> naar de systemen.
>
> Mijn raad voor Puppet is vooral: begin klein.
> Je moet niet meteen proberen om alles in Puppet te zetten, dat is meer
> iets voor de langere termijn als je bestaande systemen hebt.
> De eerste dingen die je doet zijn 'low hanging fruit', de makkelijke
> dingen waar je normaal zelf het meeste tijd insteekt.
> Ook nieuwe dingen zet je in Puppet, bestaande items kan je langzaam
> toevoegen. Puppet beheert de zaken die je wil, al de andere dingen
> worden niet aangeraakt.
>
> Een 2de tip voor Puppet is: denk in het begin niet aan hoe je iets in
> Puppet zal zetten, maar hoe het er op de machine moet uitzien, dan pas
> zet je dat in Puppet, niet omgekeerd.
>
> Succes!
>
> Regards,
> Steven
Nog een tip: Ansible
Ansible is ook orchestration zo als Puppet en Chef.
Grootste pluspunt van Ansible is dat het "agentless" is.
Ansible maakt gebruikt van SSH en Python.
Dus geen gekloot met eerst agent software op de clients te leggen.
Ook geen gedoe met "certificates".
Andere goede ontwerpkeuze van Ansible is dat volgorde in de "playbooks"
aangehouden wordt. Bij Puppet wordt de volgorde van "afspelen" door
de Puppetagent naar eigen goed dunken bepaalt ...
En mocht je nog nooit eerder van Ansible gehoord / gelezen hebben,
dat kan kloppen, het bestaat nog net geen drie jaar.
http://en.wikipedia.org/wiki/Ansible_%28software%29
Groeten
Geert Stappers
--
Leven en laten leven
Reply to: