Post honen helburua garapenerako Git errepositorio zerbitzari bat martxan jartzea da. Horretarako Git, OpenSSH, Gitolite eta Gitweb tresnetaz baliatuko gara. Prozesu honetan OpenSSH eta Apache zerbitzariak dagoeneko martxan eta egoki konfiguraturik daudela aurreikusten da. Erabiliko dugun komando multzoa Ubuntu sistema batetara zuzendutakoak dira, beraz aldaketen beharra egon liteke beste linux sistemetara egokitzeko.
Git errepositorioa instalatu
Lehenik eta behin gure ubuntu sisteman Git tresna instalatuko dugu. Horretarako apt-get komandoaz baliatuko gara
1
| sudo apt-get install git-core |
sudo apt-get install git-core
Git erabiltzailea sortu eta konfiguratu
Git tresnarekin lan egingo duen erabiltzailea sortu eta konfiguratzea da hurrengo pausoa. Diseinatutako kautotze prozesuan erabiltzaile ugarirentzako sarbidea aurreikusten da. Lan hori ordea Gitolite tresnaren eskuetan utziko dugu. Erabiltzaile soil honen helburua SSH bidezko kautotze sistema arrunt eta segurua ahalbidetzea da.
1
2
3
4
5
6
7
8
| sudo adduser \
--system \
--shell /bin/bash \
--gecos 'Control de versiones' \
--group \
--disabled-password \
--home /home/git \
git |
sudo adduser \
--system \
--shell /bin/bash \
--gecos 'Control de versiones' \
--group \
--disabled-password \
--home /home/git \
git
hurrengo urratsa erabiltzaileren home direktorioaren baimenak egokitzea izango da
1
| sudo chmod o-rwx /home/git |
sudo chmod o-rwx /home/git
emandako pausoak zuzenak izan direla egiaztatzeko erabiltzailearen kontuan kautotuko gara
SSH sarbidea konfiguratu
Sortu berri dugun git erabiltzaileari SSH bidezko sarbidea gaituko diogu. Horretarako /etc/ssh/sshd_config fitxategian honako lerroa gehitu behar dugu (dagoeneko existitzen bada git testua gehitu besterik ez duzu)
Aldaketa honek git erabiltzailea SSH bidez bere pasahitza erabiliz sisteman kautotzea ahalbidetzen du. Gitolite tresna erabiltzeko ordea gako publiko bidezko kautotzea beharrezkoa da. Horretarako berriz ere sshd_config fitxategia editatu beharra dugu, dagokien lerroei honako balioa esleituz:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys |
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
aldaketak amaitu ostean sshd zerbitzaria berrabiaratuko dugu
1
| sudo service ssh restart |
sudo service ssh restart
Zerbitzaria gako publikoak onartzeko prest dagoen arren, git erabiltzaileari dagozkion konfigurazioak gehitzea ezinbestekoa da. Erabiltzaile bakoitzak baimendutako gako publiko bat baino gehiago izan dezakeenez, azpi-erabiltzaile ugarik pasahitzik partekatu gabe batera lan egiteko aukera izango dute.
Lehenik beharrezko konfigurazio direktorio eta fitxategiak sortuko ditugu
1
2
3
4
5
| sudo mkdir /home/git/.ssh
sudo touch /home/git/.ssh/authorized_keys
sudo chown -R git:git /home/git/.ssh
sudo chmod 700 /home/git/.ssh
sudo chmod 600 /home/git/.ssh/authorized_keys |
sudo mkdir /home/git/.ssh
sudo touch /home/git/.ssh/authorized_keys
sudo chown -R git:git /home/git/.ssh
sudo chmod 700 /home/git/.ssh
sudo chmod 600 /home/git/.ssh/authorized_keys
direktorio edo fitxategi hauek dagoeneko sortuak dauden kasuan edukia txuritu eta baimen egokiak ezarri beharko zaizkie.
Hurrengo pausua RSA gako publiko berri bat sortzea da. Komando honek uneko direktorioan gako publiko eta pribatu parea sortuko du. Kasu honetan erabiltzaile gisara git-admin ezizena erabiliko dugu:
1
| ssh-keygen -t rsa -b 2048 -C "git-admin@[zerbitzari-izena]" |
ssh-keygen -t rsa -b 2048 -C "git-admin@[zerbitzari-izena]"
sortutako fitxategiak honakoak izango dira:
- id_rsa: Erabiltzailearen gako pribatua. Bezero makinatik konexioak egikaritzeko balioko duena (ezinbestekoa da gako hau pribatu mantentzea)
- id_rsa.pub: Erabiltzailearen gako publikoa. Zerbitzarian gordeta egongo den gakoaren zati partekagarria.
Behin gakoa sortuta zati pribatua bezero makinara kopiatuko dugu eta zati publikoa zerbitzarian.
(Kontuan izan pauso hauek ez dutela dagoeneko gako bidezko sarbidea onartzen, horretarako gitolite tresna konfiguratu beharko dugu).
Gitolite tresna
Gitolitek errepositorioen gaineko baimenak gestionatzeko aukera eskaintzen du. Lehen pausoa sisteman instalatzea izango da.
1
| sudo apt-get install gitolite |
sudo apt-get install gitolite
Ondoren Gitolite-ren konfigurazio prozesuari ekingo diogu. Lehenik, baimenen gestiorako administratzaile bat sortuko dugu aurreko pausuan sortutako gako publikoa erabiliz.
1
2
3
4
5
6
7
8
| sudo su git
cd
git clone git://github.com/sitaramc/gitolite
mkdir -p $HOME/bin
gitolite/install -to $HOME/bin
echo "PATH=$HOME/bin:$PATH" > ~/.bashrc
source ~/.bashrc
gitolite setup -pk [sortutako-gako-fitxategia].pub |
sudo su git
cd
git clone git://github.com/sitaramc/gitolite
mkdir -p $HOME/bin
gitolite/install -to $HOME/bin
echo "PATH=$HOME/bin:$PATH" > ~/.bashrc
source ~/.bashrc
gitolite setup -pk [sortutako-gako-fitxategia].pub
Gitweb errepositorio arakatzailea erabili nahi dugunez .gitolite.rc fitxategia editatu eta honako aldaketak egin beharko ditugu:
Dagoeneko, konfigurazio prozesuak repositories izeneko direktorioa sortu du git erabiltzailearen home direktorioan. Bertan gorde eta kudeatu ahalko dira git errepositorio guztiak (administraziokoa barne).
Gitolite tresnak gitolite-admin errepositorioa erabiltzen du baimen kudeaketa egiteko. Hau da, errepositorio hori erabiltzen du konfigurazio fitxategi gisara. Bertan egindako push bakoitzeko, tresnak, egindako aldaketak irakurri eta beharrezko egokitzapenak egikarituko ditu.
Hurrengo pausua beraz, sortutako gako pribatua eta git bezero bat erabiliz administrazio errepositorioa gure makinan klonatzea da. Kontuan izan behar dugu, zerbitzarira konektatzen saiatzen hari garela arazorik suertzatzen bada, aurreko puntuak berrikusi beharko ditugula.
Errepositorioa deskargatuta bi direktorio aurkitu ahalko ditugu bertan:
- conf: Gitoliteren konfigurazio fitxategia gordetzeko balio duena.
- keydir: Erabiltzaileen gakoak gordetzeko balio duen direktorioa (administratzailearen gakoa dagoeneko bertan aurkituko duzu).
conf direktorioan aurkitzen den gitolite.conf fitxategia erabiliko dugu administrazio fitxategi gisara. Bertan egindako aldaketen push bat eginda automatikoki sortuko dira detektatutako erabiltzaile eta errepositorio berriak (erabiltzaile berrien gako publikoak keydir direktorioan gorde beharko dira izen berdineko fitxategietan).
Gitweb arakatzailea instalatu
Azken pausua gure zerbitzariari git errepositorioen web arakatzailea gehitzea da. Horretarako gitweb eta bere pakete laguntzaileak instalatu beharko ditugu.
1
| sudo apt-get install highlight gitweb |
sudo apt-get install highlight gitweb
Ondoren, arakatzailearen konfigurazioa editatuko ditugu errepositorioen kokalekua eta bestelako datuak zehazteko. Horretarako /etc/gitweb.conf fitxategia ireki eta honako sarrerak editatu behar dira:
$projectroot = "/home/git/repositories";
$projects_list = "/home/git/projects.list";
#Azken lerro hau gehitu
$feature{'highlight'}{'default'} = [1]; |
$projectroot = "/home/git/repositories";
$projects_list = "/home/git/projects.list";
#Azken lerro hau gehitu
$feature{'highlight'}{'default'} = [1];
gitweb tresnari errepositorietara atzipena baimentzeko honako komandoak erabiliko ditugu
1
2
3
4
| sudo usermod -a -G git www-data
sudo chmod g+r /home/git/projects.list
sudo chmod -R g+rx /home/git/repositories
sudo service apache2 restart |
sudo usermod -a -G git www-data
sudo chmod g+r /home/git/projects.list
sudo chmod -R g+rx /home/git/repositories
sudo service apache2 restart
Azken pausoa test errepositorioa web arakatzailean publiko egitea da. Horretarako honako aldaketak egingo dizkiogu gitolite.conf fitxategiari (aldaketak indarrean jartzeko, etzazu ahaztu errepositorioaren commit eta push-a egitea).
repo testing
RW+ = @all
R = gitweb |
repo testing
RW+ = @all
R = gitweb
Arakatzailea zuzen konfiguratu dela baieztatzeko zure nabigadorean http://[zure-domeinua]/gitweb helbidera atzitzea besterik ez zaigu falta.