Spletna stran uporablja piškotke za boljšo uporabniško izkušnjo in spremljanje statistike obiskov (Google Analytics).
Z nadaljno uporabo spletne strani ali klikom na "Strinjam se", se strinjate z uporabo piškotkov.
Piškotki in njihova uporaba

Domači Git repozitorij - na Synology NAS

Objavil Blaž Kristan 5.3.2013 @ 07:53

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:

  1. Najprej na NAS vklopimo SSH v nadzorni plošči NAS (applet Terminal),
  2. rebootnemo NAS,
  3. prijavimo se na NAS preko SSH z uporabnikom root (geslo je enako kot ga ima admin),
    $ ssh root@diskstation.local
  4. zamenjamo trenutni direktorij v @tmp
    > cd /volume1/@tmp
  5. 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
  6. popravimo pravice na skripti,
    > chmod +x syno-mvkw-bootstrap_1.2-7_arm-ds111.xsh
  7. zaženemo skripto,
    > sh syno-mvkw-bootstrap_1.2-7_arm-ds111.xsh
  8. odstranimo skripto (saj je ne potrebujemo več),
    > rm syno-mvkw-bootstrap_1.2-7_arm-ds111.xsh
  9. editiramo .profile root uporabnika in obkomentiramo vrstice s $PATH
    > vi ~/.profile
  10. vpišemo # (lojtro) pred vrstici:
    PATH=....
    export PATH
  11. restartamo NAS,
  12. ponovno se prijavimo na NAS z root uporabnikom,
    $ ssh root@diskstation.local
  13. posodobimo ipkg,
    > ipkg update
  14. namestimo nekatera manjkajoča orodja,
    > ipkg install coreutils
  15. in trenutek na katerega smo čakali: Namestimo Git,
    > ipkg install git
  16. naredimo symlinke v /usr/bin mapi,
    > ln -s /opt/bin/git* /usr/bin
  17. 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.

  1. Prijavimo se na NAS z uporabnikom admin preko web vmesnika,
  2. v nadzorni plošči zaženemo applet User,
  3. kliknemo gumb "Create",
  4. vpišemo naslednje podatke:
    username: git
    description: Git hosting user
  5. v koraku, kjer določamo skupine (groups) obkljukamo samo "Users",
  6. v koraku dovoljenj do map v skupni rabi obkljukamo "No access" na vseh mapah,
  7. ignoriramo nastavitve v quota,
  8. v koraku dovoljen aplikacij odstranimo vse kljukice,
  9. 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:

  1. prijavimo se na NAS z uporabnikom root,
    $ ssh root@diskstation.local
  2. editiramo datoteko /etc/passwd
    > vi /etc/passwd
  3. 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

  1. Prijavimo se na NAS,
    $ ssh root@diskstation.local
  2. zamenjamo uporabnika
    > su - git
  3. kreiramo datoteko .profile
    > vi ~/.profile
  4. 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
  5. uveljavimo nov profil,
    > source .profile
  6. 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č.

  1. Kreiranje para ključev RSA,
    $ ssh-keygen -t rsa
  2. 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.

  1. Preverimo ali smo prijavljeni kot git uporabnik,
    > whoami
  2. če se ne izpiše git, zamenjamo uporabnika,
    > su - git
  3. kloniramo Gitolite repozitorij (z uporabnikom git!!),
    > git clone git://github.com/sitaramc/gitolite
  4. poženemo instalacijo Gitolite (kot git uporabnik!!),
    > /volume1/homes/git/gitolite/install -ln
  5. 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

  1. 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.

Komentarji
aleksander
4.4.2016 @ 10:20

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.

* Komentarje mora odobriti admin.