Jak zainstalować i skonfigurować GoCD na Ubuntu 16.04

GoCD to system ciągłej dostawy i automatyzacji typu open source. Umożliwia modelowanie złożonych przepływów pracy przy użyciu wykonywania równoległego i sekwencyjnego. Mapa strumienia wartości pozwala z łatwością wizualizować złożony przepływ pracy. GoCD pozwala łatwo porównać dwie kompilacje i wdrożyć dowolną wersję aplikacji, którą chcesz. Ekosystem GoCD składa się z serwera GoCD i agenta GoCD. GoCD jest odpowiedzialny za kontrolowanie wszystkiego, takie jak uruchamianie internetowego interfejsu użytkownika oraz zarządzanie i dostarczanie zadań agentowi. Agenci Go są odpowiedzialni za uruchamianie zadań i wdrożeń.

Wymagania wstępne

  • Instancja serwera Vultr Ubuntu 16.04 z co najmniej 2 GB pamięci RAM.
  • Użytkownik sudo .
  • Nazwa domeny wskazuje na serwer.

W tym samouczku użyjemy 192.168.1.1jako publicznego adresu IP i gocd.example.com nazwy domeny wskazanej na instancję Vultr. Pamiętaj, aby zastąpić wszystkie wystąpienia przykładowej nazwy domeny i adresu IP faktycznym.

Zaktualizuj system podstawowy, korzystając z przewodnika Jak zaktualizować system Ubuntu 16.04 . Po zaktualizowaniu systemu przejdź do instalacji Java.

Zainstaluj Javę

GoCD wymaga Java w wersji 8 i obsługuje zarówno Oracle Java, jak i OpenJDK. Dodaj repozytorium Ubuntu dla Oracle Java 8.

sudo add-apt-repository --yes ppa:webupd8team/java
sudo apt update

Zainstaluj Oracle Java.

sudo apt -y install oracle-java8-installer

Sprawdź wersję.

java -version

Zobaczysz następujące dane wyjściowe.

user@vultr:~$ java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

Ustaw domyślną ścieżkę dla Java, instalując następujący pakiet.

sudo apt -y install oracle-java8-set-default

Możesz sprawdzić, czy JAVA_HOMEjest ustawiony, uruchamiając.

echo $JAVA_HOME

Zobaczysz.

user@vultr:~$ echo $JAVA_HOME
/usr/lib/jvm/java-8-oracle

Jeśli nie widzisz żadnych danych wyjściowych, musisz wylogować się z bieżącej powłoki i zalogować się ponownie.

Zainstaluj GoCD

Zainstaluj oficjalne repozytorium GoCD w systemie.

echo "deb https://download.gocd.org /" | sudo tee /etc/apt/sources.list.d/gocd.list
curl https://download.gocd.org/GOCD-GPG-KEY.asc | sudo apt-key add -
sudo apt update

Zainstaluj serwer GoCD w swoim systemie.

sudo apt install -y go-server

Uruchom GoCD i włącz automatyczne uruchamianie w czasie uruchamiania.

sudo systemctl start go-server
sudo systemctl enable go-server

Zanim przejdziemy do pulpitu GoCD, stwórzmy nowy katalog do przechowywania artefaktów. Artefakty można przechowywać na tym samym dysku, na którym zainstalowany jest system operacyjny i aplikacje. Alternatywnie możesz użyć dedykowanego dysku lub zablokowanego napędu do przechowywania artefaktów.

Jeśli chcesz używać tego samego dysku do przechowywania artefaktów, po prostu utwórz nowy katalog i przekaż własność użytkownikowi GoCD.

sudo mkdir /opt/artifacts
sudo chown -R go:go /opt/artifacts

Skonfiguruj blokowanie pamięci

