Gitblit ja Glassfish

Minulla on tunnustus. Olen rakastunut palavasti Git versionhallintaan. Kun kerran koukuttuu kykyyn kloonata ja synkata koodivarastoja eri paikkoihin ja paikoista, ja tottuu ajatukseen siitä ettei olekaan välttämättä vain yhtä keskuspalvelinta jonka saatavuudesta kaikki riippuu, ja tottuu helppouteen millä voi tehdä erilaisia kopioita ja kokeiluja ja haaroja…

Niin, ei ole paluuta takaisin. Etsin sopivaa open source tuotetta git repositoryksi, ja vastaan tuli esim. GitLab ja Gitorious. Valitettavasti molemmissa oli haluamalleni alustalle kamalan hankalat ja monimutkaiset ohjeet, ellei sitten satu valmispaketti osumaan juuri täsmälleen paikalleen. Lisäksi esim: GitLab omasi kovasti riippuvuuksia Rubyyn ja senkin osalta oli aika monimutkaista viilata paikalleen – se halusi käyttää omaa versiotaan eikä serverillä jo olevaa.

Joten Java-kaverina nykäisin tietenkin Java-pohjaisen ratkaisun, jossa on enemmän itselle tuttuja osia ja riippuvuuksia. Alustaksi Debian Linux + Glassfish serveri.

GitBlit asennus oli sikäli helppoa että mars osoitteeseen http://gitblit.com/# – lataa .war – pura se haluttuun paikkaan, ja asenna lasikalaan.

asadmin deploy /opt/gitblit-folder

Ja asennettu. Toimii heti samantien heittämällä, mutta toki sitä voi ja kannattaa säätää – esim. muuttaa oletus admin salasana ja käyttöoikeudet. Muutokset tapahtuvat gitblit WEB-INF/data/gitblit.properties tiedoston kautta, ja kun alkushokista on toivuttu, sieltä saa päälle mm. Active Directory/LDAP tuen – testattu ja toimivaksi havaittu. Toisin sanoen saanet repon syömään salasanoja ja tunnuksia ja ryhmiä mistä vain haluamastasi paikasta.

Tämä ei liene isoimpia ja hienoimpia repoja mutta toimi itselleni, ja lisenssinä suuresti rakastettu Apache License 2.0.

Jos AD säädöt kiinnostavat, tässä vähän ideaa niistä (kannattaa myös tosiaan muutella admin salasanaa, ja säätää repositoryt ja tunnusvarastot muualle kuin soveluskansion alle – niin päivitykset ovat helpompia):

realm.authenticationProviders = ldap
realm.ldap.server = ldap://myldap.mydomain.com
realm.ldap.username = mydomain\\myldapreadaccount
realm.ldap.password = myldapreadpassword
realm.ldap.maintainTeams = false
realm.ldap.accountBase = OU=MyOrg,DC=mydomain,DC=com
realm.ldap.accountPattern = (&(objectClass=person)(sAMAccountName=${username}))

Noilla saa perussetit aikaan. Tietenkin tarvitaan tunnus jolla on oikeudet lueksia AD domainia. Koska tähän tiedostoon talletetaan salasana, muista varmistaa ettei siihen ole lukuoikeuksiakaan muilla kuin glassfish tunnuksella. Tässä mallissa ei rajata käyttäjiä sen enempää mitä accountbase rajaa – eli polku mistä tunnukset löytyy, tässä siis com/mydomain/MyOrg. Tässä mallissa tiimejä hallinnoidaan myös Gitblib hallintanäyttöjen kautta. Parannusoptioita on esim. säätää accountPatternia siten että vain tietyt ryhmät hyväksytään, tai kääntää ldap.maintainTeams päälle ja käyttää ldap ryhmiä gitblit tiimeinä, käyttää suojattuja yhteyksiä kommunikointiin, jne.

 

Advertisements

Vastaa

Täytä tietosi alle tai klikkaa kuvaketta kirjautuaksesi sisään:

WordPress.com-logo

Olet kommentoimassa WordPress.com -tilin nimissä. Log Out / Muuta )

Twitter-kuva

Olet kommentoimassa Twitter -tilin nimissä. Log Out / Muuta )

Facebook-kuva

Olet kommentoimassa Facebook -tilin nimissä. Log Out / Muuta )

Google+ photo

Olet kommentoimassa Google+ -tilin nimissä. Log Out / Muuta )

Muodostetaan yhteyttä palveluun %s