Visualizzazione post con etichetta Server. Mostra tutti i post
Visualizzazione post con etichetta Server. Mostra tutti i post

martedì 13 marzo 2012

Sincronizzazione e storicizzazione files sul NAS (Bidirezionale!) - Parte 2

Riprendiamo dalla precedente Parte 1.
Come primo passo identifichiamo una cartella da sincronizzare, e la cartella condivisa sul nostro nas che deve replicarne i dati. La creazione della cartella condivisa sul NAS non è oggetto di questo post, anche se non escludo di trattarlo in un prossimo futuro.

Si può anche utilizzare una cartella su uno share, e non necessariamente la radice della cartella condivisa.

Dopo aver installato SyncToy, apriamo l'applicazione e clickiamo su "New Folder Pair".


Se entrambe le cartelle sono vuote, potete lasciare tranquillamente l'opzione "Syncronize". Se una è piena, vi conviene metterla a sinistra e impostare l'opzione "Echo", per poi modificare in "Synchronize".


Date un nome al vostro "Folder Pair". Per il nostro test, ho scelto il nome "SyncTest", e procedete con la sincronizzazione.
In ogni caso, può essere utile un click "Preview" prima di passare alle vie di fatto con il tasto "Run".


A questo punto avete eseguito la prima sincronizzazione tra le due cartelle.
Ci assicureremo che le modifiche siano accolte sia quando vengono effettuate sul pc in locale, sia quando sono eseguite direttamente sul NAS (pensate a quando volete accedere da un portatile, che magari non ha in locale la copia dei vostri dati).

Proviamo quindi a modificare prima il contenuto di qualche file in locale, eseguire la sincronizzazione, controllare il contenuto dello stesso file sul server. E viceversa.


Ovviamente, a regime, la sincronizzazione avverrà in maniera diversa, cioè tramite un task schedulato tramite il programma Windows Task Scheduler, incluso in tutte le edizioni di Windows Vista e Seven. E, ovviamente, avvieremo SyncToy in maniera che la sua finestra non appaia a video, rischiando di interrompere il nostro lavoro. Ma questo sarà oggetto della prossima Parte 3.

giovedì 8 marzo 2012

Sincronizzazione e storicizzazione files sul NAS (Bidirezionale!) - Parte 1

In questo nuovo articolo parleremo di come utilizzare il nostro NAS, basato su Linux/BSD, per sincronizzare i dati presenti nelle nostre Workstation Windows 7 in maniera bidirezionale (e più, come vedremo) e storicizzarli utilizzando solo software open o quantomeno gratuiti.

Immaginiamo che il nostro pc desktop, basato su Windows (ma, ovviamente, la soluzione si può adattare a un desktop Linux), sia quello su cui lavoriamo e salviamo i nostri dati.
Essi finiscono sul disco locale del pc stesso (magari su un disco diverso da quello del sistema operativo; ma lo ho visto accadere raramente nei pc domestici). Se il disco si rompe (o, forse, dovrei dire QUANDO il disco si rompe), i dati potrebbero andare persi. Se tenete ai vostri dai, dovete provvedere, impostando una strategia di backup.
Un backup è tanto più efficace quanto più è trasparente. Se impostate un sistema che prevede di eseguire, ogni giorno o periodicamente, una operazione manuale, è probabile che l'esecuzione di tale operazione non avvenga con la opportuna cadenza, o non avvenga affatto, vanificando (a volte totalmente) totalmente la strategia.

La strategia qui illustrata non richiederà ulteriore manutenzione, se non controllare che ci sia sufficiente spazio sul NAS e sul PC.Non è una soluzione enterprise-level, certamente, ma può ben applicarsi in un ambiente domestico.
Dopotutto, se avete un NAS, sarebbe un vero peccato non utilizzarlo per proteggere i vostri dati.

Alla fine della configurazione, i nostri dati saranno accessibili nei seguenti modi:
  1. Nel disco locale del pc desktop
  2. In una o più cartelle condivise del vostro NAS, in read-write.
  3. Nelle cartelle di rsnapshot, storicizzati secondo i parametri che imposterete. Questa cartella verrà condivisa via Samba (o, volendo, NFS) in modalità rigorosamente read-only.