Oprogramowanie GoCD zaleca użycie dodatkowej partycji lub napędu do przechowywania artefaktów. W platformie ciągłej integracji i dostawy artefakty są generowane bardzo często. Miejsce na dysku zmniejsza się w czasie, gdy nowe artefakty są ciągle generowane. Na pewnym etapie w twoim systemie zabraknie wolnego miejsca na dysku, a usługi działające w twoim systemie przestaną działać. Aby rozwiązać ten problem, możesz podłączyć nowy dysk do przechowywania bloków Vultr do przechowywania artefaktów. Jeśli nadal chcesz korzystać z przechowywania artefaktów na tym samym dysku, przejdź do sekcji „Konfiguruj GoCD”.

Wdróż nowy blokowy dysk pamięci i podłącz go do instancji serwera GoCD. Teraz utwórz nową partycję na blokowym urządzeniu magazynującym.

sudo parted -s /dev/vdb mklabel gpt
sudo parted -s /dev/vdb unit mib mkpart primary 0% 100%

Utwórz system plików na nowym dysku.

sudo mkfs.ext4 /dev/vdb1

Zamontuj blokowy dysk pamięci.

sudo mkdir /mnt/artifacts
sudo cp /etc/fstab /etc/fstab.backup
echo "
/dev/vdb1 /mnt/artifacts ext4 defaults,noatime 0 0" | sudo tee -a /etc/fstab
sudo mount /mnt/artifacts

Teraz uruchom, dfa zobaczysz zamontowany nowy dysk do przechowywania bloków /mnt/artifacts.

[user@vultr ~]$ df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/vda1       20616252 6313892  13237464  33% /

...
/dev/vdb1       10188052   36888   9610596   1% /mnt/artifacts

Przekaż własność katalogu użytkownikowi GoCD.

sudo chown -R go:go /mnt/artifacts

Skonfiguruj GoCD

Teraz możesz uzyskać dostęp do pulpitu GoCD na http://192.168.1.1:8153. Aby uzyskać dostęp do pulpitu GoCD przy zabezpieczonym połączeniu, uzyskaj dostęp https://192.168.1.1:8154. Pojawi się błąd wskazujący, że certyfikaty są nieprawidłowe. Możesz bezpiecznie zignorować błąd, ponieważ certyfikaty są samopodpisane. Ze względów bezpieczeństwa zawsze powinieneś używać deski rozdzielczej przez bezpieczne połączenie.

Przed skonfigurowaniem nowego potoku przejdź do „ Admin >> Server Configuration” z górnego paska nawigacyjnego.

Wprowadź adres URL do niezabezpieczonej witryny w polu „ Site URL”, a bezpiecznej witryny w polu „ Secure Site URL”.

Jak zainstalować i skonfigurować GoCD na Ubuntu 16.04

Następnie podaj dane swojego serwera SMTP, aby wysyłać powiadomienia e-mail z GoCD.

Jak zainstalować i skonfigurować GoCD na Ubuntu 16.04

Na koniec podaj ścieżkę do miejsca, w którym chcesz przechowywać artefakty. Jeśli zdecydowałeś się przechowywać artefakty na tym samym dysku co system operacyjny, wpisz /opt/artifacts; jeśli zdecydowałeś się dołączyć blokowy dysk pamięci, możesz wejść /mnt/artifacts.

Możesz także skonfigurować GoCD do automatycznego usuwania starych artefaktów. Skonfiguruj następną opcję zgodnie z rozmiarem dysku. Jednak opcja automatycznego usuwania nie wykonuje kopii zapasowej starych artefaktów. Aby ręcznie wykonać kopię zapasową, a następnie usunąć stare artefakty, wyłącz automatyczne usuwanie, wybierając Neveropcję „ ” dla opcji „ Auto delete old artifacts”.

Jak zainstalować i skonfigurować GoCD na Ubuntu 16.04

Musisz zrestartować serwer GoCD, aby zastosować nowe zmiany.

sudo systemctl restart go-server

Skonfiguruj uwierzytelnianie

