Curs 12 Servicii Pentru Dezvoltatori

Curs 12 Servicii Pentru Dezvoltatori

Curs 12 Servicii pentru dezvoltatori Gestiunea Serviciilor de Ret, ea 12 ianuarie 2012 GSR Curs 12, Servicii pentru dezvoltatori 1/35 Moto Before software can be reusable it first has to be usable. Ralph Johnson GSR Curs 12, Servicii pentru dezvoltatori 2/35 Git Servicii Git Redmine ^Incheiere ^Intreb˘ari GSR Curs 12, Servicii pentru dezvoltatori 3/35 Outline Git Servicii Git Redmine ^Incheiere ^Intreb˘ari GSR Curs 12, Servicii pentru dezvoltatori 4/35 Sisteme de versioning I version control systems/revision control systems I source code management I repository, clone/checkout/working copy, commit, HEAD, branch, sincronizare, conflict, revert, revision/version, merge, tag, trunk/mainline I centralizate: CVS, SVN, Perforce I distribuite: Darcs, Monotone, Git, Mercurial, Bazaar I repository-ul identificat prin URL I svn+ssh://[email protected]/super-project I http://github.com/vmchecker/vmchecker.git GSR Curs 12, Servicii pentru dezvoltatori 5/35 Git I SCM distribuit I creat de Linus Torvalds I folosit ^ınproiecte mari (Linux, Gnome, KDE, Perl, Ruby on Rails, Android etc.) I apt-get install git (git-core pe sisteme mai vechi) I clientul { git I serverul/daemon-ul { git-daemon I URL-uri I local { /var/cache/git/test-repo.git I SSH { [email protected]:benga.git I HTTP { http://home.com/benga.git I Git { git://home.com/benga.git GSR Curs 12, Servicii pentru dezvoltatori 6/35 Clientul Git I clonare { git clone URL I configurare { git config --global user.name "Gogu Sclipici" I commit { git add ., git commit -m 'add pretty printer' I actualizare c˘atreserver { git push origin master I actualizare de la server { git pull, git pull --rebase I reconfigurare URL I git remote rm origin I git remote add origin URL GSR Curs 12, Servicii pentru dezvoltatori 7/35 Administrare repository I creare repository (eventual ^ın /var/cache/git/) I mkdir repo.git && cd repo.git I git init --bare I populare repository (eventual pe alt sistem) I mkdir local.git && cd local.git I git init . I touch test.txt && git add . I git commit -m 'initial commit' I git remote add origin [email protected]:repo.git I git push origin master GSR Curs 12, Servicii pentru dezvoltatori 8/35 Git peste SSH I configurare ^ınhome-ul unui utilizator I cd ∼student I cd repos; mkdir project.git; cd project.git; git init --bare I URL { [email protected]:repos/project.git I populare repository GSR Curs 12, Servicii pentru dezvoltatori 9/35 git-daemon I daemon ce serves, te repository-uri Git (portul 9418) I apt-get install git-daemon-run I foloses, te runit, sv { interact, iune cu servicii I sv start git-daemon, sv stop git-daemon I configurat ^ın /etc/sv/git-daemon/run I log-uri ^ın /var/log/git-daemon/ I pentru a exporta un repository, trebuie s˘acont, in˘afis, ierul git-daemon-export-ok I implicit configurat doar read-only GSR Curs 12, Servicii pentru dezvoltatori 10/35 Git peste HTTP I HTTP { dumb protocol I fiecare repository trebuie s˘aactiveze hook-ul de post-update I git update-server-info I configurare Apache Alias /git /var/cache/git/ I git clone http://gamma.org/git/rango-repo.git GSR Curs 12, Servicii pentru dezvoltatori 11/35 Git peste HTTP { write enable I pentru a se putea scrie e nevoie de I suport DAV (a2enmod dav_fs) I utilizatorul aferent serverului web (www-data) s˘aaib˘adrept de scriere I configurat, ie naiv˘a Alias /git /var/cache/git/ <Directory /var/cache/git/> DAV On </Directory> GSR Curs 12, Servicii pentru dezvoltatori 12/35 Git peste HTTP { write enable (2) I configurat, ie strict˘a Alias /git /var/cache/git/ <Directory /var/cache/git/> DAV On AuthType Basic AuthName "Git" AuthUserFile /etc/apache2/git-repos.htpasswd Require valid-user </Directory> I configurat, ie \comun˘a" Alias /git /var/cache/git/ <Directory /var/cache/git/> DAV On AuthType Basic AuthName "Git" AuthUserFile /etc/apache2/git-repos.htpasswd <LimitExcept GET HEAD PROPFIND OPTIONS REPORT> Require valid-user </LimitExcept> </Directory> I configurat, ie non-DAV pentru HTTP (read-only) + configurat, ie strict˘apentru HTTPS GSR Curs 12, Servicii pentru dezvoltatori 13/35 Outline Git Servicii Git Redmine ^Incheiere ^Intreb˘ari GSR Curs 12, Servicii pentru dezvoltatori 14/35 SSH custom commands I folosirea opt, iunii command ^ınfat, a cheii publice SSH (directorul ∼/.ssh/authorized_keys) I folosit de Gitosis sau Gitolite I command="/usr/share/gitolite/gl-auth-command razvan.deaconescu" GSR Curs 12, Servicii pentru dezvoltatori 15/35 Gitolite I \access control layer on top of Git" I gestiune facil˘a/centralizat˘aa mai multor repository-uri Git I acces pe baz˘ade chei SSH I autorizare { ce utilizator/cheie public˘aare acces la ce repository I permite controlul accesului la nivel de branch (Gitosis nu ofer˘a aceste facilit˘at, i) GSR Curs 12, Servicii pentru dezvoltatori 16/35 Configurare init, ial˘aa Gitolite I apt-get install gitolite I creeaz˘as, i configureaz˘autilizatorul gitolite ixlabs:~# ls ~gitolite projects.list repositories I gl-setup /path/to/ssh/public/key.pub { \administratorul" Gitolite I git clone [email protected]:gitolite-admin I repository-ul administrativ .../admin/ixlabs-gitolite-admin$ tree . |-- conf | `-- gitolite.conf `-- keydir |-- razvan.deaconescu.pub `-- tavi.purdila.pub GSR Curs 12, Servicii pentru dezvoltatori 17/35 Configurare repository-uri ^ınGitolite .../admin/ixlabs-gitolite-admin$ cat conf/gitolite.conf repo gitolite-admin RW+ = razvan.deaconescu @ixlabs = inspectos vmgen sshsync lxc valgrind robocheck @them = razvan.deaconescu tavi.purdila repo @ixlabs RW+ = @them R = @all GSR Curs 12, Servicii pentru dezvoltatori 18/35 Configurare drepturi ^ınGitolite I R { read (poate clona) I W { write (poate face push) I + { rewind (poate reseta branch-ul) I configur˘arila nivel de branch GSR Curs 12, Servicii pentru dezvoltatori 19/35 Gitweb I acces vizual web la repository-uri I apt-get install gitweb I configurat, ie implicit˘a^ın /etc/apache2/conf.d/gitweb I repository-urile trebuie s˘afie accesibile serverului web I configurare ^ın /etc/gitweb.conf I @git_base_url_list I documentat, ie ^ın /usr/share/doc/gitweb/ GSR Curs 12, Servicii pentru dezvoltatori 20/35 Configurare repository-uri pentru a folosi Gitweb I accesibile serverului web I editare fis, ier description din repository I ad˘augare configurare de ownership ^ınfis, ierul config gitolite@ixlabs:~/repositories$ cat lxc.git/config [core] repositoryformatversion = 0 filemode = true bare = true [gitweb] owner = IxLabs GSR Curs 12, Servicii pentru dezvoltatori 21/35 Outline Git Servicii Git Redmine ^Incheiere ^Intreb˘ari GSR Curs 12, Servicii pentru dezvoltatori 22/35 Aplicat, ii web pentru management software I sisteme pentru coordonarea/gestiunea proiectelor software I integrarea mai multor funct, ionalit˘at, i I wiki I issue/request/ticket tracker I repository browser I timeline/roadmap I feed-uri RSS I controlul accesului I hosted: Sourceforge, Google Code, Assembla, GNU Savannah, BerliOS I client-server: Trac, Redmine, JIRA, Launchpad GSR Curs 12, Servicii pentru dezvoltatori 23/35 Redmine I influent, at de Trac I Ruby on Rails I cross-platform & cross-database (MySQL, PGSQL, SQLite) I suport pentru SVN, Git, Mercurial, Bazaar, Darcs I suport pentru mai multe proiecte ^ınaceeas, i instalare I roluri pentru membrii proiectului I calendar, diagram˘aGantt I forumuri, s, tiri I extensibil prin module GSR Curs 12, Servicii pentru dezvoltatori 24/35 Instalare Redmine I apt-get install redmine { pe versiunile mai noi de Ubuntu s, i Debian I /usr/share/redmine/ I dpkg-reconfigure redmine { pentru ad˘augarea unei noi instat, e (implicit default) sau configurare I /etc/redmine/*/ { un director aferent unui proiect I database.yml I email.yml I session.yml { generat automat I fis, iere /var/lib/redmine/*/files/ I log-uri /var/log/redmine/*/*.log I pentru SQLite /var/lib/dbconfig-common/sqlite3/redmine/instances/ I documentat, ie ^ın /usr/share/doc/redmine/ GSR Curs 12, Servicii pentru dezvoltatori 25/35 Redmine + mongrel cluster I apt-get install mongrel-cluster I /etc/mongrel_cluster <Proxy balancer://mongrel_cluster> Order allow,deny Allow from all BalancerMember http://127.0.0.1:8000 BalancerMember http://127.0.0.1:8001 BalancerMember http://127.0.0.1:8002 </Proxy> <Location /redmine> RewriteEngine On RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ balancer://mongrel_cluster%{REQUEST_URI} [P,QSA,L] </Location> GSR Curs 12, Servicii pentru dezvoltatori 26/35 Redmine + mod passenger I a2enmod passenger RailsEnv production SetEnv X_DEBIAN_SITEID "projects.rosedu.org" Alias "/plugin_assets/" /var/cache/redmine/default/plugin_assets/ DocumentRoot /usr/share/redmine/public <Directory "/usr/share/redmine/public"> Order allow,deny Allow from all </Directory> GSR Curs 12, Servicii pentru dezvoltatori 27/35 Redmine + FCGID I a2enmod fcgid I /etc/apache2/mods-enabled/fcgid.conf { SocketPath DefaultInitEnv X_DEBIAN_SITEID "default" DocumentRoot /usr/share/redmine/public <Directory "/usr/share/redmine/public"> Order allow,deny Allow from all </Directory> GSR Curs 12, Servicii pentru dezvoltatori 28/35 Pluginuri ^ınRedmine I http://www.redmine.org/plugins I copiere + dezarhivare sau clonare ^ın $fREDMINE_ROOTg/vendor/plugin I trebuie repornit Redmine I vizibile ^ınmeniul de Administrare, opt, iunea Plugins GSR Curs 12, Servicii pentru dezvoltatori 29/35 Administrare Redmine I gestiune utilizatori I permitere utilizatori ^ınregistrat, i I creare utilizatori I autentificare prin LDAP I ad˘augare utilizatori la proiecte I gestiune proiecte I creare proiecte I componente/module folosite (wiki, tracker, Gantt, boards) I configurare repository

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    35 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us