Sådan installeres og konfigureres GoCD på CentOS 7

GoCD er et open source system til kontinuerlig levering og automatisering. Det giver dig mulighed for at modellere komplekse arbejdsgange ved hjælp af dens parallelle og sekventielle udførelse. Dets værdistrømskort giver dig mulighed for nemt at visualisere en kompleks arbejdsgang med lethed. GoCD lader dig nemt sammenligne to builds og implementere enhver version af den applikation, du ønsker. GoCD-økosystemet består af GoCD-server og GoCD-agent. GoCD er ansvarlig for at kontrollere alt, såsom at køre den webbaserede brugergrænseflade og administrere og levere job til agenten. Go-agenter er ansvarlige for at køre jobs og implementeringer.

Forudsætninger

  • En Vultr CentOS 7-serverinstans med mindst 1 GB RAM.
  • En sudo-bruger .
  • Et domænenavn pegede mod serveren.

Til denne vejledning vil vi bruge 192.168.1.1som den offentlige IP-adresse og gocd.example.comsom domænenavnet, der pegede mod Vultr-forekomsten. Sørg for at erstatte alle forekomster af eksempeldomænenavnet og IP-adressen med det faktiske.

Opdater dit basissystem ved hjælp af vejledningen Sådan opdaterer du CentOS 7 . Når dit system er blevet opdateret, skal du fortsætte med at installere Java.

Installer Java

GoCD kræver Java version 8 og understøtter både Oracle Java og OpenJDK. I denne vejledning vil vi installere Java 8 fra OpenJDK.

OpenJDK kan nemt installeres, da pakken er tilgængelig i standardlageret YUM.

sudo yum -y install java-1.8.0-openjdk-devel

Hvis Java er installeret korrekt, vil du være i stand til at bekræfte dens version.

java -version

Du vil få et output svarende til den følgende tekst.

[user@vultr ~]$ java -version
openjdk version "1.8.0_151"
OpenJDK Runtime Environment (build 1.8.0_151-b12)
OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)

Før vi kan gå videre, bliver vi nødt til at opsætte JAVA_HOMEog JRE_HOMEmiljøvariablerne. Find den absolutte sti til den eksekverbare Java i dit system.

readlink -f $(which java)

Følgende tekst udsendes til din terminal.

[user@vultr ~]$ readlink -f $(which java)
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-5.b12.el7_4.x86_64/jre/bin/java

Indstil nu JAVA_HOMEog JRE_HOMEmiljøvariablerne i henhold til stien til Java-mappen.

echo "export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-5.b12.el7_4.x86_64" >> ~/.bash_profile
echo "export JRE_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-5.b12.el7_4.x86_64/jre" >> ~/.bash_profile

Bemærk: Sørg for, at du bruger den Java-sti, du har fået på dit system. Stien, der bruges i denne øvelse, kan ændre sig, når en ny version af Java 8 frigives.

Udfør bash_profilefilen.

source ~/.bash_profile

Nu kan du køre echo $JAVA_HOMEkommandoen for at sikre, at miljøvariablen er indstillet.

[user@vultr ~]$ echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64

Installer GoCD

GoCD er skrevet i Java, derfor er Java den eneste afhængighed for at køre GoCD. GoCD kan installeres ved hjælp af YUM. Installer dets officielle lager i systemet.

sudo curl https://download.gocd.org/gocd.repo -o /etc/yum.repos.d/gocd.repo

Installer GoCD-serveren i dit system.

sudo yum install -y go-server

Start GoCD og aktiver den til automatisk at starte ved opstart.

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

Før vi får adgang til GoCD-dashboardet, lad os oprette en ny mappe til at gemme artefakterne. Artefakter kan gemmes på den samme disk, som operativsystemet og applikationerne er installeret på. Alternativt kan du bruge en dedikeret disk eller bloklagerdrev til at gemme artefakterne.

Hvis du ønsker at bruge den samme disk til at gemme artefakterne, skal du bare oprette en ny mappe og give ejerskabet til GoCD-brugeren.

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

Konfigurer Block Storage

