Kā instalēt Jenkins operētājsistēmā CentOS 7
Jenkins ir populārs atvērtā pirmkoda CI (Continuous Integration) rīks, ko plaši izmanto projektu izstrādei, izvietošanai un automatizācijai. Šis raksts tiks
Nepārtrauktā integrācija ir DevOps programmatūras izstrādes prakse, kas ļauj izstrādātājiem bieži apvienot modificēto kodu koplietotajā repozitorijā daudzas reizes dienā. Pēc katras sapludināšanas tiek veiktas automātiskas būves un testi, lai atklātu problēmas kodā. Tas ļauj izstrādātājiem ātri atrast un novērst kļūdas, lai uzlabotu programmatūras kvalitāti un nodrošinātu nepārtrauktu programmatūras piegādi. Pārslēgšanās uz priekšu un atpakaļ no Concourse ir ļoti vienkārša, jo tā saglabā visu savu konfigurāciju deklaratīvajos failos, kurus var pārbaudīt versiju kontrolē. Tas nodrošina arī tīmekļa lietotāja saskarni, kas interaktīvi parāda būvējuma informāciju.
Noteikti aizstājiet visus gadījumus 192.0.2.1
un ci.example.com
ar savu faktisko Vultr publisko IP adresi un faktisko domēna nosaukumu.
Atjauniniet savu bāzes sistēmu, izmantojot rokasgrāmatu Kā atjaunināt Ubuntu 16.04 . Kad sistēma ir atjaunināta, turpiniet instalēt PostgreSQL.
PostgreSQL ir objektu relāciju datu bāzes sistēma. Concourse savus konveijera datus saglabā PostgreSQL datu bāzē. Pievienojiet PostgreSQL repozitoriju.
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
Instalējiet PostgreSQL datu bāzes serveri.
sudo apt -y install postgresql
Palaidiet PostgreSQL serveri un iespējojiet tā automātisku palaišanu sāknēšanas laikā.
sudo systemctl start postgresql
sudo systemctl enable postgresql
Mainiet noklusējuma PostgreSQL lietotāja paroli.
sudo passwd postgres
Piesakieties kā PostgreSQL lietotājs:
sudo su - postgres
Izveidojiet jaunu PostgreSQL lietotāju Concourse CI.
createuser concourse
Piezīme : Noklusējuma PostgreSQL lietotāju var izmantot datu bāzes autentifikācijai, taču ir ieteicams izmantot īpašu lietotāju Concourse datu bāzes autentifikācijai ražošanas iestatījumos.
PostgreSQL nodrošina čaulu, lai palaistu vaicājumus datu bāzē. Pārslēdzieties uz PostgreSQL čaulu.
psql
Iestatiet paroli jaunizveidotajam Concourse datu bāzes lietotājam.
ALTER USER concourse WITH ENCRYPTED password 'DBPassword';
Svarīgi : nomainiet DBPassword
ar spēcīgu paroli. Pierakstiet paroli, jo tā būs nepieciešama vēlāk apmācībā.
Izveidojiet jaunu datubāzi Concourse.
CREATE DATABASE concourse OWNER concourse;
Iziet no psql
čaulas.
\q
Pārslēdzieties uz sudo lietotāju no pašreizējā postgres
lietotāja.
exit
Lejupielādējiet Concourse izpildāmā faila jaunāko versiju un saglabājiet to, /usr/bin
lai to varētu izpildīt tieši. Jaunākā Concourse un Fly bināro failu versija ir atrodama Concourse lejupielādes lapā . Jauni izlaidumi ir ļoti bieži. Aizstājiet tālāk esošo saiti ar jauno saiti jaunākajai versijai.
sudo wget https://github.com/concourse/concourse/releases/download/v3.10.0/concourse_linux_amd64 -O /usr/bin/concourse
Tāpat lejupielādējiet jaunāko izpildāmā faila versiju un saglabājiet to /usr/bin
.
sudo wget https://github.com/concourse/concourse/releases/download/v3.10.0/fly_linux_amd64 -O /usr/bin/fly
Fly ir komandrindas saskarne, ko izmanto, lai izveidotu savienojumu ar Concourse CI ATC API. Fly ir pieejams vairākām platformām, piemēram, Linux, Windows un MacOS.
Piešķiriet izpildes atļauju lejupielādētajiem concourse
un fly
binārajiem failiem.
sudo chmod +x /usr/bin/concourse /usr/bin/fly
Pārbaudiet, vai Concourse un Fly darbojas pareizi, pārbaudot to versiju.
concourse -version
fly -version
RSA atslēgu pāri nodrošina veidu, kā šifrēt saziņu starp Sacensību komponentiem.
Lai Concourse darbotos, ir jāģenerē vismaz trīs atslēgu pāri. Lai šifrētu sesijas datus, ģenerējiet session_signing_key
. Šo atslēgu izmantos arī TSA, lai parakstītu pieprasījumus, ko tā iesniedz ATC. Lai aizsargātu TSA SSH serveri, ģenerējiet tsa_host_key
. Visbeidzot, ģenerējiet worker_key
katram darbiniekam.
Izveidojiet jaunu direktoriju, lai saglabātu atslēgas un konfigurāciju saistībā ar Concourse CI.
sudo mkdir /opt/concourse
Ģenerējiet nepieciešamās atslēgas.
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
Autorizējiet darbinieku publisko atslēgu, kopējot tās saturu authorized_worker_keys
failā.
sudo cp /opt/concourse/worker_key.pub /opt/concourse/authorized_worker_keys
Concourse nodrošina divus atsevišķus komponentus, kas jāsāk: tīmeklis un darbinieks. Sāciet Concourse tīmekli.
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
Ja vēlaties, mainiet lietotājvārdu un paroli . Pārliecinieties, vai ceļš uz atslēgas failiem ir pareizs, un pārliecinieties, vai PostgreSQL datu bāzes konfigurācijā ir norādīta pareizā lietotājvārda un paroles vērtība.
Piezīme : ATC klausīsies noklusējuma portu 8080
un TSA klausīsies portu 2222
. Ja autentifikācija nav vēlama, nododiet šo --no-really-i-dont-want-any-auth
opciju pēc pamata autentifikācijas opciju noņemšanas.
Kad tīmekļa serveris ir startēts, tiks parādīta šāda izvade.
{"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"}}
Pagaidām apturiet serveri, jo vēl ir jāiestata vēl dažas lietas.
Sāciet 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
Iepriekš minētā komanda pieņems, ka TSA darbojas uz localhost un klausās noklusējuma portu 2222
.
Lai gan Concourse tīmekli un darbinieku var viegli palaist, izmantojot iepriekš minētās komandas, servera pārvaldībai ieteicams izmantot Systemd.
Pakalpojuma Systemd izmantošana lietojumprogrammas pārvaldībai nodrošina, ka lietojumprogramma tiek automātiski startēta kļūmju gadījumā un sāknēšanas laikā. Concourse serveris neņem datus no neviena konfigurācijas faila, bet var piekļūt datiem no vides mainīgajiem. Tā vietā, lai iestatītu globālos vides mainīgos, izveidojiet jaunu failu vides mainīgo glabāšanai un pēc tam nosūtiet mainīgos Concourse CI, izmantojot Systemd pakalpojumu.
Izveidojiet jaunu vides failu Concourse Web.
sudo nano /opt/concourse/web.env
Aizpildiet failu.
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
Ja vēlaties, mainiet lietotājvārdu un paroli . Pārliecinieties, vai ceļš uz atslēgas failiem ir pareizs, un pārliecinieties, vai PostgreSQL datu bāzes konfigurācijā ir norādīta pareizā lietotājvārda un paroles vērtība.
Līdzīgi izveidojiet vides failu darbiniekam.
sudo nano /opt/concourse/worker.env
Aizpildiet failu.
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
Tā kā vides faili satur lietotājvārdus un paroles, mainiet tā atļaujas, lai citi lietotāji tiem nevarētu piekļūt.
sudo chmod 600 /opt/concourse/*.env
Tagad izveidojiet jaunu lietotāju Concourse, lai palaistu tīmekļa vidi. Tas nodrošinās, ka tīmekļa serveris darbojas izolētā vidē.
sudo useradd concourse
Piešķiriet Concourse lietotājam īpašumtiesības uz Concourse CI faila direktoriju.
sudo chown -R concourse:concourse /opt/concourse
Izveidojiet jaunu sistēmas pakalpojuma failu Concourse tīmekļa pakalpojumam.
sudo nano /etc/systemd/system/concourse-web.service
Aizpildiet failu.
[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
Saglabājiet un aizveriet failu. Izveidojiet jaunu pakalpojuma failu Concourse darbinieka pakalpojumam.
sudo nano /etc/systemd/system/concourse-worker.service
Aizpildiet failu.
[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
Tīmekļa un darbinieku pakalpojumu tagad var palaist tieši.
sudo systemctl start concourse-web concourse-worker
Lai iespējotu darbinieka un tīmekļa procesa automātisku sākšanu sāknēšanas laikā, izpildiet tālāk norādīto.
sudo systemctl enable concourse-worker concourse-web
Lai pārbaudītu pakalpojumu statusu, izpildiet tālāk norādīto.
sudo systemctl status concourse-worker concourse-web
Ja pakalpojums nav palaists vai atrodas FAILED
stāvoklī, noņemiet kešatmiņu no /tmp
direktorija.
sudo rm -rf /tmp/*
Restartējiet pakalpojumus.
sudo systemctl restart concourse-worker concourse-web
Ņemiet vērā, ka šoreiz pakalpojumi ir sākušies pareizi. Pārbaudot pakalpojumu statusu, rezultāts būs līdzīgs šim.
[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.
Kad serveris ir palaists, Concourse CI tīmekļa saskarnei var piekļūt, atverot http://192.0.2.1:8080
jebkurā pārlūkprogrammā. Piesakieties, izmantojot vides failā norādīto lietotājvārdu un paroli.
Lai izveidotu savienojumu ar serveri, izmantojot Fly, izpildiet tālāk norādītās darbības.
fly -t my-ci login -c http://192.0.2.1:8080
Iepriekš minētā komanda tiek izmantota sākotnējai pieteikšanās serverī. -t
tiek izmantots, lai norādītu mērķa nosaukumu. aizstāt my-ci
ar jebkuru vēlamo mērķa nosaukumu. Iepriekš minētā komanda pieteiksies noklusējuma komandā main
. Tas prasīs vides failā norādīto lietotājvārdu un paroli.
Izvade izskatīsies šādi.
[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ērķa pieteikšanās tiks saglabāta vienu dienu. Pēc tam tas beigsies.
Lai nekavējoties izietu.
fly -t my-ci logout
Fly var izmantot, lai pieteiktos serverī ārpus tīkla, taču tikai tad, ja serverim ir publiska IP adrese un tā ir pieejama ārpus tīkla. Windows vai MacOS bināro versiju var lejupielādēt no lejupielādes vietnes vai servera tīmekļa lietotāja interfeisa.
Pieteikšanās un cita informācija, kas tiek nosūtīta, izmantojot tīmekļa lietotāja interfeisu uz Concourse serveri, nav aizsargāta. Savienojums nav šifrēts. Nginx reverso starpniekserveri var iestatīt, izmantojot Let's Encrypt bezmaksas SSL.
Instalējiet Nginx.
sudo apt -y install nginx
Palaidiet Nginx un iespējojiet to automātiski palaist sāknēšanas laikā.
sudo systemctl start nginx
sudo systemctl enable nginx
Pievienojiet Certbot repozitoriju.
sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update
Instalējiet Certbot, kas ir Let's Encrypt CA klienta lietojumprogramma.
sudo apt -y install certbot
Piezīme . Lai iegūtu sertifikātus no Let's Encrypt CA, domēnam, kuram ir jāģenerē sertifikāti, jābūt norādītam uz serveri. Ja nē, veiciet nepieciešamās izmaiņas domēna DNS ierakstos un pagaidiet, līdz DNS tiek izplatīts, pirms vēlreiz veicat sertifikāta pieprasījumu. Certbot pirms sertifikātu sniegšanas pārbauda domēna iestādi.
Ģenerējiet SSL sertifikātus.
sudo certbot certonly --webroot -w /var/www/html -d ci.example.com
Ģenerētie sertifikāti, visticamāk, tiks saglabāti /etc/letsencrypt/live/ci.example.com/
direktorijā. SSL sertifikāts tiks saglabāts kā , fullchain.pem
un privātā atslēga tiks saglabāta kā privkey.pem
.
Sertifikātu šifrēšanas derīguma termiņš beidzas 90 dienu laikā, tāpēc ir ieteicams automātisku sertifikātu atjaunošanu iestatīt, izmantojot cronjobs. Cron ir sistēmas pakalpojums, ko izmanto periodisku uzdevumu izpildei.
Atveriet cron darba failu.
sudo crontab -e
Faila beigās pievienojiet šādu rindu.
30 5 * * * /usr/bin/certbot renew --quiet
Iepriekš minētais cron darbs darbosies katru dienu plkst. 5:30. Ja sertifikātam beidzas derīguma termiņš, tas tiks automātiski atjaunots.
Izveidojiet jaunu virtuālo saimniekdatoru.
sudo nano /etc/nginx/sites-available/concourse
Aizpildiet failu.
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;
}
}
Piezīme . Aizstāt ci.example.com
ar faktisko domēnu.
Aktivizējiet konfigurācijas failu.
sudo ln -s /etc/nginx/sites-available/concourse /etc/nginx/sites-enabled/concourse
Rediģējiet vides failu, kas izveidots konferencei Web.
sudo nano /opt/concourse/web.env
Mainiet vērtību CONCOURSE_EXTERNAL_URL
un pievienojiet vēl divas rindiņas faila beigās.
CONCOURSE_EXTERNAL_URL=https://ci.example.com
CONCOURSE_BIND_IP=127.0.0.1
CONCOURSE_BIND_PORT=8080
Saglabājiet failu un restartējiet Concourse Web, Worker un Nginx.
sudo systemctl restart concourse-worker concourse-web nginx
Visi dati, kas tiek nosūtīti uz pārlūkprogrammu un no tās, tagad ir aizsargāti ar SSL šifrēšanu.
Jenkins ir populārs atvērtā pirmkoda CI (Continuous Integration) rīks, ko plaši izmanto projektu izstrādei, izvietošanai un automatizācijai. Šis raksts tiks
Vai izmantojat citu sistēmu? Ievads Nepārtrauktā integrācija ir DevOps programmatūras izstrādes prakse, kas ļauj izstrādātājiem bieži apvienot
Vai izmantojat citu sistēmu? Ansible ir atvērtā pirmkoda rīks uzdevumu automatizēšanai. Tas pārvalda jūsu Linux un Windows serveru konfigurāciju. Tas strādā
Vai izmantojat citu sistēmu? GoCD ir atvērtā koda nepārtrauktas piegādes un automatizācijas sistēma. Tas ļauj modelēt sarežģītas darbplūsmas, izmantojot tās paralēlo an
Lai gan SaltStack ir lielisks rīks darbību veikšanai daudzos serveros vienlaikus, tas atbalsta arī katram resursdatoram definētus konfigurācijas sākotnējos iestatījumus, kas saglabāti
Vai izmantojat citu sistēmu? Ansible ir atvērtā pirmkoda rīks uzdevumu automatizēšanai. Tas pārvalda jūsu Linux un Windows serveru konfigurāciju. Tas strādā
Introduction Drone is an automated, continuous testing and delivery platform which runs on your own infrastructure. Drone supports any language, service o
Kas ir slodzes līdzsvarotājs Slodzes līdzsvarotāji atrodas jūsu lietojumprogrammas priekšā un sadala ienākošo trafiku vairākos jūsu lietojumprogrammas gadījumos. Fo
Vai izmantojat citu sistēmu? Foreman ir bezmaksas atvērtā koda rīks, kas palīdz konfigurēt un pārvaldīt fiziskos un virtuālos serverus. Forema
SaltStack jeb Salt ir populārs atvērtā pirmkoda konfigurācijas pārvaldības risinājums, ko var izmantot attālinātas izpildes, konfigurācijas pārvaldības, kodēšanas ieviešanai.
Ievads Strider CD ir atvērtā koda nepārtrauktas izvietošanas platforma. Lietojumprogramma ir rakstīta Node.js un izmanto MongoDB kā krātuves aizmugursistēmu. Solis
Ievads Chocolatey nodrošina pakotņu pārvaldību, kas atvieglo programmatūras un atkarību administrēšanu operētājsistēmā Linux sistēmā Windows. Jūs varat ātri un viegli
Kas ir Packer? Packer ir servera attēlveidošanas rīks, ko izstrādājis HashiCorp. Servera attēlveidošana; vai alternatīvi, nemainīga infrastruktūra; ir populāra alternatīva
Vai izmantojat citu sistēmu? Ievads Nepārtrauktā integrācija ir DevOps programmatūras izstrādes prakse, kas ļauj izstrādātājiem bieži apvienot
Ir daudzi veidi, kā automatizēt kastes iestatīšanas un konfigurēšanas procesu. Kādu iemeslu dēļ, ja visa mūsu sistēma šobrīd sastāv no tikai
Vai izmantojat citu sistēmu? Foreman ir bezmaksas atvērtā koda rīks, kas palīdz konfigurēt un pārvaldīt fiziskos un virtuālos serverus. Forema
SaltStack ir uz python balstīta konfigurācijas pārvaldības programma, kas ir optimizēta konfigurācijas failu, izvietošanas un visa cita unde automatizācijai.
Mākslīgais intelekts nav nākotnē, tas ir šeit, tagadnē. Šajā emuārā lasiet, kā mākslīgā intelekta lietojumprogrammas ir ietekmējušas dažādas nozares.
Vai arī jūs esat DDOS uzbrukumu upuris un esat neizpratnē par profilakses metodēm? Izlasiet šo rakstu, lai atrisinātu savus jautājumus.
Iespējams, esat dzirdējuši, ka hakeri pelna daudz naudas, bet vai esat kādreiz domājuši, kā viņi nopelna šādu naudu? pārrunāsim.
Vai vēlaties redzēt revolucionārus Google izgudrojumus un to, kā šie izgudrojumi mainīja katra cilvēka dzīvi mūsdienās? Pēc tam lasiet emuārā, lai redzētu Google izgudrojumus.
Pašpiedziņas automobiļu koncepcija izbraukt uz ceļiem ar mākslīgā intelekta palīdzību ir mūsu sapnis jau kādu laiku. Bet, neskatoties uz vairākiem solījumiem, tie nekur nav redzami. Lasiet šo emuāru, lai uzzinātu vairāk…
Zinātnei strauji attīstoties, pārņemot lielu daļu mūsu pūļu, palielinās arī risks pakļaut sevi neizskaidrojamai singularitātei. Izlasiet, ko singularitāte varētu nozīmēt mums.
Datu uzglabāšanas metodes ir attīstījušās kopš datu dzimšanas. Šajā emuārā ir aprakstīta datu uzglabāšanas attīstība, pamatojoties uz infografiku.
Lasiet emuāru, lai vienkāršākā veidā uzzinātu dažādus lielo datu arhitektūras slāņus un to funkcijas.
Šajā digitālajā pasaulē viedās mājas ierīces ir kļuvušas par būtisku dzīves sastāvdaļu. Šeit ir daži pārsteidzoši viedo mājas ierīču ieguvumi, lai padarītu mūsu dzīvi dzīves vērtu un vienkāršāku.
Nesen Apple izlaida macOS Catalina 10.15.4 papildinājuma atjauninājumu, lai novērstu problēmas, taču šķiet, ka atjauninājums rada vairāk problēmu, kas izraisa Mac datoru bloķēšanu. Izlasiet šo rakstu, lai uzzinātu vairāk