Domyślnie pulpit nawigacyjny GoCD nie jest skonfigurowany do korzystania z żadnego rodzaju uwierzytelniania, ale obsługuje uwierzytelnianie przy użyciu pliku haseł i protokołu LDAP. W tym samouczku skonfigurujemy uwierzytelnianie oparte na haśle.

Uwaga : konfiguracja uwierzytelniania jest opcjonalnym krokiem, ale jest zdecydowanie zalecana dla serwerów publicznych, takich jak Vultr.

Zainstaluj narzędzia Apache, abyśmy mogli użyć htpasswd polecenia do utworzenia zaszyfrowanego pliku hasła.

sudo apt -y install apache2-utils

Utwórz plik hasła za pomocą htpasswd polecenia przy użyciu szyfrowania Bcrypt.

sudo htpasswd -B -c /etc/go/passwd_auth goadmin

Podaj hasło dla użytkownika dwa razy. Zobaczysz następujące dane wyjściowe.

[user@vultr ~]$ sudo htpasswd -B -c /etc/go/passwd_auth goadmin
New password:
Re-type new password:
Adding password for user goadmin

Możesz dodać dowolną liczbę użytkowników za pomocą tego samego polecenia powyżej, ale usuń tę -c opcję. -c Opcja zastąpienia istniejącego pliku, zastępując stare użytkownikom nowego użytkownika.

sudo htpasswd -B /etc/go/passwd_auth gouser1

Po utworzeniu pliku hasła ponownie uzyskaj dostęp do pulpitu GoCD. Przejdź do „ Admin >> Security >> Authorization Configurations” z górnego paska nawigacyjnego. Kliknij Add przycisk i podaj dowolny identyfikator. Wybierz „ Password File Authentication Plugin for GoCD” dla identyfikatora wtyczki i skieruj ścieżkę do pliku hasła. Teraz kliknij przycisk „ Check Connection”, aby sprawdzić, czy GoCD może użyć pliku hasła do uwierzytelnienia.

Jak zainstalować i skonfigurować GoCD na Ubuntu 16.04

Na koniec zapisz metodę uwierzytelniania. Ponownie załaduj pulpit, a nastąpi automatyczne wylogowanie. Zobaczysz teraz ekran logowania. Zaloguj się przy użyciu wcześniej utworzonych poświadczeń.

Konieczne będzie ręczne wypromowanie administratora, w przeciwnym razie wszyscy użytkownicy będą mieli uprawnienia administratora. Przejdź do „ Admin >> User Summary” z górnego paska nawigacyjnego.

Teraz wybierz utworzonego użytkownika administratora i kliknij Rolesmenu rozwijane „ ”. Wypromuj użytkownika jako jedynego administratora, zaznaczając pole wyboru „ Go System Administrator”.

Jak zainstalować i skonfigurować GoCD na Ubuntu 16.04

Aby dodać użytkowników w GoCD utworzonych w pliku haseł, kliknij przycisk „ ADD” i wyszukaj użytkownika, aby je dodać. Użytkownicy są również automatycznie dodawani do pulpitu GoCD przy pierwszym logowaniu. Oczywiście, aby użytkownicy mogli się zalogować, muszą zostać dodani do pliku hasła, który utworzyliśmy wcześniej.

Zabezpieczanie GoCD za pomocą Let's Encrypt SSL

Domyślnie GoCD nasłuchuje portów 8153 i 8154 bezpiecznych połączeń. Chociaż port 8154 zapewnia bezpieczne połączenie z aplikacją, wyświetla również błędy przeglądarki, ponieważ używa certyfikatu z podpisem własnym. W tej części samouczka zainstalujemy i zabezpieczymy Nginx za pomocą bezpłatnego certyfikatu SSL Let's Encrypt. Serwer WWW Nginx będzie działał jako odwrotny serwer proxy do przekazywania przychodzących żądań do HTTP punktu końcowego GoCD .

Zainstaluj Nginx.

