Domači Git repozitorij - na Synology NAS
Predpriprave:
- na lokalni računalnik je potrebno namestiti Git
- na NAS je potrebno namestiti Bootstrap, ta je odvisen od procesorja na NAS, zato je potrebno poznati tip procesorja
- malce znanja Vim
- postopek je pripravljen za *nix sisteme (mac, linux), za Windows okolja si ga prilagodite sami
- postopek traja kar nekaj časa, zato tega ne počnite, ko se vam mudi
Konvencije:
- vsi ukazi, ki se začnejo s ">" se izvajajo na NAS
- vsi ukazi, ki se začnejo z "$" se izvajajo na lokalnem računalniku
Namestitev Bootstrap in Git:
- Najprej na NAS vklopimo SSH v nadzorni plošči NAS (applet Terminal),
- rebootnemo NAS,
- prijavimo se na NAS preko SSH z uporabnikom root (geslo je enako kot ga ima admin),
$ ssh root@diskstation.local - zamenjamo trenutni direktorij v @tmp
> cd /volume1/@tmp - naložimo Bootstrap za procesor v NAS z ukazom wget, (POZOR! Pomembno je, da izberemo pravi procesor sicer lahko okvarimo NAS. Naslednji primer je za DS411slim.)
> wget http://wizjos.endofinternet.net/synology/archief/syno-mvkw-bootstrap_1.2-7_arm-ds111.xsh - popravimo pravice na skripti,
> chmod +x syno-mvkw-bootstrap_1.2-7_arm-ds111.xsh - zaženemo skripto,
> sh syno-mvkw-bootstrap_1.2-7_arm-ds111.xsh - odstranimo skripto (saj je ne potrebujemo več),
> rm syno-mvkw-bootstrap_1.2-7_arm-ds111.xsh - editiramo .profile root uporabnika in obkomentiramo vrstice s $PATH
> vi ~/.profile - vpišemo # (lojtro) pred vrstici:
PATH=....
export PATH - restartamo NAS,
- ponovno se prijavimo na NAS z root uporabnikom,
$ ssh root@diskstation.local - posodobimo ipkg,
> ipkg update - namestimo nekatera manjkajoča orodja,
> ipkg install coreutils - in trenutek na katerega smo čakali: Namestimo Git,
> ipkg install git - naredimo symlinke v /usr/bin mapi,
> ln -s /opt/bin/git* /usr/bin - s tem je Git nameščen in pripravljen za uporabo.
POZOR! Po namestitvi coreutils se začnejo določeni ukazi obnašati čudno. Ukaz su zahteva geslo, ki ni enako geslu uporabnika admin, kot je opisano v navodilih. Po dolgem iskanju sem odkril, da je privzeto geslo root uporabnika na Synology NAS "synopass" (brez navednic) in da privzet ukaz su (in tudi sshd daemon) zaobide to nastavitev in uporabi geslo uporabnika admin. Da povrnemo delovanje su na star način je dovolj, da odstranimo symlink na coreutils-su z ukazom:
> rm /opt/bin/su
Dopuščam sicer možnost, da se je to pojavilo le pri meni, ker sem precej eksperimentiral z modifikacijami ~/.profile in sam nimam obkomentiranega PATH, saj ta na koncu vsebuje tudi /opt/bin in /opt/sbin.
Kreiranje git uporabnika na NAS
Za pravino delovanje Gitolite-a je potrebno imeti uporabnika preko katerega se izvajajo git akcije (t.i. hosted user). Uporabnika enostavno kreiramo v nadzorni plošči na NAS.
- Prijavimo se na NAS z uporabnikom admin preko web vmesnika,
- v nadzorni plošči zaženemo applet User,
- kliknemo gumb "Create",
- vpišemo naslednje podatke:
username: git
description: Git hosting user - v koraku, kjer določamo skupine (groups) obkljukamo samo "Users",
- v koraku dovoljenj do map v skupni rabi obkljukamo "No access" na vseh mapah,
- ignoriramo nastavitve v quota,
- v koraku dovoljen aplikacij odstranimo vse kljukice,
- pregledamo nastavitve in shranimo uporabnika.
Nadaljujemo v ukazni vrstici, ki je medtem že postala prijazna.
Omogočimo shell dostop za uporabnika git
Privzeto uporabniki kreirani preko web nadzorne plošče nimajo vklopljenega shell dostopa. K sreči je sprememba tega zelo enostavna:
- prijavimo se na NAS z uporabnikom root,
$ ssh root@diskstation.local - editiramo datoteko /etc/passwd
> vi /etc/passwd - zamenjamo /sbin/nologin z /bin/ash pri uporabniku git
# git:x:1036:100:git hosting user:/var/services/homes/git:/bin/ash
Urejanje profila git hosting uporabnika
- Prijavimo se na NAS,
$ ssh root@diskstation.local - zamenjamo uporabnika
> su - git - kreiramo datoteko .profile
> vi ~/.profile - vpišemo naslednje vrstice:
PATH=bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin
export PATH
HOME=/volume1/homes/git
export HOME - uveljavimo nov profil,
> source .profile - ustvarimo mapo bin.
> mkdir $HOME/bin
Zdaj se nam že svetlika na koncu tunela...
Kreiranje RSA ključev za SSH
Če že imate par ključev, ki NI uporabljen za avtentikacijo git, lahko preskočite naslednje korake.
POMEMBNO! Te korake izvedete na lokalnem računalniku in ne na NAS.
Opomba: V kolikor že uporabljate ključe za git hosting uporabnika, je potrebno kreirati dva para ključev: enega za gitolite administracijo in enega za normalno uporabo. V tem primeru je potrebno ustvariti SSH host aliase, da vsaka prijava uporabi ustrezen ključ.
- Kreiranje para ključev RSA,
$ ssh-keygen -t rsa - kopiranje ključa na NAS
$ scp ~/.ssh/id_rsa.pub git@diskstation.local:gituserkey.pub
Odlično! Ključ (javni) je sedaj na NAS.
Nameščanje in konfiguriranje Gitolite
Nikakor ne nameščajet Gitolite-a kot root uporabnik! V kolikor ste sledili zgornjim ukazom ne bi smeli imeti nobenih težav z nameščanjem Gitolite z uporabnikom git.
- Preverimo ali smo prijavljeni kot git uporabnik,
> whoami - če se ne izpiše git, zamenjamo uporabnika,
> su - git - kloniramo Gitolite repozitorij (z uporabnikom git!!),
> git clone git://github.com/sitaramc/gitolite - poženemo instalacijo Gitolite (kot git uporabnik!!),
> /volume1/homes/git/gitolite/install -ln - konfiguriramo Gitolite s ključem, ki smo ga prenesli v enem od prejšnjih korakov,
> gitolite setup -pk $HOME/gituserkey.pub
V zadnjem koraku se nam lahko pojavi nekaj opozoril, ki jih lahko zanemarimo.
Tako! Gitolite je nameščen na NAS. Zakaj ga ne bi kar uporabili? V resnici je potrebno ustvariti uporabnike in kreirati repozitorije. To storimo s kloniranjem gitolite-admin repozitorija.
Kloniranje gitolite-admin repozitorija
- Kloniramo repozitorij na lokalni računalnik,
$ git clone git@diskstation.local:gitolite-admin
In to je to! Zasluženo si privoščite najljubšo pijačo in malce oddiha, nato se lotite administracije gitolite namestitve.
Dodatne informacije najdete na naslednjih straneh:
http://git-scm.com
http://git-scm.com/book
https://github.com/sitaramc/gitolite
Za izdelavo zgornjega navodila sem si sposodil oz. uporabil ta navodila.
rabim pomoš pri namestitvi opensource zadeve na NAS 2015+. Zadeva rabi JAVO TOMCAT SQL. Navodila so na voljo na žalost pa se na LINUX ne spoznam.