Hur man installerar Jenkins på CentOS 7
Jenkins är ett populärt CI-verktyg (Continuous Integration) med öppen källkod som används i stor utsträckning för projektutveckling, implementering och automatisering. Denna artikel vill
Continuous Integration är en DevOps mjukvaruutvecklingspraxis som gör det möjligt för utvecklarna att ofta slå samman den modifierade koden till det delade arkivet många gånger om dagen. Efter varje sammanslagning utförs automatiska builds och tester för att upptäcka problem i koden. Det gör det möjligt för utvecklarna att hitta och lösa felen snabbt för att förbättra mjukvarans kvalitet och ge kontinuerlig leverans av programvaran. Att byta fram och tillbaka från Concourse är mycket enkelt eftersom det behåller all sin konfiguration i deklarativa filer som kan kontrolleras i versionskontroll. Det tillhandahåller också ett webbanvändargränssnitt som visar bygginformationen interaktivt.
Se till att ersätta alla förekomster av 192.0.2.1
och ci.example.com
med din faktiska Vultr offentliga IP-adress och faktiska domännamn.
Uppdatera ditt bassystem med hjälp av guiden Hur man uppdaterar Ubuntu 16.04 . När ditt system har uppdaterats, fortsätt att installera PostgreSQL.
PostgreSQL är ett relationsdatabassystem för objekt. Concourse lagrar sina pipelinedata i en PostgreSQL-databas. Lägg till PostgreSQL-förvaret.
echo "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update
Installera PostgreSQL-databasservern.
sudo apt -y install postgresql
Starta PostgreSQL-servern och låt den starta automatiskt vid uppstart.
sudo systemctl start postgresql
sudo systemctl enable postgresql
Ändra lösenordet för standardpostgreSQL-användaren.
sudo passwd postgres
Logga in som PostgreSQL-användare:
sudo su - postgres
Skapa en ny PostgreSQL-användare för Concourse CI.
createuser concourse
Obs : StandardpostgreSQL-användaren kan användas för autentisering av databasen, men det rekommenderas att använda en dedikerad användare för autentisering av Concourse-databasen i en produktionsuppsättning.
PostgreSQL tillhandahåller ett skal för att köra frågor på databasen. Byt till PostgreSQL-skalet.
psql
Ställ in ett lösenord för den nyskapade Concourse-databasanvändaren.
ALTER USER concourse WITH ENCRYPTED password 'DBPassword';
Viktigt : Ersätt DBPassword
med ett starkt lösenord. Anteckna lösenordet eftersom det kommer att krävas senare i handledningen.
Skapa en ny databas för Concourse.
CREATE DATABASE concourse OWNER concourse;
Gå ur psql
skalet.
\q
Växla till sudo-användaren från nuvarande postgres
användare.
exit
Ladda ner den senaste versionen av Concourse körbara och lagra den /usr/bin
så att den kan köras direkt. Den senaste versionen av Concourse- och Fly-binärerna finns på Concourse-nedladdningssidan . Nya släpp är mycket frekventa. Ersätt länken nedan med den nya länken för den senaste versionen.
sudo wget https://github.com/concourse/concourse/releases/download/v3.10.0/concourse_linux_amd64 -O /usr/bin/concourse
På samma sätt laddar du ner den senaste versionen av den körbara flygfilen och lagrar den i /usr/bin
.
sudo wget https://github.com/concourse/concourse/releases/download/v3.10.0/fly_linux_amd64 -O /usr/bin/fly
Fly är kommandoradsgränssnittet som används för att ansluta till ATC API för Concourse CI. Fly är tillgängligt för flera plattformar som Linux, Windows och MacOS.
Tilldela exekveringsbehörighet till de nedladdade concourse
och fly
binära filerna.
sudo chmod +x /usr/bin/concourse /usr/bin/fly
Kontrollera om Concourse och Fly fungerar korrekt genom att kontrollera deras version.
concourse -version
fly -version
RSA-nyckelpar ger ett sätt att kryptera kommunikationen mellan komponenterna i Concourse.
För att Concourse ska fungera måste minst tre par nycklar genereras. För att kryptera sessionsdata, generera en session_signing_key
. Denna nyckel kommer också att användas av TSA för att signera de förfrågningar den gör till ATC. För att säkra TSA SSH-servern, generera en tsa_host_key
. Till sist, generera en worker_key
för varje arbetare.
Skapa en ny katalog för att lagra nycklar och konfiguration relaterade till Concourse CI.
sudo mkdir /opt/concourse
Skapa de nödvändiga nycklarna.
sudo ssh-keygen -t rsa -q -N '' -f /opt/concourse/session_signing_key
sudo ssh-keygen -t rsa -q -N '' -f /opt/concourse/tsa_host_key
sudo ssh-keygen -t rsa -q -N '' -f /opt/concourse/worker_key
Auktorisera arbetarnas publika nyckel genom att kopiera dess innehåll till authorized_worker_keys
filen.
sudo cp /opt/concourse/worker_key.pub /opt/concourse/authorized_worker_keys
Concourse tillhandahåller två separata komponenter som måste startas: webben och arbetaren. Starta Concourse-webben.
sudo concourse web \
--basic-auth-username admin \
--basic-auth-password StrongPass \
--session-signing-key /opt/concourse/session_signing_key \
--tsa-host-key /opt/concourse/tsa_host_key \
--tsa-authorized-keys /opt/concourse/authorized_worker_keys \
--postgres-user=concourse \
--postgres-password=DBPassword \
--postgres-database=concourse \
--external-url http://192.0.2.1:8080
Ändra användarnamn och lösenord för den basic-auth
om så önskas. Se till att sökvägen till nyckelfilerna är korrekt och se till att rätt värde för användarnamn och lösenord i PostgreSQL-databaskonfigurationen tillhandahålls.
Obs : ATC lyssnar på standardporten 8080
och TSA lyssnar på porten 2222
. Om autentisering inte önskas, skicka --no-really-i-dont-want-any-auth
alternativet efter att du har tagit bort de grundläggande autentiseringsalternativen.
När webbservern har startat kommer följande utdata att visas.
{"timestamp":"1503657859.661247969","source":"tsa","message":"tsa.listening","log_level":1,"data":{}}
{"timestamp":"1503657859.666907549","source":"atc","message":"atc.listening","log_level":1,"data":{"debug":"127.0.0.1:8079","http":"0.0.0.0:8080"}}
Stoppa servern för nu, eftersom några fler saker fortfarande måste ställas in.
Starta Concourse CI Worker.
sudo concourse worker \
--work-dir /opt/concourse/worker \
--tsa-host 127.0.0.1 \
--tsa-public-key /opt/concourse/tsa_host_key.pub \
--tsa-worker-private-key /opt/concourse/worker_key
Ovanstående kommando förutsätter att TSA körs på localhost och lyssnar på standardporten 2222
.
Även om Concourse webb och worker enkelt kan startas med kommandona ovan, rekommenderas det att använda Systemd för att hantera servern.
Att använda Systemd-tjänsten för att hantera programmet säkerställer att programmet startas automatiskt vid fel och vid uppstart. Concourse-servern tar inte data från någon konfigurationsfil, men den kan komma åt data från miljövariabler. Istället för att ställa in globala miljövariabler, skapa en ny fil för att lagra miljövariablerna och skicka sedan variablerna till Concourse CI med hjälp av Systemd-tjänsten.
Skapa en ny miljöfil för Concourse web.
sudo nano /opt/concourse/web.env
Fyll i filen.
CONCOURSE_SESSION_SIGNING_KEY=/opt/concourse/session_signing_key
CONCOURSE_TSA_HOST_KEY=/opt/concourse/tsa_host_key
CONCOURSE_TSA_AUTHORIZED_KEYS=/opt/concourse/authorized_worker_keys
CONCOURSE_POSTGRES_USER=concourse
CONCOURSE_POSTGRES_PASSWORD=DBPassword
CONCOURSE_POSTGRES_DATABASE=concourse
CONCOURSE_BASIC_AUTH_USERNAME=admin
CONCOURSE_BASIC_AUTH_PASSWORD=StrongPass
CONCOURSE_EXTERNAL_URL=http://192.0.2.1:8080
Ändra användarnamn och lösenord för den BASIC_AUTH
om så önskas. Se till att sökvägen till nyckelfilerna är korrekt och se till att rätt värde för användarnamn och lösenord i PostgreSQL-databaskonfigurationen tillhandahålls.
Skapa på samma sätt en miljöfil för arbetaren.
sudo nano /opt/concourse/worker.env
Fyll i filen.
CONCOURSE_WORK_DIR=/opt/concourse/worker
CONCOURSE_TSA_WORKER_PRIVATE_KEY=/opt/concourse/worker_key
CONCOURSE_TSA_PUBLIC_KEY=/opt/concourse/tsa_host_key.pub
CONCOURSE_TSA_HOST=127.0.0.1
Eftersom miljöfilerna innehåller användarnamn och lösenord, ändra dess behörigheter så att de inte kan nås av andra användare.
sudo chmod 600 /opt/concourse/*.env
Skapa nu en ny användare för Concourse för att köra webbmiljön. Detta kommer att säkerställa att webbservern körs i en isolerad miljö.
sudo useradd concourse
Ge Concourse-användaren äganderätt över Concourse CI-filens katalog.
sudo chown -R concourse:concourse /opt/concourse
Skapa en ny systemd servicefil för Concourse webbtjänst.
sudo nano /etc/systemd/system/concourse-web.service
Fyll i filen.
[Unit]
Description=Concourse CI web server
[Service]
Type=simple
User=concourse
Group=concourse
Restart=on-failure
EnvironmentFile=/opt/concourse/web.env
ExecStart=/usr/bin/concourse web
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=concourse_web
[Install]
WantedBy=multi-user.target
Spara och stäng filen. Skapa en ny tjänstefil för Concourse worker-tjänsten.
sudo nano /etc/systemd/system/concourse-worker.service
Fyll i filen.
[Unit]
Description=Concourse CI worker process
[Service]
Type=simple
Restart=on-failure
EnvironmentFile=/opt/concourse/worker.env
ExecStart=/usr/bin/concourse worker
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=concourse_worker
[Install]
WantedBy=multi-user.target
Webb- och arbetartjänsten kan nu startas direkt.
sudo systemctl start concourse-web concourse-worker
Kör följande för att aktivera arbets- och webbprocessen att starta automatiskt vid uppstart.
sudo systemctl enable concourse-worker concourse-web
För att kontrollera status för tjänster, kör följande.
sudo systemctl status concourse-worker concourse-web
Om tjänsten inte startas, eller i FAILED
tillståndet, ta bort cachen från /tmp
katalogen.
sudo rm -rf /tmp/*
Starta om tjänsterna.
sudo systemctl restart concourse-worker concourse-web
Observera att den här gången har tjänsterna startat korrekt. Resultatet vid verifiering av tjänsternas status kommer att likna följande.
[user@vultr ~]$ sudo systemctl status concourse-worker concourse-web
● concourse-worker.service - Concourse CI worker process
Loaded: loaded (/etc/systemd/system/concourse-worker.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2017-08-26 07:27:37 UTC; 55s ago
Main PID: 3037 (concourse)
CGroup: /system.slice/concourse-worker.service
└─3037 /usr/bin/concourse worker
Aug 26 07:27:42 vultr.guest concourse_worker[3037]: {"timestamp":"1503732462.934722900","source":"tsa","message":"t...""}}
Aug 26 07:27:42 vultr.guest concourse_worker[3037]: {"timestamp":"1503732462.941227913","source":"guardian","messag...0"}}
...
● concourse-web.service - Concourse CI web server
Loaded: loaded (/etc/systemd/system/concourse-web.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2017-08-26 07:27:37 UTC; 55s ago
Main PID: 3036 (concourse)
CGroup: /system.slice/concourse-web.service
└─3036 /usr/bin/concourse web
Aug 26 07:27:57 vultr.guest concourse_web[3036]: {"timestamp":"1503732477.925554752","source":"tsa","message":"tsa...ve"}}
Aug 26 07:28:02 vultr.guest concourse_web[3036]: {"timestamp":"1503732482.925430775","source":"tsa","message":"tsa...ve"}}
...
Hint: Some lines were ellipsized, use -l to show in full.
När servern väl har startat kan webbgränssnittet för Concourse CI nås genom att gå till http://192.0.2.1:8080
i vilken webbläsare som helst. Logga in med det användarnamn och lösenord som finns i miljöfilen.
För att ansluta till servern med Fly, kör följande.
fly -t my-ci login -c http://192.0.2.1:8080
Kommandot ovan används för den första inloggningen till servern. -t
används för att ange ett målnamn. ersätt my-ci
med valfritt målnamn. Ovanstående kommando kommer att logga in på standardteamet main
. Det kommer att fråga efter användarnamnet och lösenordet som finns i miljöfilen.
Utgången kommer att se ut som följande.
[user@vultr ~]$ fly -t my-ci login -c http://192.0.2.1:8080
logging in to team 'main'
username: admin
password:
target saved
Målinloggningen sparas i en dag. Efter det kommer den att löpa ut.
Att logga ut omedelbart.
fly -t my-ci logout
Fly kan användas för att logga in på servern utanför nätverket, men bara om servern har en offentlig IP-adress och den är åtkomlig utanför nätverket. Windows- eller MacOS-binären kan laddas ner från nedladdningssidan eller från serverns webbgränssnitt.
Inloggningar och annan information som skickas via webbgränssnittet till Concourse-servern är inte säkrad. Anslutningen är inte krypterad. En Nginx omvänd proxy kan ställas in med en Let's Encrypt gratis SSL.
Installera Nginx.
sudo apt -y install nginx
Starta Nginx och låt den starta automatiskt vid uppstart.
sudo systemctl start nginx
sudo systemctl enable nginx
Lägg till Certbot-förvaret.
sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update
Installera Certbot, som är klientapplikationen för Let's Encrypt CA.
sudo apt -y install certbot
Obs : För att erhålla certifikat från Let's Encrypt CA måste domänen som certifikaten ska genereras för peka mot servern. Om inte, gör de nödvändiga ändringarna i domänens DNS-poster och vänta tills DNS:n sprider sig innan du gör certifikatbegäran igen. Certbot kontrollerar domänmyndigheten innan certifikaten tillhandahålls.
Generera SSL-certifikaten.
sudo certbot certonly --webroot -w /var/www/html -d ci.example.com
De genererade certifikaten kommer sannolikt att lagras i /etc/letsencrypt/live/ci.example.com/
katalogen. SSL-certifikatet kommer att lagras som fullchain.pem
och den privata nyckeln kommer att lagras som privkey.pem
.
Låt oss kryptera certifikat går ut om 90 dagar, så det rekommenderas att automatisk förnyelse för certifikaten ställs in med cronjobs. Cron är en systemtjänst som används för att köra periodiska uppgifter.
Öppna cron-jobbfilen.
sudo crontab -e
Lägg till följande rad i slutet av filen.
30 5 * * * /usr/bin/certbot renew --quiet
Ovanstående cron-jobb kommer att köras varje dag klockan 5:30. Om certifikatet löper ut kommer det automatiskt att förnyas.
Skapa en ny virtuell värd.
sudo nano /etc/nginx/sites-available/concourse
Fyll i filen.
server {
listen 80;
server_name ci.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443;
server_name ci.example.com;
ssl_certificate /etc/letsencrypt/live/ci.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/ci.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/concourse.access.log;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://localhost:8080;
proxy_read_timeout 90;
proxy_redirect http://localhost:8080 https://ci.example.com;
}
}
Obs : Ersätt ci.example.com
med den faktiska domänen.
Aktivera konfigurationsfilen.
sudo ln -s /etc/nginx/sites-available/concourse /etc/nginx/sites-enabled/concourse
Redigera miljöfilen som skapats för concourse Web.
sudo nano /opt/concourse/web.env
Ändra värdet på CONCOURSE_EXTERNAL_URL
och lägg till ytterligare två rader i slutet av filen.
CONCOURSE_EXTERNAL_URL=https://ci.example.com
CONCOURSE_BIND_IP=127.0.0.1
CONCOURSE_BIND_PORT=8080
Spara filen och starta om Concourse Web, Worker och Nginx.
sudo systemctl restart concourse-worker concourse-web nginx
All data som skickas till och från webbläsaren är nu säkrad med SSL-krypteringar.
Jenkins är ett populärt CI-verktyg (Continuous Integration) med öppen källkod som används i stor utsträckning för projektutveckling, implementering och automatisering. Denna artikel vill
Använder du ett annat system? Introduktion Continuous Integration är en DevOps mjukvaruutvecklingspraxis som gör det möjligt för utvecklarna att ofta slå samman
Använder du ett annat system? Ansible är ett verktyg med öppen källkod för att automatisera uppgifter. Den hanterar konfigurationen av dina Linux- och Windows-servrar. Det Fungerar
Använder du ett annat system? GoCD är ett system för kontinuerlig leverans och automatisering med öppen källkod. Den låter dig modellera komplexa arbetsflöden med hjälp av dess parallella an
Även om SaltStack är ett utmärkt verktyg för att köra operationer på många servrar samtidigt, stöder det också per-värddefinierade konfigurationsförinställningar lagrade i en
Använder du ett annat system? Ansible är ett verktyg med öppen källkod för att automatisera uppgifter. Den hanterar konfigurationen av dina Linux- och Windows-servrar. Det Fungerar
Inledning Drone är en automatiserad, kontinuerlig test- och leveransplattform som körs på din egen infrastruktur. Drönare stöder alla språk, tjänster o
Vad är en lastbalanserare Load Balancers sitter framför din applikation och distribuerar inkommande trafik över flera instanser av din applikation. Fo
Använder du ett annat system? Foreman är ett gratis och öppen källkodsverktyg som hjälper dig med konfiguration och hantering av fysiska och virtuella servrar. Forema
SaltStack, eller Salt, är en populär lösning för konfigurationshantering med öppen källkod som kan användas för att implementera fjärrexekvering, konfigurationshantering, torsk
Inledning Strider CD är en plattform för kontinuerlig distribution med öppen källkod. Applikationen är skriven i Node.js och använder MongoDB som lagringsbackend. Kliva
Inledning Chocolatey tar med pakethantering som gör det enkelt att administrera programvara och beroenden på Linux, till Windows. Du kan snabbt och enkelt
Vad är Packer? Packer är ett serverbildverktyg utvecklat av HashiCorp. Serveravbildning; eller alternativt oföränderlig infrastruktur; är ett populärt alternativ
Använder du ett annat system? Introduktion Continuous Integration är en DevOps mjukvaruutvecklingspraxis som gör det möjligt för utvecklarna att ofta slå samman
Det finns många sätt att automatisera processen för att ställa in och konfigurera en box. Av någon anledning, om hela vårt system vid denna tidpunkt består av bara
Använder du ett annat system? Foreman är ett gratis och öppen källkodsverktyg som hjälper dig med konfiguration och hantering av fysiska och virtuella servrar. Forema
SaltStack är ett pythonbaserat konfigurationshanteringsprogram som är optimerat för automatisering av konfigurationsfiler, distributioner och allt annat
Artificiell intelligens är inte i framtiden, det är här i nuet I den här bloggen Läs hur Artificiell intelligens-applikationer har påverkat olika sektorer.
Är du också ett offer för DDOS-attacker och förvirrad över de förebyggande metoderna? Läs den här artikeln för att lösa dina frågor.
Du kanske har hört att hackare tjänar mycket pengar, men har du någonsin undrat hur de tjänar den typen av pengar? låt oss diskutera.
Vill du se revolutionerande uppfinningar av Google och hur dessa uppfinningar förändrade livet för varje människa idag? Läs sedan till bloggen för att se uppfinningar av Google.
Konceptet med att självkörande bilar ska ut på vägarna med hjälp av artificiell intelligens är en dröm vi har ett tag nu. Men trots flera löften finns de ingenstans att se. Läs den här bloggen för att lära dig mer...
När vetenskapen utvecklas i snabb takt och tar över en hel del av våra ansträngningar, ökar också riskerna för att utsätta oss för en oförklarlig singularitet. Läs, vad singularitet kan betyda för oss.
Lagringsmetoderna för data har utvecklats kan vara sedan födelsen av data. Den här bloggen tar upp utvecklingen av datalagring på basis av en infografik.
Läs bloggen för att känna till olika lager i Big Data Architecture och deras funktionaliteter på enklaste sätt.
I denna digitala värld har smarta hemenheter blivit en avgörande del av livet. Här är några fantastiska fördelar med smarta hemenheter om hur de gör vårt liv värt att leva och enklare.
Nyligen släppte Apple macOS Catalina 10.15.4, en tilläggsuppdatering för att åtgärda problem, men det verkar som om uppdateringen orsakar fler problem som leder till att mac-datorer blir murade. Läs den här artikeln för att lära dig mer