GoCD-softwaren anbefaler at bruge en ekstra partition eller et ekstra drev til at gemme artefakterne. I en kontinuerlig integrations- og leveringsplatform genereres artefakter meget ofte. Diskpladsen falder over tid, når nye artefakter konstant genereres. På et tidspunkt vil dit system løbe tør for ledig diskplads, og de tjenester, der kører på dit system, vil mislykkes. For at løse dette problem kan du vedhæfte et nyt Vultr-bloklagerdrev for at gemme artefakterne. Hvis du stadig ønsker at lagre artefakter på det samme drev, skal du springe til afsnittet "Opsætning af firewall".

Implementer et nyt bloklagerdrev og vedhæft det til din GoCD-serverinstans. Opret nu en ny partition på bloklagerenheden.

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

Opret filsystemet på den nye disk.

sudo mkfs.ext4 /dev/vdb1

Monter bloklagerdrevet.

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

Kør nu df, og du vil se det nye bloklagerdrev monteret på /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

Giv GoCD-brugeren ejerskabet af mappen.

sudo chown -R go:go /mnt/artifacts

Konfigurer Firewall

Skift firewall-konfigurationen for at tillade porte 8153og 8154gennem firewallen. Port 8153lytter efter usikrede forbindelser og port 8154for sikrede forbindelser.

sudo firewall-cmd --zone=public --add-port=8153/tcp --permanent
sudo firewall-cmd --zone=public --add-port=8154/tcp --permanent
sudo firewall-cmd --reload

Nu kan du få adgang til GoCD-dashboardet på http://192.168.1.1:8153. For at få adgang til GoCD-dashboardet på en sikret forbindelse skal du åbne https://192.168.1.1:8154. Du vil få en fejl, der viser, at certifikaterne ikke er gyldige. Du kan roligt ignorere fejlen, da certifikaterne er selvsignerede. Af sikkerhedsmæssige årsager bør du altid bruge dashboardet over en sikker forbindelse.

Før du opsætter en ny pipeline, skal du navigere til " Admin >> Server Configuration" fra den øverste navigationslinje.

Indtast URL'en til dit usikrede websted i feltet " Site URL" og sikret websted i feltet " Secure Site URL".

Sådan installeres og konfigureres GoCD på CentOS 7

Angiv derefter dine SMTP-serverdetaljer for at sende e-mail-meddelelser fra GoCD.

Sådan installeres og konfigureres GoCD på CentOS 7

Til sidst skal du angive stien til det sted, hvor du ønsker at opbevare artefakterne. Hvis du har valgt at gemme artefakterne på den samme disk som operativsystemet, skal du indtaste /opt/artifacts; hvis du har valgt at vedhæfte et bloklagerdrev, så kan du indtaste /mnt/artifacts.

Also, you can configure GoCD to auto-delete the old artifacts. Configure the next option according to your disk size. However, the auto-delete option does not take a backup of your old artifacts. To manually take a backup and then delete the old artifacts, disable auto delete by choosing the "Never" option for the "Auto delete old artifacts" option.

Sådan installeres og konfigureres GoCD på CentOS 7

You will need to restart the GoCD server so that the new changes are applied.

sudo systemctl restart go-server

Setup Authentication

By default, the GoCD dashboard is not configured to use any kind of authentication, but it supports authentication using a password file and LDAP. In this tutorial, we will set up password-based authentication.

Note: Setting up authentication is an optional step, but it is strongly recommended for public facing servers, such as Vultr.

Install Apache tools so that we can use the htpasswd command to create an encrypted password file.

sudo yum -y install httpd-tools

Create a password file with the htpasswd command using Bcrypt encryption.

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

Provide the password for the user twice. You will see the following output.

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

You can add as many users as you want using the same command above, but removing the -c option. The -c option will replace the existing file, replacing old users with the new user.

sudo htpasswd -B /etc/go/passwd_auth gouser1

Since, we have created the password file, access the GoCD dashboard again. Navigate to "Admin >> Security >> Authorization Configurations" from the top navigation bar. Click on the Add button and provide an ID. Choose "Password File Authentication Plugin for GoCD" for plugin ID and direct the path to the password file. Now click on the "Check Connection" button to verify that GoCD can use the password file for authentication.

