Kako namestiti Jenkins na CentOS 7
Jenkins je priljubljeno odprtokodno orodje CI (Continuous Integration), ki se pogosto uporablja za razvoj projektov, uvajanje in avtomatizacijo. Ta članek bo
Neprekinjena integracija je praksa razvoja programske opreme DevOps, ki razvijalcem omogoča pogosto združevanje spremenjene kode v skupni repozitorij večkrat na dan. Po vsaki združitvi se izvedejo samodejne gradnje in preizkusi za odkrivanje težav v kodi. Razvijalcem omogoča, da hitro najdejo in odpravijo napake, da izboljšajo kakovost programske opreme in zagotovijo neprekinjeno dostavo programske opreme. Preklapljanje sem in nazaj iz Concourse je zelo enostavno, saj vso svojo konfiguracijo hrani v deklarativnih datotekah, ki jih je mogoče preveriti v nadzoru različic. Zagotavlja tudi spletni uporabniški vmesnik, ki interaktivno prikazuje informacije o gradnji.
Ne pozabite zamenjati vseh pojavov 192.0.2.1
in ci.example.com
z vašim dejanskim javnim IP naslovom Vultr in dejanskim imenom domene.
Posodobite svoj osnovni sistem z uporabo priročnika Kako posodobiti Ubuntu 16.04 . Ko je vaš sistem posodobljen, nadaljujte z namestitvijo PostgreSQL.
PostgreSQL je sistem objektne relacijske baze podatkov. Concourse shrani svoje podatke cevovoda v zbirko podatkov PostgreSQL. Dodajte repozitorij PostgreSQL.
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
Namestite strežnik baze podatkov PostgreSQL.
sudo apt -y install postgresql
Zaženite strežnik PostgreSQL in omogočite, da se samodejno zažene ob zagonu.
sudo systemctl start postgresql
sudo systemctl enable postgresql
Spremenite geslo za privzetega uporabnika PostgreSQL.
sudo passwd postgres
Prijavite se kot uporabnik PostgreSQL:
sudo su - postgres
Ustvarite novega uporabnika PostgreSQL za Concourse CI.
createuser concourse
Opomba : Privzeti uporabnik PostgreSQL se lahko uporablja za preverjanje pristnosti baze podatkov, vendar je priporočljivo uporabiti namenskega uporabnika za preverjanje pristnosti baze podatkov Concourse v produkcijski nastavitvi.
PostgreSQL ponuja lupino za izvajanje poizvedb v bazi podatkov. Preklopite na lupino PostgreSQL.
psql
Nastavite geslo za novo ustvarjenega uporabnika baze podatkov Concourse.
ALTER USER concourse WITH ENCRYPTED password 'DBPassword';
Pomembno : Zamenjajte DBPassword
z močnim geslom. Zapišite si geslo, saj bo potrebno pozneje v vadnici.
Ustvarite novo bazo podatkov za Concourse.
CREATE DATABASE concourse OWNER concourse;
Zapustite psql
lupino.
\q
Preklopite na uporabnika sudo s trenutnega postgres
uporabnika.
exit
Prenesite najnovejšo različico izvedljive datoteke Concourse in jo shranite /usr/bin
, da jo boste lahko izvajali neposredno. Najnovejšo različico binarnih datotek Concourse in Fly lahko najdete na strani za prenos Concourse . Nove izdaje so zelo pogoste. Zamenjajte spodnjo povezavo z novo povezavo za najnovejšo različico.
sudo wget https://github.com/concourse/concourse/releases/download/v3.10.0/concourse_linux_amd64 -O /usr/bin/concourse
Podobno prenesite najnovejšo različico izvedljive datoteke fly in jo shranite v /usr/bin
.
sudo wget https://github.com/concourse/concourse/releases/download/v3.10.0/fly_linux_amd64 -O /usr/bin/fly
Fly je vmesnik ukazne vrstice, ki se uporablja za povezavo z API-jem ATC Concourse CI. Fly je na voljo za več platform, kot so Linux, Windows in MacOS.
Dodeli dovoljenje za izvajanje prenesenim concourse
in fly
binarnim datotekam.
sudo chmod +x /usr/bin/concourse /usr/bin/fly
Preverite, ali Concourse in Fly delujeta pravilno, tako da preverite njihovo različico.
concourse -version
fly -version
Pari ključev RSA zagotavljajo način za šifriranje komunikacije med komponentami Concourse.
Da bi Concourse deloval, morajo biti ustvarjeni vsaj trije pari ključev. Za šifriranje podatkov seje ustvarite datoteko session_signing_key
. Ta ključ bo TSA uporabljal tudi za podpisovanje zahtev, ki jih poda ATC. Če želite zavarovati strežnik TSA SSH, ustvarite datoteko tsa_host_key
. Na koncu ustvarite worker_key
za vsakega delavca.
Ustvarite nov imenik za shranjevanje ključev in konfiguracije, povezane s Concourse CI.
sudo mkdir /opt/concourse
Ustvarite zahtevane ključe.
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
Pooblastite delavčev javni ključ tako, da kopirate njegovo vsebino v authorized_worker_keys
datoteko.
sudo cp /opt/concourse/worker_key.pub /opt/concourse/authorized_worker_keys
Concourse ponuja dve ločeni komponenti, ki ju je treba zagnati: splet in delavec. Zaženite spletno mesto Concourse.
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
basic-auth
Po želji spremenite uporabniško ime in geslo za . Prepričajte se, da je pot do datotek ključev pravilna in da je na voljo pravilna vrednost za uporabniško ime in geslo v konfiguraciji baze podatkov PostgreSQL.
Opomba : ATC bo poslušal privzeta vrata, 8080
TSA pa vrata 2222
. Če preverjanje pristnosti ni zaželeno, prenesite --no-really-i-dont-want-any-auth
možnost, potem ko odstranite osnovne možnosti preverjanja pristnosti.
Ko se spletni strežnik zažene, se prikaže naslednji rezultat.
{"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"}}
Za zdaj ustavite strežnik, saj je treba še nekaj stvari nastaviti.
Zaženite 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
Zgornji ukaz bo predvideval, da TSA deluje na lokalnem gostitelju in posluša privzeta vrata 2222
.
Čeprav se lahko splet in delavec Concourse enostavno zaženete z uporabo zgornjih ukazov, je za upravljanje strežnika priporočljivo uporabiti Systemd.
Uporaba storitve Systemd za upravljanje aplikacije zagotavlja, da se aplikacija samodejno zažene ob napakah in ob zagonu. Strežnik Concourse ne jemlje podatkov iz nobene konfiguracijske datoteke, lahko pa dostopa do podatkov iz spremenljivk okolja. Namesto nastavljanja globalnih spremenljivk okolja ustvarite novo datoteko za shranjevanje spremenljivk okolja in nato s storitvijo Systemd posredujte spremenljivke Concourse CI.
Ustvarite novo okoljsko datoteko za Concourse web.
sudo nano /opt/concourse/web.env
Izpolnite datoteko.
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
BASIC_AUTH
Po želji spremenite uporabniško ime in geslo za . Prepričajte se, da je pot do datotek ključev pravilna in da je na voljo pravilna vrednost za uporabniško ime in geslo v konfiguraciji baze podatkov PostgreSQL.
Podobno ustvarite okoljsko datoteko za delavca.
sudo nano /opt/concourse/worker.env
Izpolnite datoteko.
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
Ker datoteke okolja vsebujejo uporabniška imena in gesla, spremenite njihova dovoljenja, tako da do njih ne morejo dostopati drugi uporabniki.
sudo chmod 600 /opt/concourse/*.env
Zdaj ustvarite novega uporabnika za Concourse za zagon spletnega okolja. To bo zagotovilo, da spletni strežnik deluje v izoliranem okolju.
sudo useradd concourse
Dodelite uporabniku concourse lastništvo nad imenikom datoteke Concourse CI.
sudo chown -R concourse:concourse /opt/concourse
Ustvarite novo datoteko storitve systemd za spletno storitev Concourse.
sudo nano /etc/systemd/system/concourse-web.service
Izpolnite datoteko.
[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
Shranite in zaprite datoteko. Ustvarite novo storitveno datoteko za storitev Concourse Worker.
sudo nano /etc/systemd/system/concourse-worker.service
Izpolnite datoteko.
[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
Spletno in delovno storitev je zdaj mogoče zagnati neposredno.
sudo systemctl start concourse-web concourse-worker
Če želite omogočiti, da se delovni in spletni proces samodejno zažene ob zagonu, zaženite naslednje.
sudo systemctl enable concourse-worker concourse-web
Če želite preveriti stanje storitev, zaženite naslednje.
sudo systemctl status concourse-worker concourse-web
Če storitev ni zagnana ali v FAILED
stanju, odstranite predpomnilnik iz /tmp
imenika.
sudo rm -rf /tmp/*
Znova zaženite storitve.
sudo systemctl restart concourse-worker concourse-web
Upoštevajte, da so se tokrat storitve začele pravilno. Izhod ob preverjanju statusa storitev bo podoben naslednjemu.
[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.
Ko se strežnik zažene, lahko do spletnega vmesnika Concourse CI dostopate http://192.0.2.1:8080
v katerem koli brskalniku. Prijavite se z uporabniškim imenom in geslom, navedenim v datoteki okolja.
Če se želite povezati s strežnikom s Flyjem, zaženite naslednje.
fly -t my-ci login -c http://192.0.2.1:8080
Zgornji ukaz se uporablja za začetno prijavo v strežnik. -t
se uporablja za podajanje ciljnega imena. zamenjajte my-ci
s poljubnim želenim imenom cilja. Zgornji ukaz se bo prijavil v privzeto ekipo main
. Zahteval bo uporabniško ime in geslo, ki sta navedena v datoteki okolja.
Izhod bo videti takole.
[user@vultr ~]$ fly -t my-ci login -c http://192.0.2.1:8080
logging in to team 'main'
username: admin
password:
target saved
Ciljna prijava bo shranjena za en dan. Po tem bo potekel.
Za takojšnjo odjavo.
fly -t my-ci logout
Fly se lahko uporablja za prijavo v strežnik zunaj omrežja, vendar le, če ima strežnik javni IP naslov in je dostopen izven omrežja. Binarno datoteko Windows ali MacOS lahko prenesete s spletnega mesta za prenos ali iz spletnega uporabniškega vmesnika strežnika.
Prijave in druge informacije, poslane prek spletnega uporabniškega vmesnika na strežnik Concourse, niso zavarovane. Povezava ni šifrirana. Povratni proxy Nginx je mogoče nastaviti z brezplačnim SSL Let's Encrypt.
Namestite Nginx.
sudo apt -y install nginx
Zaženite Nginx in omogočite, da se samodejno zažene ob zagonu.
sudo systemctl start nginx
sudo systemctl enable nginx
Dodajte repozitorij Certbot.
sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update
Namestite Certbot, ki je odjemalska aplikacija za Let's Encrypt CA.
sudo apt -y install certbot
Opomba : Če želite pridobiti potrdila od Let's Encrypt CA, mora biti domena, za katero naj bi bila ustvarjena potrdila, usmerjena proti strežniku. Če ne, naredite potrebne spremembe v zapisih DNS domene in počakajte, da se DNS razširi, preden znova pošljete zahtevo za potrdilo. Certbot preveri avtoriteto domene, preden zagotovi potrdila.
Ustvarite SSL potrdila.
sudo certbot certonly --webroot -w /var/www/html -d ci.example.com
Ustvarjena potrdila bodo verjetno shranjena v /etc/letsencrypt/live/ci.example.com/
imeniku. Potrdilo SSL bo shranjeno kot, fullchain.pem
zasebni ključ pa kot privkey.pem
.
Potrdila Let's Encrypt potečejo v 90 dneh, zato je priporočljivo, da se samodejna obnova potrdil nastavi s cronjobs. Cron je sistemska storitev, ki se uporablja za izvajanje občasnih opravil.
Odprite datoteko opravila cron.
sudo crontab -e
Dodajte naslednjo vrstico na konec datoteke.
30 5 * * * /usr/bin/certbot renew --quiet
Zgornje opravilo cron se bo izvajalo vsak dan ob 5.30. Če potrdilo poteče, se samodejno podaljša.
Ustvarite novega virtualnega gostitelja.
sudo nano /etc/nginx/sites-available/concourse
Izpolnite datoteko.
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;
}
}
Opomba : Zamenjajte ci.example.com
z dejansko domeno.
Aktivirajte konfiguracijsko datoteko.
sudo ln -s /etc/nginx/sites-available/concourse /etc/nginx/sites-enabled/concourse
Uredite datoteko okolja, ki je bila ustvarjena za Concours Web.
sudo nano /opt/concourse/web.env
Spremenite vrednost CONCOURSE_EXTERNAL_URL
in dodajte še dve vrstici na koncu datoteke.
CONCOURSE_EXTERNAL_URL=https://ci.example.com
CONCOURSE_BIND_IP=127.0.0.1
CONCOURSE_BIND_PORT=8080
Shranite datoteko in znova zaženite Concourse Web, Worker in Nginx.
sudo systemctl restart concourse-worker concourse-web nginx
Vsi podatki, poslani v brskalnik in iz njega, so zdaj zavarovani s šifriranjem SSL.
Jenkins je priljubljeno odprtokodno orodje CI (Continuous Integration), ki se pogosto uporablja za razvoj projektov, uvajanje in avtomatizacijo. Ta članek bo
Uporaba drugega sistema? Uvod Neprekinjena integracija je praksa razvoja programske opreme DevOps, ki razvijalcem omogoča pogosto združevanje
Uporaba drugega sistema? Ansible je odprtokodno orodje za avtomatizacijo opravil. Upravlja konfiguracijo vaših strežnikov Linux in Windows. Deluje
Uporaba drugega sistema? GoCD je odprtokodni sistem za neprekinjeno dostavo in avtomatizacijo. Omogoča vam modeliranje zapletenih delovnih tokov z uporabo njegovega vzporednega an
Čeprav je SaltStack odlično orodje za hkratno izvajanje operacij na več strežnikih, podpira tudi prednastavitve konfiguracije, določene za posamezne gostitelje, shranjene v
Uporaba drugega sistema? Ansible je odprtokodno orodje za avtomatizacijo opravil. Upravlja konfiguracijo vaših strežnikov Linux in Windows. Deluje
Uvod Drone je avtomatizirana platforma za stalno testiranje in dostavo, ki deluje na vaši lastni infrastrukturi. Drone podpira kateri koli jezik, storitev o
Kaj je balansirnik obremenitve Uravnavalniki obremenitve sedijo pred vašo aplikacijo in razporejajo dohodni promet po več primerkih vaše aplikacije. Fo
Uporaba drugega sistema? Foreman je brezplačno in odprtokodno orodje, ki vam pomaga pri konfiguraciji in upravljanju fizičnih in virtualnih strežnikov. Forema
SaltStack ali Salt je priljubljena odprtokodna rešitev za upravljanje konfiguracije, ki se lahko uporablja za izvajanje oddaljenega izvajanja, upravljanja konfiguracije, cod
Uvod Strider CD je odprtokodna platforma za neprekinjeno uvajanje. Aplikacija je napisana v Node.js in uporablja MongoDB kot ozadje za shranjevanje. Korak
Uvod Chocolatey prinaša upravljanje paketov, ki olajša upravljanje programske opreme in odvisnosti v sistemu Windows. Lahko hitro in enostavno
Kaj je Packer? Packer je orodje za slikanje strežnikov, ki ga je razvil HashiCorp. Strežniško slikanje; ali pa nespremenljiva infrastruktura; je priljubljena alternativa
Uporaba drugega sistema? Uvod Neprekinjena integracija je praksa razvoja programske opreme DevOps, ki razvijalcem omogoča pogosto združevanje
Obstaja veliko načinov za avtomatizacijo postopka nastavitve in konfiguracije škatle. Iz kakršnega koli razloga, če je naš celoten sistem na tej točki sestavljen iz samo
Uporaba drugega sistema? Foreman je brezplačno in odprtokodno orodje, ki vam pomaga pri konfiguraciji in upravljanju fizičnih in virtualnih strežnikov. Forema
SaltStack je program za upravljanje konfiguracije, ki temelji na pythonu, ki je optimiziran za avtomatizacijo konfiguracijskih datotek, razmestitev in vsega drugega.
Umetna inteligenca ni v prihodnosti, tukaj je prav v sedanjosti. V tem blogu preberite, kako so aplikacije umetne inteligence vplivale na različne sektorje.
Ste tudi vi žrtev DDOS napadov in ste zmedeni glede načinov preprečevanja? Preberite ta članek, če želite rešiti svoja vprašanja.
Morda ste že slišali, da hekerji zaslužijo veliko denarja, a ste se kdaj vprašali, kako zaslužijo takšen denar? razpravljajmo.
Ali želite videti revolucionarne izume Googla in kako so ti izumi danes spremenili življenje vsakega človeka? Nato preberite v blogu in si oglejte Googlove izume.
Koncept samovozečih avtomobilov, ki zapeljejo na ceste s pomočjo umetne inteligence, so sanje, ki jih imamo že nekaj časa. A kljub številnim obljubam jih ni nikjer. Preberite ta blog, če želite izvedeti več…
Ker se znanost hitro razvija in prevzame veliko naših prizadevanj, se povečuje tudi tveganje, da se podvržemo nerazložljivi singularnosti. Preberite, kaj bi za nas lahko pomenila singularnost.
Metode shranjevanja podatkov so se lahko razvijale od rojstva podatkov. Ta blog pokriva razvoj shranjevanja podatkov na podlagi infografike.
Preberite blog, če želite na najpreprostejši način spoznati različne plasti v arhitekturi velikih podatkov in njihove funkcionalnosti.
V tem digitalno vodenem svetu so pametne naprave za dom postale ključni del življenja. Tukaj je nekaj neverjetnih prednosti pametnih naprav za dom o tem, kako naredijo naše življenje vredno življenja in poenostavijo.
Pred kratkim je Apple izdal macOS Catalina 10.15.4 dopolnilno posodobitev za odpravo težav, vendar se zdi, da posodobitev povzroča več težav, ki vodijo do opečenja računalnikov Mac. Preberite ta članek, če želite izvedeti več