Jenkinsi installimine CentOS 7-sse
Jenkins on populaarne avatud lähtekoodiga CI (Continuous Integration) tööriist, mida kasutatakse laialdaselt projekti arendamiseks, juurutamiseks ja automatiseerimiseks. See artikkel kavatseb
Pidev integreerimine on DevOpsi tarkvaraarenduspraktika, mis võimaldab arendajatel sageli liita muudetud koodi jagatud hoidlasse mitu korda päevas. Pärast iga ühendamist tehakse koodis esinevate probleemide tuvastamiseks automaatsed ehitused ja testid. See võimaldab arendajatel vigu kiiresti leida ja lahendada, et parandada tarkvara kvaliteeti ja pakkuda tarkvara pidevat tarnimist. Concourse'ist edasi-tagasi lülitumine on väga lihtne, kuna see säilitab kogu oma konfiguratsiooni deklaratiivsetes failides, mida saab kontrollida versioonikontrollis. See pakub ka veebikasutajaliidest, mis kuvab interaktiivselt ehitusteavet.
Kindlasti asendada kõik esinemised 192.0.2.1
ja ci.example.com
oma tegeliku Vultr avaliku IP aadressi ja domeeni nimega.
Värskendage oma baassüsteemi, kasutades juhendit Kuidas värskendada Ubuntu 16.04 . Kui teie süsteem on värskendatud, jätkake PostgreSQL-i installimisega.
PostgreSQL on objektide relatsiooniline andmebaasisüsteem. Concourse salvestab oma konveieri andmed PostgreSQL-i andmebaasi. Lisage PostgreSQL-i hoidla.
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
Installige PostgreSQL andmebaasiserver.
sudo apt -y install postgresql
Käivitage PostgreSQL-server ja lubage see alglaadimisel automaatselt käivituda.
sudo systemctl start postgresql
sudo systemctl enable postgresql
Muutke PostgreSQL-i vaikekasutaja parooli.
sudo passwd postgres
Logige sisse PostgreSQL-i kasutajana:
sudo su - postgres
Looge Concourse CI jaoks uus PostgreSQL-i kasutaja.
createuser concourse
Märkus : Vaikimisi PostgreSQL kasutaja saab kasutada autentimiseks andmebaasi, kuid see on soovitatav kasutada spetsiaalset kasutaja autentimiseks Concourse andmebaasi tootmise setup.
PostgreSQL pakub andmebaasis päringute käitamiseks kesta. Lülituge PostgreSQL-i kestale.
psql
Määrake vastloodud Concourse'i andmebaasi kasutaja parool.
ALTER USER concourse WITH ENCRYPTED password 'DBPassword';
Tähtis : asendage DBPassword
tugeva parooliga. Märkige parool üles, kuna seda nõutakse hiljem õpetuses.
Looge Concourse'i jaoks uus andmebaas.
CREATE DATABASE concourse OWNER concourse;
Väljuge psql
kestast.
\q
Lülituge praeguselt postgres
kasutajalt sudo kasutajale.
exit
Laadige alla Concourse'i käivitatava faili uusim versioon ja salvestage see, /usr/bin
et seda saaks otse käivitada. Concourse'i ja Fly binaarfailide uusima versiooni leiate Concourse'i allalaadimislehelt . Uued väljaanded ilmuvad väga sageli. Asendage allolev link uue lingiga uusima versiooni jaoks.
sudo wget https://github.com/concourse/concourse/releases/download/v3.10.0/concourse_linux_amd64 -O /usr/bin/concourse
Samamoodi laadige alla käivitatava faili uusim versioon ja salvestage see /usr/bin
.
sudo wget https://github.com/concourse/concourse/releases/download/v3.10.0/fly_linux_amd64 -O /usr/bin/fly
Fly on käsurea liides, mida kasutatakse Concourse CI ATC API-ga ühenduse loomiseks. Fly on saadaval mitmele platvormile, nagu Linux, Windows ja MacOS.
Määrake allalaaditud concourse
ja fly
kahendfailidele täitmisõigus.
sudo chmod +x /usr/bin/concourse /usr/bin/fly
Kontrollige, kas Concourse ja Fly töötavad õigesti, kontrollides nende versiooni.
concourse -version
fly -version
RSA võtmepaarid pakuvad võimalust Concourse'i komponentide vahelise suhtluse krüpteerimiseks.
Et Concourse töötaks, tuleb genereerida vähemalt kolm paari võtmeid. Seansi andmete krüptimiseks looge session_signing_key
. Seda võtit kasutab TSA ka ATC-le esitatavate taotluste allkirjastamiseks. TSA SSH-serveri kaitsmiseks looge tsa_host_key
. Lõpuks genereerige worker_key
iga töötaja jaoks.
Looge Concourse CI-ga seotud võtmete ja konfiguratsiooni salvestamiseks uus kataloog.
sudo mkdir /opt/concourse
Looge vajalikud võtmed.
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
Autoriseerige töötajate avalik võti, kopeerides selle sisu authorized_worker_keys
faili.
sudo cp /opt/concourse/worker_key.pub /opt/concourse/authorized_worker_keys
Concourse sisaldab kahte eraldi komponenti, mida tuleb käivitada: veeb ja töötaja. Käivitage Concoursi veebileht.
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
Soovi korral muutke kasutajanime ja parooli . Veenduge, et võtmefailide tee on õige, ja veenduge, et PostgreSQL-i andmebaasi konfiguratsioonis on kasutajanime ja parooli õige väärtus.
Märkus . ATC kuulab vaikeporti 8080
ja TSA kuulab porti 2222
. Kui autentimist ei soovi, edastage see --no-really-i-dont-want-any-auth
valik pärast põhiliste autentimisvalikute eemaldamist.
Kui veebiserver on käivitatud, kuvatakse järgmine väljund.
{"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"}}
Peatage server praegu, kuna veel mõned asjad peavad olema seadistatud.
Käivitage 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
Ülaltoodud käsk eeldab, et TSA töötab localhostis ja kuulab vaikeporti 2222
.
Kuigi Concourse'i veebi ja töötajat saab ülaltoodud käskude abil hõlpsasti käivitada, on serveri haldamiseks soovitatav kasutada Systemd.
Süsteemi teenuse kasutamine rakenduse haldamiseks tagab rakenduse automaatse käivitamise tõrgete korral ja alglaadimise ajal. Concourse'i server ei võta andmeid ühestki konfiguratsioonifailist, kuid pääseb juurde keskkonnamuutujate andmetele. Globaalsete keskkonnamuutujate määramise asemel looge keskkonnamuutujate salvestamiseks uus fail ja seejärel edastage muutujad teenuse Systemd abil Concourse CI-le.
Looge Concourse'i veebi jaoks uus keskkonnafail.
sudo nano /opt/concourse/web.env
Täitke fail.
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
Change the username and password of the BASIC_AUTH
if desired. Make sure that the path to the key files are correct and make sure that the correct value for username and password in the PostgreSQL database configuration is provided.
Similarly, create an environment file for the worker.
sudo nano /opt/concourse/worker.env
Populate the file.
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
As the environment files contain usernames and passwords, change its permissions so that it cannot be accessed by other users.
sudo chmod 600 /opt/concourse/*.env
Now create a new user for Concourse to run the web environment. This will ensure that the web server is running in an isolated environment.
sudo useradd concourse
Give the concourse user ownership over Concourse CI file's directory.
sudo chown -R concourse:concourse /opt/concourse
Create a new systemd service file for the Concourse web service.
sudo nano /etc/systemd/system/concourse-web.service
Populate the file.
[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
Save and close the file. Create a new service file for the Concourse worker service.
sudo nano /etc/systemd/system/concourse-worker.service
Populate the file.
[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
The web and worker service can now be started directly.
sudo systemctl start concourse-web concourse-worker
To enable the worker and web process to automatically start at boot time, run the following.
sudo systemctl enable concourse-worker concourse-web
To check the status of services, run the following.
sudo systemctl status concourse-worker concourse-web
If the service is not started, or in the FAILED
state, remove the cache from the /tmp
directory.
sudo rm -rf /tmp/*
Restart the services.
sudo systemctl restart concourse-worker concourse-web
Notice that this time the services have started correctly. The output upon verifying the status of the services will be similar to the following.
[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.
Once the server is started, the web interface of the Concourse CI can be accessed by going to http://192.0.2.1:8080
in any browser. Log in using the username and password provided in the environment file.
To connect to the server using Fly, run the following.
fly -t my-ci login -c http://192.0.2.1:8080
Ülaltoodud käsku kasutatakse esmaseks serverisse sisselogimiseks. -t
kasutatakse sihtnime andmiseks. asendada my-ci
mis tahes soovitud sihtnimega. Ülaltoodud käsk logib sisse vaikemeeskonda main
. See küsib keskkonnafailis antud kasutajanime ja parooli.
Väljund näeb välja järgmine.
[user@vultr ~]$ fly -t my-ci login -c http://192.0.2.1:8080
logging in to team 'main'
username: admin
password:
target saved
Sihtsisselogimine salvestatakse üheks päevaks. Pärast seda see aegub.
Kohe väljalogimiseks.
fly -t my-ci logout
Fly abil saab serverisse sisse logida väljaspool võrku, kuid ainult siis, kui serveril on avalik IP-aadress ja see on juurdepääsetav väljastpoolt võrku. Windowsi või MacOS-i kahendfaili saab alla laadida allalaadimissaidilt või serveri veebiliidese kaudu.
Sisselogimised ja muu veebiliidese kaudu Concourse'i serverisse saadetud teave ei ole kaitstud. Ühendus ei ole krüptitud. Nginxi pöördpuhverserveri saab seadistada tasuta SSL-iga Let's Encrypt.
Installige Nginx.
sudo apt -y install nginx
Käivitage Nginx ja lubage see alglaadimise ajal automaatselt käivituda.
sudo systemctl start nginx
sudo systemctl enable nginx
Lisage Certboti hoidla.
sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update
Installige Certbot, mis on Let's Encrypt CA klientrakendus.
sudo apt -y install certbot
Märkus . Sertifikaatide hankimiseks ettevõttelt Let's Encrypt CA peab domeen, mille jaoks serte luuakse, olema suunatud serveri poole. Kui ei, tehke vajalikud muudatused domeeni DNS-kirjetes ja oodake, kuni DNS levib, enne kui esitate uuesti sertifikaaditaotluse. Certbot kontrollib enne sertifikaatide väljastamist domeeni autoriteeti.
Looge SSL-sertifikaadid.
sudo certbot certonly --webroot -w /var/www/html -d ci.example.com
Loodud sertifikaadid salvestatakse tõenäoliselt /etc/letsencrypt/live/ci.example.com/
kataloogi. SSL-sertifikaat salvestatakse kui fullchain.pem
ja privaatvõti salvestatakse kui privkey.pem
.
Teeme krüptimise sertifikaadid aeguvad 90 päeva pärast, seega on soovitatav sertifikaatide automaatne uuendamine seadistada cronjobsi abil. Cron on süsteemiteenus, mida kasutatakse perioodiliste toimingute käitamiseks.
Avage cron tööfail.
sudo crontab -e
Lisage faili lõppu järgmine rida.
30 5 * * * /usr/bin/certbot renew --quiet
Ülaltoodud cron töötab iga päev kell 5.30. Kui sertifikaat hakkab aeguma, uuendatakse seda automaatselt.
Looge uus virtuaalne host.
sudo nano /etc/nginx/sites-available/concourse
Täitke fail.
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;
}
}
Märkus . Asendage ci.example.com
tegeliku domeeniga.
Aktiveerige konfiguratsioonifail.
sudo ln -s /etc/nginx/sites-available/concourse /etc/nginx/sites-enabled/concourse
Redigeerige Concourse Web jaoks loodud keskkonnafaili.
sudo nano /opt/concourse/web.env
Muutke väärtust CONCOURSE_EXTERNAL_URL
ja lisage faili lõppu veel kaks rida.
CONCOURSE_EXTERNAL_URL=https://ci.example.com
CONCOURSE_BIND_IP=127.0.0.1
CONCOURSE_BIND_PORT=8080
Salvestage fail ja taaskäivitage Concourse Web, Worker ja Nginx.
sudo systemctl restart concourse-worker concourse-web nginx
Kõik brauserisse ja sealt saadetud andmed on nüüd kaitstud SSL-krüptimisega.
Jenkins on populaarne avatud lähtekoodiga CI (Continuous Integration) tööriist, mida kasutatakse laialdaselt projekti arendamiseks, juurutamiseks ja automatiseerimiseks. See artikkel kavatseb
Kas kasutate teistsugust süsteemi? Sissejuhatus Pidev integreerimine on DevOpsi tarkvaraarenduspraktika, mis võimaldab arendajatel sageli ühendada
Kas kasutate teistsugust süsteemi? Ansible on avatud lähtekoodiga tööriist ülesannete automatiseerimiseks. See haldab teie Linuxi ja Windowsi serverite konfiguratsiooni. See töötab
Kas kasutate teistsugust süsteemi? GoCD on avatud lähtekoodiga pidev tarne- ja automatiseerimissüsteem. See võimaldab modelleerida keerulisi töövooge, kasutades selle paralleelset an
Kuigi SaltStack on suurepärane tööriist toimingute tegemiseks samaaegselt paljudes serverites, toetab see ka hostipõhiseid konfiguratsiooni eelseadistusi, mis on salvestatud
Kas kasutate teistsugust süsteemi? Ansible on avatud lähtekoodiga tööriist ülesannete automatiseerimiseks. See haldab teie Linuxi ja Windowsi serverite konfiguratsiooni. See töötab
Sissejuhatus Drone on automatiseeritud, pideva testimise ja tarnimise platvorm, mis töötab teie enda infrastruktuuril. Droon toetab mis tahes keelt, teenust o
Mis on Load Balancer Koormuse tasakaalustajad istuvad teie rakenduse ees ja jaotavad sissetulevat liiklust teie rakenduse mitme eksemplari vahel. Fo
Kas kasutate teistsugust süsteemi? Foreman on tasuta avatud lähtekoodiga tööriist, mis aitab teil konfigureerida ja hallata füüsiliste ja virtuaalservereid. Forema
SaltStack ehk Salt on populaarne avatud lähtekoodiga konfiguratsioonihalduslahendus, mida saab kasutada kaugkäivitamiseks, konfiguratsioonihalduseks ja kodeerimiseks.
Sissejuhatus Strider CD on avatud lähtekoodiga pidev juurutamise platvorm. Rakendus on kirjutatud Node.js-s ja kasutab salvestusruumi taustaprogrammina MongoDB-d. Samm
Sissejuhatus Chocolatey toob Windowsi paketihalduse, mis muudab tarkvara ja sõltuvuste haldamise Linuxis lihtsaks. Saate kiiresti ja lihtsalt
Mis on Packer? Packer on HashiCorpi välja töötatud serveri pildistamise tööriist. Serveri pildistamine; või teise võimalusena muutumatu infrastruktuur; on populaarne alternatiiv
Kas kasutate teistsugust süsteemi? Sissejuhatus Pidev integreerimine on DevOpsi tarkvaraarenduspraktika, mis võimaldab arendajatel sageli ühendada
Kasti seadistamise ja seadistamise protsessi automatiseerimiseks on palju võimalusi. Mingil põhjusel, kui kogu meie süsteem praegu koosneb ainult
Kas kasutate teistsugust süsteemi? Foreman on tasuta avatud lähtekoodiga tööriist, mis aitab teil konfigureerida ja hallata füüsiliste ja virtuaalservereid. Forema
SaltStack on pythonil põhinev konfiguratsioonihaldusprogramm, mis on optimeeritud konfiguratsioonifailide, juurutuste ja kõige muu unde automatiseerimiseks
Tehisintellekt ei ole tulevik, see on siin, olevikus. Sellest blogist loe, kuidas tehisintellekti rakendused on mõjutanud erinevaid sektoreid.
Kas olete ka DDOS-i rünnakute ohver ja olete segaduses ennetusmeetodite osas? Oma päringute lahendamiseks lugege seda artiklit.
Võib-olla olete kuulnud, et häkkerid teenivad palju raha, kuid kas olete kunagi mõelnud, kuidas nad sellist raha teenivad? arutleme.
Kas soovite näha Google'i revolutsioonilisi leiutisi ja seda, kuidas need leiutised muutsid iga inimese elu tänapäeval? Seejärel lugege ajaveebi, et näha Google'i leiutisi.
Isejuhtivate autode kontseptsioon tehisintellekti abil teedele jõudmiseks on meil juba mõnda aega unistus. Kuid vaatamata mitmele lubadusele pole neid kusagil näha. Lisateabe saamiseks lugege seda ajaveebi…
Kuna teadus areneb kiiresti, võttes üle suure osa meie jõupingutustest, suureneb ka oht, et allume seletamatule singulaarsusele. Loe, mida singulaarsus meie jaoks tähendada võiks.
Andmete säilitamise meetodid on arenenud alates andmete sünnist. See ajaveeb käsitleb infograafiku alusel andmete salvestamise arengut.
Lugege ajaveebi, et kõige lihtsamal viisil teada saada Big Data Architecture'i erinevaid kihte ja nende funktsioone.
Selles digipõhises maailmas on nutikad koduseadmed muutunud elu oluliseks osaks. Siin on mõned nutikate koduseadmete hämmastavad eelised, mis muudavad meie elu elamisväärseks ja lihtsamaks.
Hiljuti andis Apple välja macOS Catalina 10.15.4 täiendusvärskenduse probleemide lahendamiseks, kuid tundub, et värskendus põhjustab rohkem probleeme, mille tulemuseks on Maci masinate tellimine. Lisateabe saamiseks lugege seda artiklit