Hvernig á að setja upp Jenkins á CentOS 7
Jenkins er vinsælt opinn uppspretta CI (Continuous Integration) tól sem er mikið notað fyrir þróun verkefna, dreifingu og sjálfvirkni. Þessi grein vill
Stöðug samþætting er DevOps hugbúnaðarþróunaraðferð sem gerir forriturum kleift að sameina breytta kóðann oft í sameiginlegu geymsluna oft á dag. Eftir hverja sameiningu eru sjálfvirkar smíðir og prófanir gerðar til að greina vandamál í kóðanum. Það gerir hönnuðum kleift að finna og leysa villurnar fljótt til að bæta hugbúnaðargæði og veita stöðuga afhendingu hugbúnaðarins. Það er mjög auðvelt að skipta til og frá Concourse þar sem það geymir allar stillingar sínar í yfirlýsingarskrám sem hægt er að athuga í útgáfustýringu. Það býður einnig upp á netnotendaviðmót sem sýnir byggingarupplýsingarnar gagnvirkt.
Vertu viss um að skipta um öll tilvik af 192.0.2.1
og ci.example.com
með raunverulegu Vultr opinberu IP-tölu þinni og raunverulegu lén.
Uppfærðu grunnkerfið þitt með því að nota handbókina Hvernig á að uppfæra Ubuntu 16.04 . Þegar kerfið þitt hefur verið uppfært skaltu halda áfram að setja upp PostgreSQL.
PostgreSQL er hluttengslagagnagrunnskerfi. Concourse geymir leiðslugögn sín í PostgreSQL gagnagrunni. Bættu við PostgreSQL geymslunni.
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
Settu upp PostgreSQL gagnagrunnsþjóninn.
sudo apt -y install postgresql
Ræstu PostgreSQL þjóninn og gerðu það kleift að ræsast sjálfkrafa við ræsingu.
sudo systemctl start postgresql
sudo systemctl enable postgresql
Breyttu lykilorðinu fyrir sjálfgefinn PostgreSQL notanda.
sudo passwd postgres
Skráðu þig inn sem PostgreSQL notandi:
sudo su - postgres
Búðu til nýjan PostgreSQL notanda fyrir Concourse CI.
createuser concourse
Athugið : Hægt er að nota sjálfgefinn PostgreSQL notanda fyrir auðkenningu á gagnagrunninum, en mælt er með því að nota sérstakan notanda fyrir auðkenningu á Concourse gagnagrunni í framleiðsluuppsetningu.
PostgreSQL býður upp á skel til að keyra fyrirspurnir í gagnagrunninum. Skiptu yfir í PostgreSQL skelina.
psql
Stilltu lykilorð fyrir nýstofnaðan Concourse gagnagrunnsnotanda.
ALTER USER concourse WITH ENCRYPTED password 'DBPassword';
Mikilvægt : Skiptu út DBPassword
fyrir sterkt lykilorð. Skráðu lykilorðið þar sem það verður krafist síðar í kennslunni.
Búðu til nýjan gagnagrunn fyrir Concourse.
CREATE DATABASE concourse OWNER concourse;
Farðu úr psql
skelinni.
\q
Skiptu yfir í sudo notanda frá núverandi postgres
notanda.
exit
Hladdu niður nýjustu útgáfunni af Concourse executable og geymdu það /usr/bin
svo að hægt sé að keyra það beint. Nýjustu útgáfuna af Concourse og Fly binaries er að finna á Concourse niðurhalssíðunni . Nýjar útgáfur eru mjög tíðar. Skiptu út hlekknum hér að neðan fyrir nýja hlekkinn fyrir nýjustu útgáfuna.
sudo wget https://github.com/concourse/concourse/releases/download/v3.10.0/concourse_linux_amd64 -O /usr/bin/concourse
Á sama hátt skaltu hlaða niður nýjustu útgáfunni af flugu keyrslunni og geyma hana í /usr/bin
.
sudo wget https://github.com/concourse/concourse/releases/download/v3.10.0/fly_linux_amd64 -O /usr/bin/fly
Fly er skipanalínuviðmótið sem notað er til að tengjast ATC API Concourse CI. Fly er fáanlegt fyrir marga palla eins og Linux, Windows og MacOS.
Úthlutaðu framkvæmdarheimild til niðurhalaðra concourse
og fly
tvöfalda.
sudo chmod +x /usr/bin/concourse /usr/bin/fly
Athugaðu hvort Concourse og Fly virka rétt með því að athuga útgáfu þeirra.
concourse -version
fly -version
RSA lykilpör bjóða upp á leið til að dulkóða samskipti milli íhluta Concourse.
Til að Concourse virki þarf að búa til að minnsta kosti þrjú pör af lyklum. Til að dulkóða lotugögnin skaltu búa til session_signing_key
. Þessi lykill verður einnig notaður af TSA til að undirrita beiðnir sem það gerir til ATC. Til að tryggja TSA SSH netþjóninn skaltu búa til tsa_host_key
. Að lokum skaltu búa til a worker_key
fyrir hvern starfsmann.
Búðu til nýja möppu til að geyma lykla og stillingar sem tengjast Concourse CI.
sudo mkdir /opt/concourse
Búðu til nauðsynlega lykla.
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
Leyfðu opinbera lykil starfsmanna með því að afrita innihald hans í authorized_worker_keys
skrána.
sudo cp /opt/concourse/worker_key.pub /opt/concourse/authorized_worker_keys
Concourse býður upp á tvo aðskilda þætti sem þarf að ræsa: vefinn og starfsmanninn. Byrjaðu Concourse vefinn.
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
Breyttu notendanafni og lykilorði basic-auth
ef þess er óskað. Gakktu úr skugga um að slóðin að lykilskránum sé rétt og vertu viss um að rétt gildi fyrir notandanafn og lykilorð í PostgreSQL gagnagrunnsstillingunni sé gefið upp.
Athugið : ATC mun hlusta á sjálfgefna höfnina 8080
og TSA mun hlusta á höfnina 2222
. Ef auðkenning er ekki óskað skaltu fara yfir --no-really-i-dont-want-any-auth
valmöguleikann eftir að hafa fjarlægt helstu auðkenningarvalkosti.
Þegar vefþjónninn er ræstur mun eftirfarandi úttak birtast.
{"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"}}
Stöðvaðu netþjóninn í bili, þar sem enn þarf að setja upp nokkra hluti til viðbótar.
Byrjaðu 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
Ofangreind skipun gerir ráð fyrir að TSA sé í gangi á localhost og hlustar á sjálfgefna tengið 2222
.
Þó að hægt sé að ræsa Concourse vefinn og starfsmanninn auðveldlega með því að nota skipanirnar hér að ofan, er mælt með því að nota Systemd til að stjórna þjóninum.
Með því að nota Systemd þjónustu til að stjórna forritinu tryggir það að forritið sé sjálfkrafa ræst við bilanir og við ræsingu. Concourse þjónninn tekur ekki gögn úr neinni stillingarskrá, en hann getur nálgast gögnin úr umhverfisbreytum. Í stað þess að stilla alþjóðlegar umhverfisbreytur, búðu til nýja skrá til að geyma umhverfisbreyturnar og sendu síðan breyturnar til Concourse CI með því að nota Systemd þjónustuna.
Búðu til nýja umhverfisskrá fyrir Concourse vef.
sudo nano /opt/concourse/web.env
Fylltu út skrána.
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
The above command is used for the initial login to the server. -t
is used to provide a target name. replace my-ci
with any desired target name. The above command will log in to the default team main
. It will ask for the username and password provided in the environment file.
The output will look like the following.
[user@vultr ~]$ fly -t my-ci login -c http://192.0.2.1:8080
logging in to team 'main'
username: admin
password:
target saved
The target login will be saved for a day. After that, it will expire.
To log out immediately.
fly -t my-ci logout
Fly can be used to login to the server outside of the network, but only if the server has a public IP address and it is accessible from outside the network. The Windows or MacOS binary can be downloaded from the download site or from the web UI of the server.
Innskráningar og aðrar upplýsingar sem sendar eru í gegnum vefviðmótið á Concourse netþjóninn eru ekki tryggðar. Tengingin er ekki dulkóðuð. Hægt er að setja upp Nginx öfugt umboð með Let's Encrypt ókeypis SSL.
Settu upp Nginx.
sudo apt -y install nginx
Ræstu Nginx og gerðu það kleift að byrja sjálfkrafa við ræsingu.
sudo systemctl start nginx
sudo systemctl enable nginx
Bættu við Certbot geymslunni.
sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update
Settu upp Certbot, sem er biðlaraforritið fyrir Let's Encrypt CA.
sudo apt -y install certbot
Athugið : Til að fá vottorð frá Let's Encrypt CA verður lénið sem á að búa til skírteinin fyrir að vísa í átt að þjóninum. Ef ekki, gerðu nauðsynlegar breytingar á DNS-skrám lénsins og bíddu eftir að DNS breiðist út áður en þú gerir vottorðsbeiðnina aftur. Certbot athugar lénsvaldið áður en það gefur upp vottorðin.
Búðu til SSL vottorðin.
sudo certbot certonly --webroot -w /var/www/html -d ci.example.com
Líklegt er að útbúin vottorð séu geymd í /etc/letsencrypt/live/ci.example.com/
skránni. SSL vottorðið verður geymt sem fullchain.pem
og einkalykillinn verður geymdur sem privkey.pem
.
Við skulum dulkóða vottorð renna út eftir 90 daga, svo það er mælt með sjálfvirkri endurnýjun þar sem skírteinin eru sett upp með cronjobs. Cron er kerfisþjónusta sem er notuð til að keyra reglubundin verkefni.
Opnaðu cron vinnuskrána.
sudo crontab -e
Bættu við eftirfarandi línu í lok skráarinnar.
30 5 * * * /usr/bin/certbot renew --quiet
Ofangreind cron vinna mun keyra daglega klukkan 5:30. Ef skírteinið á að renna út verður það sjálfkrafa endurnýjað.
Búðu til nýjan sýndargestgjafa.
sudo nano /etc/nginx/sites-available/concourse
Fylltu út skrána.
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;
}
}
Athugið : Skiptu út ci.example.com
fyrir raunverulegt lén.
Virkjaðu stillingarskrána.
sudo ln -s /etc/nginx/sites-available/concourse /etc/nginx/sites-enabled/concourse
Breyttu Umhverfisskránni sem búin var til fyrir Concourse Web.
sudo nano /opt/concourse/web.env
Breyttu gildinu á CONCOURSE_EXTERNAL_URL
og bættu einnig við tveimur línum í lok skráarinnar.
CONCOURSE_EXTERNAL_URL=https://ci.example.com
CONCOURSE_BIND_IP=127.0.0.1
CONCOURSE_BIND_PORT=8080
Vistaðu skrána og endurræstu Concourse Web, Worker og Nginx.
sudo systemctl restart concourse-worker concourse-web nginx
Öll gögn sem send eru til og frá vafranum eru nú tryggð með SSL dulkóðun.
Jenkins er vinsælt opinn uppspretta CI (Continuous Integration) tól sem er mikið notað fyrir þróun verkefna, dreifingu og sjálfvirkni. Þessi grein vill
Að nota annað kerfi? Inngangur Stöðug samþætting er DevOps hugbúnaðarþróunaraðferð sem gerir hönnuðum kleift að sameinast oft
Að nota annað kerfi? Ansible er opinn hugbúnaður til að gera sjálfvirk verkefni. Það stjórnar uppsetningu Linux og Windows netþjóna. Það virkar
Að nota annað kerfi? GoCD er opinn uppspretta stöðugt afhendingar- og sjálfvirknikerfi. Það gerir þér kleift að móta flókin verkflæði með því að nota samhliða þess
Þó að SaltStack sé frábært tól til að keyra aðgerðir á mörgum netþjónum samtímis, styður það einnig skilgreindar stillingar fyrir hverja gestgjafa sem eru geymdar í
Að nota annað kerfi? Ansible er opinn hugbúnaður til að gera sjálfvirk verkefni. Það stjórnar uppsetningu Linux og Windows netþjóna. Það virkar
Inngangur Drone er sjálfvirkur, stöðugur prófunar- og afhendingarvettvangur sem keyrir á þínum eigin innviðum. Drone styður hvaða tungumál sem er, þjónustu o
Hvað er hleðslujafnari Hleðslujafnarar sitja fyrir framan forritið þitt og dreifa komandi umferð yfir mörg tilvik af forritinu þínu. Fo
Að nota annað kerfi? Foreman er ókeypis og opinn uppspretta tól sem hjálpar þér við uppsetningu og stjórnun á líkamlegum og sýndarþjónum. Forema
SaltStack, eða Salt, er vinsæl opinn uppspretta stillingarstjórnunarlausn sem hægt er að nota til að útfæra fjarframkvæmd, stillingarstjórnun, cod
Inngangur Strider CD er opinn uppspretta samfelld dreifingarvettvangur. Forritið er skrifað í Node.js og notar MongoDB sem geymslustuðning. Skref
Inngangur Chocolatey færir pakkastjórnun sem auðveldar stjórnun hugbúnaðar og ósjálfstæðis á Linux í Windows. Þú getur fljótt og auðveldlega
Hvað er Packer? Packer er myndtól fyrir netþjóna þróað af HashiCorp. Myndgreining miðlara; eða að öðrum kosti óbreytanleg innviði; er vinsæll valkostur
Að nota annað kerfi? Inngangur Stöðug samþætting er DevOps hugbúnaðarþróunaraðferð sem gerir hönnuðum kleift að sameinast oft
Það eru margar leiðir til að gera sjálfvirkan ferlið við að setja upp og stilla kassa. Af hvaða ástæðu sem er, ef allt kerfið okkar á þessum tímapunkti samanstendur af bara
Að nota annað kerfi? Foreman er ókeypis og opinn uppspretta tól sem hjálpar þér við uppsetningu og stjórnun á líkamlegum og sýndarþjónum. Forema
SaltStack er python-undirstaða stillingastjórnunarforrit sem er fínstillt fyrir sjálfvirkni stillingarskráa, uppsetningar og allt annað sem er óvirkt.
Gervigreind er ekki í framtíðinni, hún er hér í nútímanum Í þessu bloggi Lestu hvernig gervigreindarforrit hafa haft áhrif á ýmsa geira.
Ertu líka fórnarlamb DDOS árása og ruglaður með forvarnaraðferðirnar? Lestu þessa grein til að leysa spurningar þínar.
Þú gætir hafa heyrt að tölvuþrjótar græða mikið af peningum, en hefur þú einhvern tíma velt því fyrir þér hvernig þeir vinna sér inn svona peninga? við skulum ræða.
Viltu sjá byltingarkenndar uppfinningar frá Google og hvernig þessar uppfinningar breyttu lífi hvers manns í dag? Lestu síðan til að blogga til að sjá uppfinningar frá Google.
Hugmyndin um að sjálfkeyrandi bílar fari á göturnar með hjálp gervigreindar er draumur sem við höfum átt um tíma núna. En þrátt fyrir nokkur loforð eru þau hvergi sjáanleg. Lestu þetta blogg til að læra meira…
Þar sem vísindin þróast hratt og taka yfir mikið af viðleitni okkar, eykst hættan á því að verða fyrir óútskýranlegri einstæðu. Lestu, hvað sérkenni gæti þýtt fyrir okkur.
Geymsluaðferðir gagna hafa verið að þróast gæti verið frá fæðingu gagna. Þetta blogg fjallar um þróun gagnageymslu á grundvelli upplýsingamynda.
Lestu bloggið til að þekkja mismunandi lög í Big Data Architecture og virkni þeirra á einfaldasta hátt.
Í þessum stafræna heimi hafa snjallheimilistæki orðið afgerandi hluti af lífi. Hér eru nokkrir ótrúlegir kostir snjallheimatækja um hvernig þau gera líf okkar þess virði að lifa því og einfaldara.
Nýlega gaf Apple út macOS Catalina 10.15.4 viðbótaruppfærslu til að laga vandamál en svo virðist sem uppfærslan sé að valda fleiri vandamálum sem leiða til múrsteins á Mac vélum. Lestu þessa grein til að læra meira