sudo apt -y install nginx

Uruchom Nginx i włącz automatyczne uruchamianie podczas uruchamiania.

sudo systemctl start nginx
sudo systemctl enable nginx

Dodaj repozytorium Certbot.

sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update

Zainstaluj Certbot, czyli aplikację kliencką Let's Encrypt CA.

sudo apt -y install certbot

Uwaga : Aby uzyskać certyfikaty z Let's Encrypt CA, domena, dla której mają być generowane certyfikaty, musi być skierowana w stronę serwera. Jeśli nie, dokonaj niezbędnych zmian w rekordach DNS domeny i poczekaj na propagację DNS przed ponownym żądaniem certyfikatu. Certbot sprawdza urząd domeny przed podaniem certyfikatów.

Wygeneruj certyfikaty SSL.

sudo certbot certonly --webroot -w /var/www/html -d gocd.example.com

Wygenerowane certyfikaty prawdopodobnie będą przechowywane /etc/letsencrypt/live/gocd.example.com/. Certyfikat SSL będzie przechowywany jako, fullchain.pem a klucz prywatny będzie przechowywany jako privkey.pem.

Ważność certyfikatów Let's Encrypt wygasa za 90 dni, dlatego zaleca się skonfigurowanie automatycznego odnawiania certyfikatów za pomocą zadań cron.

Otwórz plik zadania cron.

sudo crontab -e

Dodaj następujący wiersz na końcu pliku.

30 5 * * * /usr/bin/certbot renew --quiet

Powyższe zadanie crona będzie uruchamiane codziennie o 5:30. Jeśli certyfikat wygasł, zostanie automatycznie odnowiony.

Utwórz nowy plik konfiguracyjny dla interfejsu internetowego GoCD.

sudo nano /etc/nginx/sites-available/gocd

Wypełnij plik.

upstream gocd {
server 127.0.0.1:8153;
}

server {
    listen 80;
    server_name gocd.example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443;
    server_name gocd.example.com;

    ssl_certificate           /etc/letsencrypt/live/gocd.example.com/fullchain.pem;
    ssl_certificate_key       /etc/letsencrypt/live/gocd.example.com/privkey.pem;

    ssl on;
    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;

    access_log  /var/log/nginx/gocd.access.log;

location / {
        proxy_pass http://gocd;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;
        proxy_redirect off;
    }
location /go {
    proxy_pass http://gocd/go;
    proxy_http_version 1.1;
    proxy_set_header Upgrade websocket;
    proxy_set_header Connection upgrade;
    proxy_read_timeout 86400;
    }
  }

Aktywuj plik konfiguracyjny.

sudo ln -s /etc/nginx/sites-available/gocd /etc/nginx/sites-enabled/gocd

Uruchom ponownie serwer WWW Nginx, aby wprowadzić zmianę w konfiguracji.

sudo systemctl restart nginx

Teraz możesz uzyskać dostęp do pulpitu GoCD pod adresem https://gocd.example.com. Zaloguj się do pulpitu nawigacyjnego przy użyciu poświadczeń administratora i przejdź do „ Admin >> Server Configuration” z górnego paska nawigacyjnego.

Jak zainstalować i skonfigurować GoCD na Ubuntu 16.04

Ustaw „ Site URL” i „ Secure Site URL” na https://gocd.example.com.

Instalowanie agenta GoCD

W środowisku ciągłej integracji GoCD agenci GoCD są pracownikami odpowiedzialnymi za wykonanie wszystkich zadań. Po wykryciu zmiany źródła źródło jest uruchamiane, a zadania są przypisywane do dostępnych pracowników do wykonania. Następnie agent wykonuje zadanie i zgłasza ostateczny status po wykonaniu.

Aby uruchomić potok, należy skonfigurować co najmniej jednego agenta. Kontynuuj instalację agenta GoCD na serwerze GoCD.

Ponieważ zaimportowaliśmy już repozytorium GoCD na serwer, możemy bezpośrednio zainstalować Go Agent.

