Quali sono le migliori pratiche e i piani futuri per la distribuzione di desktop unixoid? [chiuso]


9

Ho installato desktop Linux per un osservatorio radio senza scopo di lucro. Per me, questa è stata la prima volta che ho dovuto pensare a "distribuire" diverse macchine identiche, centralizzare il login, le home directory e così via. Mi è stato subito chiaro che, forse contrariamente all'intuizione, la filosofia "tutto è testuale" non lo rende necessariamente un compito facile, e mi sono chiesto cosa fanno gli amministratori esperti.

Nel mio caso, stavo installando Ubuntu 10.04 LTS su ogni macchina. Dopo l'installazione, ho eseguito uno script personalizzato che modifica i file di configurazione, rimuove e installa il software e copia alcuni file, come immagini di sfondo o segnalibri del browser, dal server. Penso, tuttavia, che le mie domande siano indipendenti dalla distro.

I problemi

Ho riscontrato principalmente due problemi: in primo luogo, strumenti incoerenti e file di configurazione, sia attraverso le distribuzioni che tra le versioni, e in secondo luogo alcuni software cruciali che non espongono le impostazioni per configurare i file in modo semplice e intuitivo.

Vorrei fare due brevi esempi di ciò che intendo:

Lo ifconfigstrumento è stato sostituito da ip. Tutti gli script che si basano sulla presenza del primo si interromperanno se, ad esempio, vengono eseguiti su una casella ArchLinux corrente. Quindi, avrei bisogno di controllare su quali strumenti sono presenti versioni su una macchina su cui eseguo uno script ... questo in qualche modo sembra reinventare autoconf su piccola scala.

Per il secondo problema, considera che volevo dare ai desktop una sorta di "identità comune". Nel mio post-install-config-script, uso le seguenti righe per raggiungere questo obiettivo:

