Git szerver telepítés Synology NAS-on

By | 2013. január 11.

Az otthoni munkáim során is szükség van verziókövető rendszerre a fejlesztéseknél. A legkézenfekvőbb megoldás, hogy a már amúgy is használatban lévő NAS-omra telepítek egyet, hiszen azt bármelyik gépről elérem, a RAID miatt biztonságban vannak a dolgaim rajta és amúgy is… miért a lokális gépemre telepíteném?!

A következő kérdés ugyebár az, hogy mégis melyik rendszert használjam? A két legmarkánsabb képviselője a mezőnynek a Git és az SVN. Tapasztalatok végett mindkettőt telepítettem, de most egyelőre csak az előbbiről írok. A munkahelyemen is ezt használjuk, tökéletesen meg vagyunk vele elégedve. Teszi a dolgát, jól kezelhetően a branch-ek, jól működik a merge-ölés, stb. Mivel a cégnél Windows-os környezetben dolgozunk, így a Git előtt TFS-t használtunk, de az maga volt a fájdalom. Azóta amióta átmigráltuk az összes project-ünket, senki sem nyavajog (annyit). :)

No de lássuk is akkor a telepítést. Előre szólok, hogy nagyon egyszerű lesz! :) Előfeltétel, hogy a NAS-unk okosítva legyen, tehát legyen rajta a Bootstrap és az ipkg. Ha ez még nincsen meg, akkor itt a how-to hozzá. Én egy DS411-es kütyün dolgozom (DSM 3.2 van rajta, bár ez jelenleg nem releváns).

Lépjünk be SSH-n a NAS-ra root felhasználóként vagy ha van normál felhasználó nevünk, akkor azzal. Abban az esetben, ha normál felhasználóval léptünk be, váltsuk át a környezetet root-ra:

sudo su -

Git felhasználó létrehozása

Első lépésként létre kell hoznunk egy felhasználót, amivel a Git szervert fogjuk tudni használni. Ez kétféleképpen történhet. Vagy a grafikus admin felületen hozzuk létre vagy konzolról. Én most csak a konzolos verziót írom le, mivel a további lépések is mind itt fognak történni. A grafikus felület next-next-finish procedúrája amúgy sem nagy kihívás. ;)

Tehát hozzuk létre a felhasználót, melynek a neve git és nincsen jelszava:

synouser -add git '' "GIT user" 0 '' 0

Ez után az /etc/passwd file-t kell szerkeszteni (a user UID-je a rendszertől függ, hogy mit adott neki. A soron következő érték.), hogy a felhasználóhoz tartozó shell a /bin/sh legyen:

git:x:1026:100::/volume1/home/git:/bin/sh

Az SSH környezet beállítása Git használthoz

Az /etc/ssh/sshd_config file szerkesztése következik. Ahhoz, hogy publikus RSA kulcsos autentikációt tudjunk használni a kliens oldalról való bejelentkezéshez, a következő sorok szükségesek a file-ban:

PubkeyAuthentication yes
AuthorizedKeysFile  .ssh/authorized_keys

Ahhoz, hogy jelszó nélkül is képes legyen bejelentkezni SSH-n, ez a sor szükséges:

PermitEmptyPasswords yes

Végül pedig a környezeti beállításokat is felvehesse:

PermitUserEnvironment yes

Bizonyosodjunk meg, hogy a fenti négy sor szerepel a file-ban, majd mentsük el és lépjünk ki.

Ezek után indítsuk újra az SSH service-ünket:

/usr/syno/etc/rc.d/S95sshd.sh restart

Majd lépjünk vissza. Abban az esetben, ha elérhetetlenné válik a NAS SSH-n, nem kell pánikba esni! :) Sokszor előfordul, hogy a restart funkció csak a stop részt valósítja meg, de a startot már nem hajtja végre. Ebben az esetben a grafikus admin felületen engedélyezzük újra (Control Panel – Terminal – Enable SSH service).

 Git szerver telepítése

Csak a biztonság kedvéért futtasunk le egy ipkg frissítést

ipkg update
ipkg upgrade

Ezután megtörténhet a tényleges install

ipkg install git

Készítsünk el pár symbolic link-et a git állományokra:

cd /usr/bin
ln -s /opt/bin/git* .

Amennyiben ezt az utóbbi lépést nem tennénk meg, akkor a repo klónozásakor az alábbi hibaüzenetet kapnánk:

sh: git-upload-pack: not found
fatal: The remote end hung up unexpectedly

Git repository létrehozása

Lépjünk be egy másik konzolon a NAS-ra, de most az új, git nevű user-rel (Jelszó ugyebár nem kell, hiszen nincs). Hozzuk létre magát a Git repo-k főkönyvtárát, illetve benne egy test nevű első repo-t.

mkdir -p /volume1/git/test

Lépjünk bele és készítsük el az üres, csupasz repo-t:

cd /volume1/git/test
git init --bare

A következő üzenetet kell visszakapnunk:

[Initialized empty Git repository in /volume1/git/test/]

Ha ez megtörtént, akkor gratulálok, készen vagyunk a szerver telepítésével! :) A következő post a kliens oldali beállításokról fog szólni. Az is érdekel? Kattints!

Kliens beállítása

Hasonló cikkek

MucsaPlex, avagy Plex szerver RaspberryPi 3-on Csak a kíváncsiság kedvéért összeraktam egy rPi3-as Plex szervert, mivel kíváncsi voltam, hogy hogyan muzsikál egy ilyen jószág a rettegett erőforrási...
Git repository költöztetés Néha előfordul olyan eset, hogy egy komplett repot át kell költöztetni egy másik Git szerverre. Ilyenkor jön a fejvakarás, hogy nehogy elszúrjunk vala...
Hogyan csináljunk videót képekből Windowson Adott egy könyvtár, amiben van több száz alkönyvtár, amelyek mindegyikében van több ezer jpg kép. Ezekből kellene videót gyártani... automatizáltan......
A mindenevő kis doboz: WD TV Live Megvan már a NAS, van min tárolni a matériát. Most már kellene valami megoldás, amivel filmeket lehet nézni és nem a DVD-re kiírt cuccokról beszélek. ...