Sådan installeres og konfigureres GoCD på CentOS 7

Finally, save the authentication method. Reload the dashboard and it will automatically log you out. You will see a login screen now. Log in using the credentials created earlier.

You will need to promote the administrator user manually, otherwise, all the users will have administrator privileges. Navigate to "Admin >> User Summary" from the top navigation bar.

Now select the admin user you've created and click on the "Roles" drop-down. Promote the user to the only administrator by selecting the "Go System Administrator" checkbox.

Sådan installeres og konfigureres GoCD på CentOS 7

To add the users in GoCD created in the password file, click on the "ADD" button and search for the user to add them. Users are also automatically added to the GoCD dashboard on their first login. Obviously, for users to log in, they must be added to the password file we have created earlier.

Securing GoCD with Let's Encrypt SSL

By default, GoCD listens to ports 8153 and 8154 on secure connections. Though port 8154 provides a secure connection to the application, it also displays browser errors as it uses a self-signed certificate. In this section of the tutorial, we will install and secure Nginx with Let's Encrypt free SSL certificate. The Nginx web server will work as a reverse proxy to forward the incoming requests to GoCD's HTTP endpoint.

Install Nginx.

sudo yum -y install nginx

Start Nginx and enable it to automatically start at boot time.

sudo systemctl start nginx
sudo systemctl enable nginx

Install Certbot, which is the client application for Let's Encrypt CA.

sudo yum -y install certbot

Before you can request certificates, you will need to allow ports 80 and 443, or standard HTTP and HTTPS services, through the firewall. Also, remove port 8153, which listens to the unsecured connections.

sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --zone=public --remove-port=8153/tcp --permanent
sudo firewall-cmd --reload

Note: To obtain certificates from Let's Encrypt CA, the domain for which the certificates are to be generated must be pointed towards the server. If not, make the necessary changes to the DNS records of the domain and wait for the DNS to propagate before making the certificate request again. Certbot checks the domain authority before providing the certificates.

Generate the SSL certificates.

sudo certbot certonly --webroot -w /usr/share/nginx/html -d gocd.example.com

The generated certificates are likely to be stored in /etc/letsencrypt/live/gocd.example.com/. The SSL certificate will be stored as fullchain.pem and private key will be stored as privkey.pem.

Let's Encrypt certificates expire in 90 days, so it is recommended to set up auto-renewal of the certificates using cron jobs.

Open the cron job file.

sudo crontab -e

Add the following line to the end of the file.

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

The above cron job will run every day at 5:30 AM. If the certificate is due for expiry, it will automatically renew.

Now, change the Nginx default configuration file to take out the default_server line.

sudo sed -i 's/default_server//g' /etc/nginx/nginx.conf

Create a new configuration file for the GoCD web interface.

sudo nano /etc/nginx/conf.d/gocd.conf

Populate the file.

upstream gocd {
server 127.0.0.1:8153;
}

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

server {
    listen 443 default_server;
    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;
    }
  }

Check for errors in the new configuration file.

sudo nginx -t

If you see the following output, the configuration is error free.

[user@vultr ~]$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

If you have received some kind of error, make sure to double check the path to the SSL certificates. Restart the Nginx web server to implement the change in configuration.

sudo systemctl restart nginx

Now you can access the GoCD dashboard at https://gocd.example.com. Log in to your dashboard using the administrator credentials and navigate to "Admin >> Server Configuration" from the top navigation bar.

Sådan installeres og konfigureres GoCD på CentOS 7

Set the "Site URL" and "Secure Site URL" to https://gocd.example.com. Port 8154 still needs to be accessible through the firewall so that the remote agents may connect to the server through port 8154, in case they are unable to connect through the standard HTTP port.

Installing GoCD Agent

In the GoCD continuous integration environment, GoCD agents are the workers that are responsible for the execution of all the tasks. When a change in the source is detected, the pipeline is triggered and the jobs are assigned to the available workers for execution. The agent then executes the task and reports the final status after execution.

To run a pipeline, at least one agent must to be configured. Proceed to install the GoCD agent on the GoCD server.

Since we have already imported the GoCD repository into the server, we can directly install Go Agent.

sudo yum install -y go-agent