scp user@server:/export/admin/*.jpg /usr/share/backgrounds/
scp user@server:/export/admin/ubuntu-wallpapers.xml /usr/share/gnome-background-properties/
sed 's/warty-final-ubuntu\.png/MyBackground\.jpg/' -i /usr/share/gconf/defaults/10_libgnome2-common
sed 's/warty\-final\-ubuntu\.png/MyBackground\.jpg/' -i /usr/share/gconf/defaults/16_ubuntu-wallpapers
sed 's/ubuntu-mono-dark/ubuntu-mono-light/' -i /usr/share/gconf/defaults/16_ubuntu-artwork
sed 's/Ambiance/Clearlooks/' -i /usr/share/gconf/defaults/16_ubuntu-artwork

Suppongo che la creazione di un elemento della configurazione sia un'attività comune per gli amministratori dell'organizzazione. Quindi, come mai non esiste una struttura di configurazione centrale, forse anche cross-desktop? Dover impostare due valori (identici!) Non documentati in due file di configurazione distinti mi sembra strano.

Domande

In un ambiente organizzativo, come gestite la configurazione centrale e unificata su più client?

Sistemi come il FAI di Debian offrono vantaggi significativi (oltre a non dover cambiare i CD) rispetto al mio metodo di "installare prima, eseguire gli script dopo"?

Quali sono le buone pratiche per la transizione tra le principali versioni della tua distribuzione? E, a parte le cose tecniche: esiste un ambiente desktop che promette stabilità a lungo termine per quanto riguarda l'esperienza dell'utente? Non credo di poter migrare i miei utenti su KDE 4 o GNOME 3, ma XFCE presenta ancora alcuni svantaggi funzionali ...

Esiste un sistema * nix che risolve questo tipo di problemi di configurazione? Ad esempio, suppongo che ci siano sistemi che ti chiedono alcune immagini della tua organizzazione (loghi, immagini di sfondo, set di colori e caratteri ecc.) E le applicherei al gestore degli accessi, ai desktop degli utenti, alle app web (!) E così su. Nota: nel nostro caso, devo lavorare con i client fat, quindi una soluzione puramente thin client non sarà di aiuto.

Risposte:


3

Usare Puppet o CFEngine o Chef è la soluzione giusta per il tuo problema. Ovviamente ci vorrà un po 'di tempo e un approccio di prova ed errore per scrivere lo script Puppet che funziona. Questi strumenti sono ampiamente utilizzati per automatizzare installazioni complesse su cloud e hanno semplificato la vita degli amministratori come noi. :)


Grazie per il suggerimento! Come ho chiesto a MaxMackie in precedenza, Puppet fornisce qualche tipo di "intelligenza centralizzata e crowdsourcing" per quanto riguarda le regole di riscrittura quando si passa da una versione principale all'altra della mia distribuzione? Ad esempio, se so che $ DISTRO passa da GNOME 2 a 3, ci sarà un percorso di migrazione semi-automatico?
jstarek,

Puoi scrivere un file per, diciamo, la configurazione di Gnome3 e includerlo nelle configurazioni degli host su cui vuoi installare Gnome3. ma dipende anche da come crei la configurazione delle marionette. Se segui un approccio modulare, sarà più facile. Puppet stesso non sarà in grado di identificare Gnome3 o 2. (spero di aver capito bene la tua domanda)
Abhishek A

3

Prima di tutto, non aspettarti che sarà facile lavorare con più distribuzioni.

Non ho eseguito implementazioni desktop di grandi dimensioni. Per me il miglior compromesso è stato l'utilizzo di una LAN boot / tftp per avviare il sistema, quindi eseguire l'installazione su NFS. La maggior parte delle distro Linux ti chiedono tutte le configurazioni iniziali in anticipo - quindi puoi lasciare il programma di installazione in esecuzione per, diciamo 40 minuti, incustodito (nessuna richiesta "Vuoi davvero eseguire questo programma?"). A quel punto mi occupavo delle macchine Redhat e Suse e avevo un RPM preparato con tutte le configurazioni personalizzate che ho installato dopo aver completato l'installazione standard. Tuttavia è del tutto possibile automatizzare tutto ciò su una varietà di distro.

Non sono un grande fan della distribuzione Ubuntu per vari motivi, ma Lanscape di Canonical è uno strumento davvero impressionante. E se hai intenzione di fare molte installazioni su larga scala di Ubuntu / gestire più desktop Ubuntu, vale sicuramente la pena dare un'occhiata più da vicino.


Guardando il sito di Landscape, ho l'impressione che non gestisca le voci del file di configurazione - quindi, dovrei creare pacchetti locali che apportano le modifiche necessarie all'installazione?
jstarek,

1

Ho lavorato molto con un software chiamato CFEngine . È un gestore di configurazione open source che legge le "regole" che imposti e assicura che ogni macchina a cui è legata e rispetti tali regole. È completamente open source e così utile la nostra azienda ha deciso di utilizzare la versione supportata del software chiamato Nova.

Questa è una visione ampia di come funziona. Supponiamo che tu abbia 4 computer sulla tua rete gestita. Tutti devono avere un file /etc/syslog.conf, di proprietà di root, lo stesso (secondo un master) e chmod 777. Dovresti creare questa regola nel file di configurazione di CFEngine. Dal tuo computer centrale, hai il /etc/syslog.conffile "master" . Ogni X volte, la versione di CFEngine del tuo computer passerà attraverso la rete e chiederà a ogni casella il suo /etc/syslog.conffile. La copia locale di CFEngine in esecuzione su ciascun client interrogherà il file in questione e riporterà il contenuto, le autorizzazioni, ecc. Se non corrispondono ESATTAMENTE alla copia dell'incantatore, CFEngine invierà la tua copia al client e controllerà nuovamente i file. Si abbineranno e passerà alla tua prossima regola.

Per quanto riguarda la semplicità, la sintassi utilizzata nelle "regole" di CFEngine (che chiamano promesse) potrebbe richiedere un po 'di tempo per abituarsi, ma vale la pena imparare (aggiunge un'altra grande abilità al tuo skillset).


Grazie per il suggerimento, darò un'occhiata a CFEngine. Tuttavia, da quello che ho letto fino ad ora, sembra che non mi salverà dalla riscrittura delle regole quando si passa a una nuova versione principale della mia distribuzione, giusto?
jstarek,

1

Quindi, come mai non esiste una struttura di configurazione centrale,

Gnome ha GConf che può eseguire tutte queste attività minori:

http://wiki.novell.com/index.php/Locking_Down_the_GNOME_Desktop

http://library.gnome.org/admin/system-admin-guide/stable/gconf-9.html.en

Ubuntu LTS è quasi l'unica opzione per il supporto a lungo termine sul desktop.

L'implementazione di più macchine è quasi possibile con un semplice dd, le distribuzioni dei desktop stanno lentamente rendendo questo un percorso meno attraente.

Considera anche un'opzione ora è il cosiddetto client fat .


Sto già utilizzando client fat, ma questo non semplifica la configurazione da solo: ottengono solo le informazioni homedir e passwd da un server centrale. Se GNOME non usasse GConf e non inserisse file di configurazione importanti in / usr / share / gconf / defaults /, si potrebbe semplicemente tenere un / etc / da qualche parte su un server e far montare i fat client, ma no, i ragazzi di GNOME sembra sapere meglio. Sospiro ...
jstarek,

@jstarek montano i fat client /, GConf esegue l' override live/etc/gconf/gconf.xml.*/
Steve-o
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.