Così facendo, sarà possibile lavorare dal vostro pc sui dati in locale, anche se il NAS è spento. Quando questo verrà acceso, essi saranno nuovamente sincronizzati.
Se invece accendeste un portatile (o comunque un altro PC), accederete ai dati sulla cartella condivisa del vostro NAS. Non avrete bisogno (non obbligatoriamente, almeno) di avere una copia dei dati in locale anche sul laptop!
Al successivo avvio del PC, i dati in locale in esso contenuti si riallineeranno al contenuto del NAS, mantenendo quindi la consistenza.

I programmi che utilizzeremo sono:
  1. Microsoft SyncToy - disponibile gratuitamente per il download da Microsoft (Link)
  2. Windows Task Scheduler - strumento presente in tutte le edizioni di Microsoft Windows Vista e Seven
  3. Samba - per condividere files dal vostro NAS - presente nei repository della maggioranza delle distribuzioni Linux e BSD
  4. Rsnapshot - presente nei repository della maggioranza delle distribuzioni Linux e BSD
  5. Cron - schedulatore presente su Linux e BSD
  6. Hidden Start (Link). Opzionale, ma utile a non far vedere finestre di output di SyncToy mentre si lavora. La versione gratuita è sufficiente.

SyncToy 2.1 è in grado di sincronizzare (anche in maniera bidirezionale!) il contenuto di due cartelle. E' l'unico software (se si esclude l'opzionale, ma consigliato, hidden start) che dovremo installare sul Desktop). Non dovremo aprire condivisioni di rete. Il client rimane client!

Samba ci serve, come saprete, a condividere files presenti sul nostro NAS, rendendoli indipendenti dal tipo di filesystem che li ospita.

Rsnapshot è un tool basato su rsync, che ci consente di eseguire backup a cadenze regolari. Sarebbe utile se i backup risiedessero su dischi diversi da quelli contenenti i dati veri e propri, ma non è obbligatorio. Meglio ancora è se il sistema su cui si esegue rsnapshot è diverso da quello che contiene i dati. Tuttavia, in un ambiente casalingo, questo comporterebbe la necessità di un ulteriore sistema sempre (o quasi) acceso. Possiamo farci questo sconto, ed eventualmente, se abbiamo hardware che ci avanza, pensare a un terzo sistema su cui replicare i backup (ma questo sarà oggetto di un altro post).

Tramite cron scheduleremo l'esecuzione di rsnapshot in base ai nostri orari di lavoro.

La panoramica finisce qui. A più tardi per la Parte 2!


mercoledì 7 marzo 2012

Installare un server Subversion - Parte 6 - Eclipse

Riprendiamo dalla precedente Parte 5.

Avete tutti Eclipse installato, vero?
Bene. Cominciamo creando un progetto di grande spessore e dal design ricercato. Fior di pagine sono state scritte su progetti di questo genere!



Ora installiamo il plugin Subclipse, che ci servirà a utilizzare il nostro repository Subversion all'interno di Eclipse.


Aggiungiamo il sito "http://subclipse.tigris.org/update_1.8.x", con un nome a piacere (io ho scelto subclipse 1.8).


Selezioniamolo...


E installiamo il primo nodo. Non avremo bisogno di SVNKit.


Accettate la licenza, rispondete OK ai prompt successivi. A questo punto Eclipse vi chiede di riavviare, assecondatelo.


Aprite la Perspective "SVN Repository Exploring"


E aggiungete il nostro repository indicando la URL:
svn+ssh://svn01.subversion.homeserver/Repo01
Se non lo avete ancora fatto, questo è il momento per aprire Pageant e caricare la vostra chiave, come spiegato nella Parte 3.




Siamo connessi! Ora possiamo condividere il nostro progetto sul repository, e renderlo visibile agli altri utenti.







A prescindere da valutazioni circa il fatto che sia opportuno versionare i file .classpath, .project e la cartella .settings, abbiamo finito!
Le immagini parlano da sole, il procedimento è estremamente semplice. Sì, certo... per voi lo è stato. Io ci ho lavorato un tantino di più, ma fa nulla. La condivisione è ricchezza!

A domani per Visual Studio. Oppure Sharpdevelop. Forse entrambi, si tratta di capire quale preparerò per primo.
Buon divertimento!

martedì 6 marzo 2012

Installare un server Subversion - Parte 5

Riprendiamo il nostro percorso. Questa quinta parte sarà dedicata a queste attività:
  1. Checkout repository, aggiunta di un file, verifica author (svn01)
  2. Creazione di un nuovo utente, nuovo checkout, verifica author su suoi nuovi files e revisioni di file esistenti.
Checkout del repository

Se non lo abbiamo fatto, verifichiamo che Pageant sia attivo e la chiave del nostro utente di Subversion sia caricata. 
Da sistema operativo Windows, utilizziamo TortoiseSvn (basta clickare con il tasto destro sul desktop, o su qualsiasi finestra di Explorer (il file manager). Posizioniamoci quindi in una cartella idonea, selezioniamo la voce checkout, e dalla casella combo scegliamo il repository appena creato e a cui abbiamo provato a connetterci nella Parte 4.

La URL, nell'ambiente di prova, è: 

svn+ssh://svn01.subversion.homeserver/Repo01


Se il checkout è andato a buon fine, dovremmo ottenere un risultato simile a questo:


Il repository è ancora vuoto!
Proviamo quindi a creare un nuovo file, un semplice file di testo con Notepad. Scriviamo qualcsa e salviamo.
Nella finestra di Explorer il file appare con una iconcina, che suggerisce che il file è nuovo.


Tramite le funzioni "add" e "commit" eseguiamo le operazioni di aggiunta e salvataggio del file nel repository Subversion. Comodo!






Se ora verifichiamo la cronologia del file appena creato, potremo osservare che esso ha, come author "svn01", cioè il nome che abbiamo messo nella nostra riga sul file ~/.ssh/authorized_keys. Non c'è nessun riferimento al vero utente linux, che rimane sempre "subversion".


A questo punto non ci resta che verificare la bontà della nostra configurazione di Subversion, provvedendo ad aggiungere un nuovo utente. Dimostreremo che
  1. Non abbiamo bisogno di un nuovo utente linux
  2. Non dovremo avvalerci, per esempio, di apache per l'autenticazione. I nostri requisiti di sistema rimangono molto bassi.
Per creare un nuovo utente di Subversion, apriamo il nostro fedele PuTTYgen e creiamo una nuova chiave, esattamente come abbiamo fatto in precedenza. Come key comment utilizziamo svn02 (per esempio). Utilizziamo anche una nuova password, e salviamo la chiave in un opportuna cartella.



Apriamo Pageant e carichiamo la nuova chiave, esattamente come fatto in precedenza.


Dalla finestra di PuTTYgen, copiamo la chiave pubblica selezionandola e premendo CTRL-C.
Apriamo una sessione amministrativa al nostro subversion (subversion@homeserver nel nostro ambiente) e andiamo a modificare il file ~/.ssh/authorized_keys.



Salviamo il files (ESC e poi :wq). Sul server abbiamo finito!
Apriamo PuTTY per creare la sessione dedicata a svn02. Ci basta caricare quella di svn01 (svn01.subversion.homeserver) e salvarla in svn02.subversion.homeserver, e apportare una semplice modifica: in Connection -> SSH -> Auth dobbiamo modificare la chiave privata da associare alla sessione e selezionare quella appena creata. Non dimentichiamoci di salvare la sessione.


Andiamo su una nuova cartella, idonea a ricevere il repository (caricato però dall'utente svn02), e iniziamo l'operazione di check-out.


Ricordiamoci di modificare la URL del repository sostituendo svn01 con svn02: la URL diventa:
svn+ssh://svn02.subversion.homeserver/Repo01


Ci aspettiamo questo risultato:


A questo punto possiamo creare un nuovo file o modificare l'esistente per poi aggiungerlo e committare, come abbiamo fatto in precedenza. Scegliamo di fare un altro file che chiameremo SecondoFile.txt. Una volta aggiunto e committato il file, dovremmo avere una finestra simile a questa:


Riapriamo la finestra di browse del repository, e osserviamo che i due file hanno autori diversi.



Come promesso, abbiamo creato un nuovo utente Subversion e non abbiamo creato un utente Linux, né abbiamo avuto bisogno della password di root.

Nella prossima parte proviamo a utilizzare Eclipse...