Now, start the GoCD server and enable it to automatically start at boot time.

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

The GoCD agent running on the localhost is automatically enabled when detected.


Installer Plesk på CentOS 7

Installer Plesk på CentOS 7

Bruger du et andet system? Plesk er et proprietært webhost kontrolpanel, der giver brugerne mulighed for at administrere deres personlige og/eller klienters websteder, databaser

Sådan installeres Squid Proxy på CentOS

Sådan installeres Squid Proxy på CentOS

Squid er et populært, gratis Linux-program, der giver dig mulighed for at oprette en webproxy til videresendelse. I denne vejledning vil du se, hvordan du installerer Squid på CentOS for at gøre dig

Sådan installeres Lighttpd (LLMP Stack) på CentOS 6

Sådan installeres Lighttpd (LLMP Stack) på CentOS 6

Introduktion Lighttpd er en forgrening af Apache, der sigter mod at være meget mindre ressourcekrævende. Den er let, deraf navnet, og den er ret enkel at bruge. Installer

Konfiguration af statisk netværk og IPv6 på CentOS 7

Konfiguration af statisk netværk og IPv6 på CentOS 7

VULTR har for nylig foretaget ændringer i deres ende, og alt skulle nu fungere fint ud af boksen med NetworkManager aktiveret. Skulle du ønske at deaktivere

Ændring af Icinga2 til at bruge Master/Client Model på CentOS 6 eller CentOS 7

Ændring af Icinga2 til at bruge Master/Client Model på CentOS 6 eller CentOS 7

Icinga2 er et kraftfuldt overvågningssystem, og når det bruges i en master-klient-model, kan det erstatte behovet for NRPE-baserede overvågningstjek. Mester-klienten

Sådan installeres Apache Cassandra 3.11.x på CentOS 7

Sådan installeres Apache Cassandra 3.11.x på CentOS 7

Bruger du et andet system? Apache Cassandra er et gratis og open source NoSQL-databasestyringssystem, der er designet til at give skalerbarhed, høj

Sådan installeres Microweber på CentOS 7

Sådan installeres Microweber på CentOS 7

Bruger du et andet system? Microweber er en open source træk og slip CMS og online shop. Microweber-kildekoden er hostet på GitHub. Denne guide vil vise dig

Sådan installeres Mattermost 4.1 på CentOS 7

Sådan installeres Mattermost 4.1 på CentOS 7

Bruger du et andet system? Mattermost er et open source, selvhostet alternativ til Slack SAAS-meddelelsestjenesten. Med andre ord, med Mattermost er du ca

Oprettelse af et netværk af Minecraft-servere med BungeeCord på Debian 8, Debian 9 eller CentOS 7

Oprettelse af et netværk af Minecraft-servere med BungeeCord på Debian 8, Debian 9 eller CentOS 7

Hvad skal du bruge En Vultr VPS med mindst 1 GB RAM. SSH-adgang (med root/administrative rettigheder). Trin 1: Installation af BungeeCord Første ting først

Lad os kryptere på Plesk

Lad os kryptere på Plesk

Plesk-kontrolpanelet har en meget flot integration til Lets Encrypt. Lets Encrypt er en af ​​de eneste SSL-udbydere, der udleverer certifikater komplet

Lader kryptere på cPanel

Lader kryptere på cPanel

Lets Encrypt er en certifikatmyndighed dedikeret til at levere SSL-certifikater gratis. cPanel har bygget en pæn integration, så du og din klient

Sådan installeres Concrete5 på CentOS 7

Sådan installeres Concrete5 på CentOS 7

Bruger du et andet system? Concrete5 er et open source CMS, som tilbyder mange karakteristiske og nyttige funktioner til at hjælpe redaktører med at producere indhold nemt og

Sådan installeres Review Board på CentOS 7

Sådan installeres Review Board på CentOS 7

Bruger du et andet system? Review Board er et gratis og open source-værktøj til gennemgang af kildekode, dokumentation, billeder og mange flere. Det er webbaseret software

Konfigurer HTTP-godkendelse med Nginx på CentOS 7

Konfigurer HTTP-godkendelse med Nginx på CentOS 7

