Ciągła integracja

Wstęp

Normalnie żaden projekt informatyczny nie jest budowany przez wydelegowaną osobę, nie miało by to większego sensu, ale chętnie na taki etat bym aplikował. No ale niestety dzisiejsze system ciągłej integracji zabierają naprawdę fajną pracę.

Tak czy inaczej dziś przedstawiam jak uruchomić Jenkins’a, jako że opensource ma się dobrze to wybieram tę wersję. Oczywiście nie narzucam wybieranie tego konkretnego rozwiązania.  Równie dobrze możesz wybrać Travis’a, TeamCity, Hudson’a czy którykolwiek z systemów jaki uważasz. Ja wybieram Jenkins’a ponieważ każda firma z którą pracowałem miała go na pokładzie.

Zatem zacznijmy od początku, czyli Java:

  1. Java Pierwszym krokiem będzie dodanie repozytorium do naszego Ubuntu i pobranie z niego zawartości: add-apt-repository ppa:webupd8team/java apt-get update Teraz spokojnie możemy instalujemy: apt-get install oracle-java8-installer Po całym procesie nasza java powinna wskazywać poprawną wartość, czytaj 1.8.x. Zatem zapytajmy się jaką wersje właśnie zainstalowaliśmy: java -version i/lub kompilator: javac -version Dla pewności, możemy upewnić się że nie będzie zgrzytów na etapie zależności. Więc sprawdzamy alternatywy: update-alternatives –config java Wybieramy naszą instalację i wszystko teraz będzie działać. W kolejnym kroku dodamy naszą instalację do zmiennych środowiskowych: vim /etc/environment Dodaj na początku klucz=wartość na początku pliku: JAVA_HOME=”/usr/lib/jvm/java-8-oracle” I aktualizujemy zmiany poprzez komendę source: source /etc/environment Teraz już jest definitywny koniec działań z javą. Sprawdzamy czy działa zmienna środowiskowa: echo $JAVA_HOME Działa, więc zainstalujmy robotników od czarnej roboty:
  2. Maven Maven, solidny framework oparty na pluginach, buduje aplikacje dla banków, ubezpieczeń, portale i inne bardzo ważne rzeczy.
    Zatem pobieramy i rozpakowujemy: Notatka: Tę akcję wykonuje w katalogu „/tmp”, ale nie ma takie obowiązku. Pamiętaj że jesteś na prawach „root”, więc to zobowiązuje do czegoś. wget http://ftp.man.poznan.pl/apache/maven/maven-3/3.5.3/binaries/apache-maven-3.5.3-bin.tar.gz tar zxvf apache-maven-3.5.3-bin.tar.gz Teraz przenieśmy do katalogu /opt/: mv apache-maven-3.5.3/ /opt/ I dodajemy zmienne środowiskowe, podobnie jak miało to miejsce dla pkt.1.
    Otwieramy plik środowisko: vim /etc/environment i dodajemy naszą zmienną: M2_HOME=”/opt/apache-maven-3.5.3″ Teraz jeszcze na końcu zmiennej PATH należy dodać odwołanie do katalogu bin: :$M2_HOME/bin Teraz aktualizujemy ponownie środowisko: source /etc/environment i sprawdzamy co się wydarzyło: # mvn -v Apache Maven 3.5.3 (3383c37e1f9e9b3bc3df5050c29c8aff9f295297; 2018-02-24T20:49:05+01:00) Maven home: /opt/apache-maven-3.5.3 Java version: 1.8.0_161, vendor: Oracle Corporation Java home: /usr/lib/jvm/java-8-oracle/jre Default locale: en_US, platform encoding: UTF-8 OS name: „linux”, version: „4.4.0-92-generic”, arch: „amd64”, family: „unix”
  3. Gradle Kolejnym specjalistom do spraw budowy jest Gradle, projekt bardzo szybko się rozwija i niesie ze sobą duży potencjał. Pierwsza różnica jaka jest widoczna w stosunku do Mavena, to plik ustawień bazuje na formacie skryptów Groove, gdy poprzednika opisywaliśmy w XMLach. A zatem do dzieła. Pobieramy i rozpakowujemy: wget https://services.gradle.org/distributions/gradle-4.6-bin.zip unzip gradle-4.6-bin.zip Teraz przeniesiemy do katalogu /opt/, tak jak poprzednika: mv gradle-4.6/ /opt/ I zmienne środowiskowe: vim /etc/environment Dodajemy wpis: GRADLE_HOME=”/opt/gradle-4.6″ i do zmiennej PATH, dodajemy odwołanie do katalogu bin: $GRADLE_HOME/bin Teraz aktualizacja środowiska: source /etc/environment i sprawdzamy efekt: # gradle -v ———————————————————— Gradle 4.6 ———————————————————— Build time: 2018-02-28 13:36:36 UTC Revision: 8fa6ce7945b640e6168488e4417f9bb96e4ab46c Groovy: 2.4.12 Ant: Apache Ant(TM) version 1.9.9 compiled on February 2 2017 JVM: 1.8.0_161 (Oracle Corporation 25.161-b12) OS: Linux 4.4.0-92-generic amd64
  4. Jenkins Całkiem spoko, jak do tej pory. Teraz czas na gwiazdę odcinka! Dodajemy repozytorium do nasze list w Ubuntu i aktualizujemy jak w przypadku Java’y: echo „deb https://pkg.jenkins.io/debian binary/” >> /etc/apt/sources.list apt-get update Teraz pora na główne zaklęcie: apt-get install jenkins Notatka: Instalator zapyta nas czy zainstalować aplikację oraz o to czy ma instalować bez sprawdzania poprawności. Ja należę do tych, którzy wierzą w oficjalną wersję zamieszczoną na oficjalnych stronach. W sumie ktoś by zauważył, gdyby coś niezdrowego się działo. Po instalacji może sprawdzić czy nasz serwis działa. Wykonaj komendę: service jenkins status Teraz czas na konfigurację: Przejdźmy na stronę: jenkins.e-strix.com:8080 Widzimy że aplikacja działa. Super!
    Teraz mamy do wpisania klucz, o który prosi nas pierwszy formularz. Pobierzmy go zgodnie z instrukcją: cat /var/lib/jenkins/secrets/initialAdminPassword Teraz wybierzmy sobie opcje, które pluginy mają być dodane przy instalacji. Ja wybieram wersję domyślną. Do naszej pracy wystarczy ta opcja, ale o tym będzie dalej. Teraz sobie chwilę poczekajmy aż instalacja przejdzie do końca i pojawi się formularz w którym będziemy poproszeni o utworzenie pierwszego administratora. W sumie działa, zatem możemy na tym zakończyć… Ale kole mnie po oczach ten port w pasku przeglądarki. Zatem zróbmy sobie ProxyPass. O tym w kolejnej części o serwerze Apache.  
  5. Apache W zasadzie możemy pominąć kilka pierwszysch kroków instalacji ponieważ poruszałem ten temat już w dwóch wpisach, na temat Subversion/SVN oraz o Git’cie. Ale przypomnę w dość szybki sposób. A zatem instalujemy: apt-get install apache2 Włączamy potrzebne moduły: a2enmod rewrite a2enmod proxy a2enmod proxy_http a2enmod headers a2enmod proxy_html a2enmod xml2enc i restartujemy serwer Apache: service apache2 restart Ok, teraz przejdźmy do katalogu dostępnych stron: cd /etc/apache2/sites-available/ Tworzymy katalog naszej strony: mkdir -p /var/www/jenkins.e-strix.com/public_html/ i dalej konfiguracja naszej strony: vim jenkins.e-strix.com.conf i jej zawartość <VirtualHost *:80> ServerAdmin k.mucik@e-strix.pl DocumentRoot /var/www/jenkins.e-strx.com/public_html <Directory „/var/www/jenkins.e-strx.com/public_html/” > Options Indexes FollowSymLinks MultiViews AllowOverride All allow from all Require all granted DirectoryIndex index.html </Directory> ServerName jenkins.e-strix.com ProxyRequests Off AllowEncodedSlashes NoDecode ProxyPass / http://127.0.0.1:8080/ nocanon ProxyPassReverse / http://127.0.0.1:8080/ ProxyPassReverse / http://jenkins.e-strix.com/ ErrorLog /var/www/jenkins.e-strix.com/error.log CustomLog /var/www/jenkins.e-strix.com/access.log combined </VirtualHost> I gra gitara… Teraz dodajemy naszą stronę i przeładowywujemy ostawienia: a2ensite jenkins.e-strix.com service apache2 reload Podsumowanie Teraz mamy już prawie wszystko aby móc automatycznie budować i publikować projekty. Prawie? Czyli co jeszcze?

Odpowiedź jest dość prosta, brakuje nam projektów oraz miejsca gdzie będzie publikacja. O tych elementach będą kolejne wpisy. Projekty oczywiście będą korzystały z naszej dokonanej pracy.

Dodaj komentarz

Your email address will not be published. Required fields are marked *.

*
*
You may use these <abbr title="HyperText Markup Language">HTML</abbr> tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>