sudo apt install -y go-agent

Teraz uruchom serwer GoCD i włącz go, aby automatycznie uruchamiał się podczas uruchamiania.

sudo systemctl start go-agent
sudo systemctl enable go-agent

Agent GoCD działający na komputerze lokalnym jest automatycznie włączany po wykryciu.



Leave a Comment

Funkcjonalności warstw architektury referencyjnej Big Data

Funkcjonalności warstw architektury referencyjnej Big Data

Przeczytaj blog, aby w najprostszy sposób poznać różne warstwy w architekturze Big Data i ich funkcjonalności.

Rewolucyjne wynalazki Google, które ułatwią Twoje życie.

Rewolucyjne wynalazki Google, które ułatwią Twoje życie.

Chcesz zobaczyć rewolucyjne wynalazki Google i jak te wynalazki zmieniły życie każdego człowieka dzisiaj? Następnie czytaj na blogu, aby zobaczyć wynalazki Google.

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

Pozostań w kontakcie dzięki aplikacji WhatsApp na komputer 24*7

Pozostań w kontakcie dzięki aplikacji WhatsApp na komputer 24*7

Whatsapp w końcu uruchomił aplikację Desktop dla użytkowników komputerów Mac i Windows. Teraz możesz łatwo uzyskać dostęp do Whatsapp z systemu Windows lub Mac. Dostępne dla Windows 8+ i Mac OS 10.9+

5 przykładów, które dowodzą, że energetyka jądrowa nie zawsze jest zła

5 przykładów, które dowodzą, że energetyka jądrowa nie zawsze jest zła

Energia jądrowa jest zawsze pogardzana, nigdy jej nie szanujemy z powodu przeszłych wydarzeń, ale nie zawsze jest zła. Przeczytaj post, aby dowiedzieć się więcej na ten temat.

Friday Essential: Co się stało z samochodami sterowanymi przez sztuczną inteligencję?

Friday Essential: Co się stało z samochodami sterowanymi przez sztuczną inteligencję?

Koncepcja autonomicznych samochodów, które wyjadą na drogi za pomocą sztucznej inteligencji, to marzenie, które mamy już od jakiegoś czasu. Ale pomimo kilku obietnic nigdzie ich nie widać. Przeczytaj ten blog, aby dowiedzieć się więcej…

Czy AI może walczyć z rosnącą liczbą ataków ransomware?

Czy AI może walczyć z rosnącą liczbą ataków ransomware?

Wzrasta liczba ataków ransomware, ale czy sztuczna inteligencja może pomóc w radzeniu sobie z najnowszym wirusem komputerowym? Czy AI jest odpowiedzią? Przeczytaj tutaj, wiedz, że sztuczna inteligencja jest zmorą lub zgubą

5 przydatnych narzędzi sztucznej inteligencji, które uproszczą Twoje życie

5 przydatnych narzędzi sztucznej inteligencji, które uproszczą Twoje życie

Sztuczna inteligencja nie jest dla ludzi nową nazwą. Ponieważ sztuczna inteligencja jest włączona do każdego strumienia, jednym z nich jest opracowywanie narzędzi zwiększających ludzką wydajność i dokładność. Skorzystaj z tych niesamowitych narzędzi uczenia maszynowego i uprość swoje codzienne zadania.

Wgląd w 26 technik analizy Big Data: część 2

Wgląd w 26 technik analizy Big Data: część 2

Zawsze potrzebujemy Big Data Analytics do efektywnego zarządzania danymi. W tym artykule omówiliśmy kilka technik analizy Big Data. Sprawdź ten artykuł.

Ataki DDOS: krótki przegląd

Ataki DDOS: krótki przegląd

Czy jesteś również ofiarą ataków DDOS i nie masz pewności co do metod zapobiegania? Przeczytaj ten artykuł, aby rozwiązać swoje pytania.