I denne vejledning lærer du, hvordan du opsætter HTTP-godkendelse for en Nginx-webserver, der kører på CentOS 7. Krav For at komme i gang skal du bruge

Sådan installeres YOURLS på CentOS 7

Sådan installeres YOURLS på CentOS 7

YOURLS (Your Own URL Shortener) er en open source URL-forkortelse og dataanalyseapplikation. I denne artikel vil vi dække installationsprocessen

Sådan installeres og konfigureres ArangoDB på CentOS 7

Sådan installeres og konfigureres ArangoDB på CentOS 7

Bruger du et andet system? Introduktion ArangoDB er en open source NoSQL-database med en fleksibel datamodel for dokumenter, grafer og nøgleværdier. det er

Brug af Etckeeper til versionskontrol af /etc

Brug af Etckeeper til versionskontrol af /etc

Introduktion /etc/-biblioteket spiller en afgørende rolle i den måde et Linux-system fungerer på. Årsagen til dette er, at næsten alle systemkonfigurationer

Hvorfor skal du bruge SSHFS? Sådan monteres et eksternt filsystem med SSHFS på CentOS 6

Hvorfor skal du bruge SSHFS? Sådan monteres et eksternt filsystem med SSHFS på CentOS 6

Mange systemadministratorer administrerer store mængder servere. Når filer skal tilgås på tværs af forskellige servere, logges ind på hver enkelt individuelt ca

Opsætning af en Half Life 2-server på CentOS 6

Opsætning af en Half Life 2-server på CentOS 6

Denne vejledning vil dække processen med at installere en Half Life 2-spilserver på CentOS 6 System. Trin 1: Installation af forudsætninger For at opsætte ou

Sådan installeres Laravel GitScrum på CentOS 7

Sådan installeres Laravel GitScrum på CentOS 7

Laravel GitScrum eller GitScrum er et open source-produktivitetsværktøj designet til at hjælpe udviklingsteams med at implementere Scrum-metoden på en måde, der ligner t.

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Kunstig intelligens er ikke i fremtiden, det er her lige i nuet I denne blog Læs, hvordan kunstig intelligens-applikationer har påvirket forskellige sektorer.

DDOS-angreb: et kort overblik

DDOS-angreb: et kort overblik

Er du også et offer for DDOS-angreb og forvirret over forebyggelsesmetoderne? Læs denne artikel for at løse dine spørgsmål.

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Du har måske hørt, at hackere tjener mange penge, men har du nogensinde spekuleret på, hvordan tjener de den slags penge? lad os diskutere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Vil du se revolutionerende opfindelser fra Google, og hvordan disse opfindelser ændrede livet for ethvert menneske i dag? Læs derefter til bloggen for at se opfindelser fra Google.

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Konceptet med selvkørende biler til at køre på vejene ved hjælp af kunstig intelligens er en drøm, vi har haft i et stykke tid nu. Men på trods af flere løfter er de ingen steder at se. Læs denne blog for at lære mere...

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Efterhånden som videnskaben udvikler sig i et hurtigt tempo og overtager en stor del af vores indsats, stiger risikoen for at udsætte os selv for en uforklarlig Singularitet. Læs, hvad singularitet kunne betyde for os.

Udvikling af datalagring – Infografik

Udvikling af datalagring – Infografik

Opbevaringsmetoderne for dataene har været under udvikling, kan være siden fødslen af ​​dataene. Denne blog dækker udviklingen af ​​datalagring på basis af en infografik.

Funktioner af Big Data Reference Architecture Layers

Funktioner af Big Data Reference Architecture Layers

Læs bloggen for at kende forskellige lag i Big Data-arkitekturen og deres funktionaliteter på den enkleste måde.

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

I denne digitalt drevne verden er smarte hjemmeenheder blevet en afgørende del af livet. Her er et par fantastiske fordele ved smarte hjemmeenheder om, hvordan de gør vores liv værd at leve og enklere.

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

For nylig udgav Apple macOS Catalina 10.15.4 en supplerende opdatering for at løse problemer, men det ser ud til, at opdateringen forårsager flere problemer, hvilket fører til mursten af ​​mac-maskiner. Læs denne artikel for at lære mere