SVN varasto konfiguraatioiden tallentamiseen

Ajattelin vuosien jälkeen alkaa oikeasti säätämään näppisoikopolkuja ja hiiren eri nappeja sekä näppiksen pikanappeja. Kyseisten säädösten jälkeen minua harmittaisi kuin oravaa lumihangessa jäätynyt käpy kädessä jos menettäisin koneen konfiguraatiot jonnekin tai jos en voisi kopioida niitä koneiden välillä. Ajatukseni on opetella nämä oikopolut selkärankaan ja sitä myötä tehostaa koneeni käyttöä melkoisesti.

Paras tapa säilyttää erilaisia konfiguraatiotiedostoja täytyy olla jonkinlainen versionhallinta järjestelmä. Töiden puolesta olen jounut koskemaan SVN järjestelmään ja todennut että se kelpaa. Näinollen aloin suunnittelemaan SVN varaston virittämistä jollekin palvelimistani. Päivän pohtimisen jälkeen päädyin Home Serveriini. Löysin näet nätin visuaalisen SVN ohjelmiston Windowsille. En kerro tässä miten SVN:ää käytetään tai mitä tulee tehdä muille koneille jotta tämä toimii. Kerron kuinka asetetaan palvelimen pää kuntoon, aina tuota kriittistä turvakopiointia myöten.

Ohjelman asennus on hyvin suoravirtainen ja vain muutama asia pitää konfiguroida.image

Asennushakemisto on ehdottomasti D-asemalla oleva Program Files kansio, jotta C-asema ei täyty tarpeettomasti. Samoin Repositories –hakemisto menee D-asemalle. Palvelimen portti pitää vaihtaa 443:sta 8443:n jolloin se ei ole Home Serverin oman web palvelun päällä. Päätin käyttää SVN:n omaa käyttäjätunnistusta. Kenelläkään muulla Home Serverini käyttäjällä ei ole tarvetta päästä varastoihini käsiksi.

Siis:

Location: D:\Program files\VisualSVN Server
Repositories: D:\Repositories
Server Port: 8443
Use Subversion authentication

Luonnollisesti tämä on näkyvissä vain sisäverkossani. Kyseisiin konfiguraatoihin ei tarvitse päästä maailmalta käsin käsiksi. Voin ottaa VPN yhteyden kotiverkkooni jos tarvin konfiguraatio tiedostoja johonkin koneistani.

Varastojen rakentaminen onkin hyvin nopeaa ja näppärää tällä ohjelma. Klikkaamalla hiiren oikeaa nappia “Repositories” kohdan päällä voi luoda uuden varaston. Tämän jälkeen tein Nightmarelle “SVN configurations” – kansion ja yhdistin sen tähän varastoon.  Päädyin tekemään tämänlaisen rakenteen konfiguraatioilleni:
image

Nyt kun konfiguraatiot menevät hienosti talteen Home Serverille tulee kyseeseen se äärimmäisen tärkeä turvakopiointi. Ensitöikseen pitää luoda uusi käyttäjä! Tästä käyttäjästä tulee Home Serverini yleinen backup-käyttäjä jolla lukuoikeuksia moneen paikkaan, mutta ei juurikaan kirjoitusoikeuksia. Seuraten utorrent-käyttäjän asettamista teemme backup käyttäjän sopivilla oikeuksilla.
Oikeudet ovat
– täydet oikeudet kotihakemistoonsa
– ei etäkirjautumisoikeuksia, eikä toistaiseksi mitään lukuoikeuksia
– Deny access to this computer from the network image
– Deny log on as a service
– Deny log on locally
– Logon as a batch job
(tarvitaan, jotta voidaan ajaa ajoitettuja tehtäviä)

Sitten mennään käyttäjien hallitaan (control panel – administrative tasks – computer management – local users – users) ja poistetaan kaikki ryhmät paitsi RW-jotain ryhmä, joka on se ryhmä jolla on oikeus backup-käyttäjän kotihakemistoon.

Tämän jälkeen pitää antaa oikeudet lukea scripts sekä repository–hakemistoa. Resurssienhallinta käyntiin, kyseisii hakemistoihin ja Security –taskusta lisätään read & execute, List Folder contents sekä read oikeudet.

imageJotta minä näen että turvakopiointi toimii, backup käyttäjän hakemistoon syytä antaa itselle lukuoikeudet Home Serverin consolin kautta. Huomioi että oikeudet ovat vain lukuoikeudet, jotta ei itse vahingossa sössitä turvakopioita.

Nyt kun pohjat ovat kunnossa tarvii tehdä enää itse turvakopio! Tähän tulee hätiin luonnollisesti vbscript Smile.  Jotta SVN turvakopioini menee myös ulkopuolelle päätin että turvakopio tehdään oman käyttäjäni kotihakemistoon. Näinollen nopeasti tehty turvakopiointiskripti näyttää tältä. Huomioi että skripti ei tee logitusta, eikä siedä virheitä. Kyseessä on tosiaan nopea versio skriptistä.

' ===========================================================================================
'
' Script Information
'
' Title: SVN backup
' Author: Juha Leivo
' Version: 1.0
' - 1.0 - Lists contents of the repository directory and copies repositories to safety
' - requires that the destination directory exists.
'
' ===========================================================================================
svnadmin = """" & "d:\Program Files\VisualSVN Server\bin\svnadmin.exe" & """" & " hotcopy "
destination = "\\homeserver\users\backup\SVN-backup"
rootDir = "D:\Local databases\Repositories"
' ===========================================================================================
' The script, don't modify
'Prepare needed objects
Set objShell = CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(rootDir)
Set colSubfolders = objFolder.Subfolders
For Each objSubfolder in colSubfolders
 runcode = svnadmin & """" & rootDir & objSubfolder.Name & """" & " " & destination & objSubfolder.Name
 objShell.Run runcode,1
Next

Tämä sijoitetaan serverin scripts –hakemistoon (D-asemalla) ja pistetään sunnuntain ajoitettuihin tehtäviin seuraavasti:

Control Panel – Scheduled tasks – Add scheduled task.
Ohjelma jota halutaa ajaa on c:\windows\system32\wscript.exe
Nimeksi laitan SVN backup ja aikaväliksi Weekly, 03:50 joka sunnuntai
Käyttäjänä käytetään backup-käyttäjää.
Täppä taas “open advanced properties for this task when I click Finish
Ja esiin tulevaan ikkunaan Run riville wscript.exe jälkeen “d:\scripts\svn_backup.vbs

Leave a Reply