Si të instaloni dhe konfiguroni Concourse CI në Ubuntu 16.04

Prezantimi

Integrimi i vazhdueshëm është një praktikë e zhvillimit të softuerit DevOps e cila u mundëson zhvilluesve të bashkojnë shpesh kodin e modifikuar në depon e përbashkët shumë herë në ditë. Pas çdo bashkimi, kryhen ndërtime dhe teste automatike për të zbuluar problemet në kod. Ai u mundëson zhvilluesve të gjejnë dhe zgjidhin gabimet shpejt për të përmirësuar cilësinë e softuerit dhe për të ofruar shpërndarje të vazhdueshme të softuerit. Kalimi andej-këtej nga Concourse është shumë i lehtë pasi ruan të gjithë konfigurimin e tij në skedarë deklarativë që mund të kontrollohen në kontrollin e versionit. Ai gjithashtu siguron një ndërfaqe të përdoruesit në ueb që shfaq informacionin e ndërtimit në mënyrë interaktive.

Komponentët e Konkursit.
  • ATC është komponenti kryesor i Konkursit. Ai është përgjegjës për ekzekutimin e ndërfaqes së internetit dhe API-së. Ai gjithashtu kujdeset për të gjithë planifikimin e tubacionit.
  • TSA është një server SSH i ndërtuar me porosi. Ai është përgjegjës për regjistrimin e sigurt të një punonjësi në ATC.
  • Punëtorët më tej drejtojnë dy shërbime të ndryshme:
    1. Garden është një kohëzgjatje e kontejnerëve dhe një ndërfaqe për orkestrimin e kontejnerëve nga distanca në një punëtor.
    2. Bagageclaim është një server i menaxhimit të memories dhe objekteve.
  • Fly është një ndërfaqe e linjës komanduese e përdorur për të bashkëvepruar me ATC për të konfiguruar Tubacionet Concourse.

Parakushtet

Sigurohuni që të zëvendësoni të gjitha dukuritë 192.0.2.1 dhe ci.example.com me adresën tuaj aktuale IP publike Vultr dhe emrin aktual të domenit.

Përditësoni sistemin tuaj bazë duke përdorur udhëzuesin Si të përditësoni Ubuntu 16.04 . Pasi sistemi juaj të jetë përditësuar, vazhdoni të instaloni PostgreSQL.

Instaloni dhe konfiguroni bazën e të dhënave PostgreSQL

PostgreSQL është një sistem bazë të dhënash relacionale objektesh. Concourse ruan të dhënat e tij të tubacionit në një bazë të dhënash PostgreSQL. Shtoni depon e 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

Instaloni serverin e bazës së të dhënave PostgreSQL.

sudo apt -y install postgresql

Nisni serverin PostgreSQL dhe aktivizoni atë të fillojë automatikisht në kohën e nisjes.

sudo systemctl start postgresql
sudo systemctl enable postgresql

Ndryshoni fjalëkalimin për përdoruesin e paracaktuar të PostgreSQL.

sudo passwd postgres

Hyni si përdorues i PostgreSQL:

sudo su - postgres

Krijo një përdorues të ri PostgreSQL për Concourse CI.

createuser concourse

Shënim : Përdoruesi i parazgjedhur i PostgreSQL mund të përdoret për vërtetimin e bazës së të dhënave, por rekomandohet përdorimi i një përdoruesi të dedikuar për vërtetimin e bazës së të dhënave Concourse në një konfigurim prodhimi.

PostgreSQL ofron një guaskë për të ekzekutuar pyetje në bazën e të dhënave. Kalo në guaskën PostgreSQL.

psql

Vendosni një fjalëkalim për përdoruesin e sapokrijuar të bazës së të dhënave të Concourse.

ALTER USER concourse WITH ENCRYPTED password 'DBPassword';

E rëndësishme : Zëvendësojeni DBPassword me një fjalëkalim të fortë. Shënoni fjalëkalimin pasi do të kërkohet më vonë në tutorial.

Krijo një bazë të dhënash të re për Concourse.

CREATE DATABASE concourse OWNER concourse;

Dilni nga psql guaska.

\q

Kalo te përdoruesi sudo nga postgrespërdoruesi aktual .

exit

Shkarkoni dhe instaloni Concourse CI

Shkarkoni versionin më të fundit të ekzekutuesit Concourse dhe ruajeni në /usr/bin mënyrë që të mund të ekzekutohet drejtpërdrejt. Versioni më i fundit i binareve Concourse dhe Fly mund të gjendet në faqen e shkarkimit të Concourse . Publikimet e reja janë shumë të shpeshta. Zëvendësoni lidhjen e mëposhtme me lidhjen e re për versionin më të fundit.

sudo wget https://github.com/concourse/concourse/releases/download/v3.10.0/concourse_linux_amd64 -O /usr/bin/concourse

Në mënyrë të ngjashme, shkarkoni versionin më të fundit të skedarit të ekzekutueshëm dhe ruajeni në /usr/bin.

sudo wget https://github.com/concourse/concourse/releases/download/v3.10.0/fly_linux_amd64 -O /usr/bin/fly

Fly është ndërfaqja e linjës së komandës që përdoret për t'u lidhur me ATC API të Concourse CI. Fly është i disponueshëm për platforma të shumta si Linux, Windows dhe MacOS.

Cakto lejen e ekzekutimit për skedarët e shkarkuar concourse dhe flybinare.

sudo chmod +x /usr/bin/concourse /usr/bin/fly

Kontrolloni nëse Concourse and Fly po funksionojnë siç duhet duke kontrolluar versionin e tyre.

concourse -version
fly -version

Gjeneroni dhe konfiguroni çelësat RSA

Çiftet e çelësave RSA ofrojnë një mënyrë për të koduar komunikimin midis komponentëve të Konkursit.

Që Concourse të funksionojë, duhet të gjenerohen të paktën tre palë çelësa. Për të enkriptuar të dhënat e sesionit, krijoni një session_signing_key. Ky çelës do të përdoret gjithashtu nga TSA për të nënshkruar kërkesat që i bën ATC-së. Për të siguruar serverin TSA SSH, gjeneroni një tsa_host_key. Së fundi, krijoni një worker_key për çdo punëtor.

Krijo një direktori të re për të ruajtur çelësat dhe konfigurimin në lidhje me Concourse CI.

sudo mkdir /opt/concourse

Gjeneroni çelësat e kërkuar.

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

Autorizoni çelësin publik të punëtorëve duke kopjuar përmbajtjen e tij në authorized_worker_keys dosje.

sudo cp /opt/concourse/worker_key.pub /opt/concourse/authorized_worker_keys

Fillimi i Konkursit

Concourse ofron dy komponentë të veçantë që duhen nisur: ueb-i dhe punëtori. Filloni uebfaqen e Konkursit.

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

Ndryshoni emrin e përdoruesit dhe fjalëkalimin basic-auth nëse dëshironi. Sigurohuni që shtegu i skedarëve kyç është i saktë dhe sigurohuni që të jepet vlera e saktë për emrin e përdoruesit dhe fjalëkalimin në konfigurimin e bazës së të dhënave PostgreSQL.

Shënim : ATC do të dëgjojë portin e paracaktuar 8080 dhe TSA do të dëgjojë portin 2222. Nëse vërtetimi nuk është i dëshiruar, kaloni --no-really-i-dont-want-any-authopsionin pasi të keni hequr opsionet bazë të vërtetimit .

Pasi të nisë serveri në internet, do të shfaqet dalja e mëposhtme.

{"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"}}

Ndalo serverin për momentin, pasi duhet të konfigurohen edhe disa gjëra të tjera.

Filloni 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

Komanda e mësipërme do të supozojë se TSA po funksionon në localhost dhe po dëgjon portin e paracaktuar 2222.

Megjithëse uebfaqja dhe punëtori i Concourse mund të nisen lehtësisht duke përdorur komandat e mësipërme, rekomandohet të përdorni Systemd për të menaxhuar serverin.

Konfiguro Environment and Systemd Service

Përdorimi i shërbimit Systemd për menaxhimin e aplikacionit siguron që aplikacioni të fillojë automatikisht në rast dështimesh dhe në kohën e nisjes. Serveri Concourse nuk merr të dhëna nga asnjë skedar konfigurimi, por ai mund t'i qaset të dhënave nga variablat e mjedisit. Në vend që të vendosni variablat globale të mjedisit, krijoni një skedar të ri për të ruajtur variablat e mjedisit dhe më pas kaloni variablat në Concourse CI duke përdorur shërbimin Systemd.

Krijo një skedar të ri mjedisi për ueb-in e Concourse.

sudo nano /opt/concourse/web.env

Plotësoni skedarin.

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.

Connecting to the Server

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.

Setting Up Nginx Reverse Proxy

Regjistrimet dhe informacionet e tjera të dërguara përmes ndërfaqes së internetit në serverin e Konkursit nuk janë të siguruara. Lidhja nuk është e koduar. Një përfaqësues i kundërt Nginx mund të konfigurohet me një SSL falas Let's Encrypt.

Instaloni Nginx.

sudo apt -y install nginx

Nisni Nginx dhe aktivizoni që të fillojë automatikisht në kohën e nisjes.

sudo systemctl start nginx
sudo systemctl enable nginx

Shtoni depon e Certbot.

sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update

Instaloni Certbot, i cili është aplikacioni i klientit për Let's Encrypt CA.

sudo apt -y install certbot

Shënim : Për të marrë certifikata nga Let's Encrypt CA, domeni për të cilin do të gjenerohen certifikatat duhet të drejtohet drejt serverit. Nëse jo, bëni ndryshimet e nevojshme në të dhënat DNS të domenit dhe prisni që DNS të përhapet përpara se të bëni përsëri kërkesën për certifikatë. Certbot kontrollon autoritetin e domenit përpara se të japë certifikatat.

Gjeneroni certifikatat SSL.

sudo certbot certonly --webroot -w /var/www/html -d ci.example.com

Certifikatat e krijuara ka të ngjarë të ruhen në /etc/letsencrypt/live/ci.example.com/ drejtori. Certifikata SSL do të ruhet si fullchain.pem dhe çelësi privat do të ruhet si privkey.pem.

Le të Enkriptojmë certifikatat skadojnë për 90 ditë, prandaj rekomandohet rinovimi automatik për certifikatat të konfigurohet duke përdorur cronjobs. Cron është një shërbim sistemi që përdoret për të ekzekutuar detyra periodike.

Hapni skedarin e punës cron.

sudo crontab -e

Shtoni rreshtin e mëposhtëm në fund të skedarit.

30 5 * * * /usr/bin/certbot renew --quiet

Puna e mësipërme do të funksionojë çdo ditë në orën 5:30 të mëngjesit. Nëse certifikata duhet të skadojë, ajo do të rinovohet automatikisht.

Krijo një host të ri virtual.

sudo nano /etc/nginx/sites-available/concourse

Plotësoni skedarin.

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;
    }
  }

Shënim : Zëvendësojeni ci.example.com me domenin aktual.

Aktivizoni skedarin e konfigurimit.

sudo ln -s /etc/nginx/sites-available/concourse /etc/nginx/sites-enabled/concourse

Redaktoni skedarin e mjedisit të krijuar për web concourse.

sudo nano /opt/concourse/web.env

Ndryshoni vlerën e CONCOURSE_EXTERNAL_URL dhe shtoni edhe dy rreshta të tjerë në fund të skedarit.

CONCOURSE_EXTERNAL_URL=https://ci.example.com
CONCOURSE_BIND_IP=127.0.0.1
CONCOURSE_BIND_PORT=8080

Ruani skedarin dhe rinisni Concourse Web, Worker dhe Nginx.

sudo systemctl restart concourse-worker concourse-web nginx

Të gjitha të dhënat e dërguara në dhe nga shfletuesi tani janë të siguruara me kriptime SSL.


Si të instaloni Jenkins në CentOS 7

Si të instaloni Jenkins në CentOS 7

Jenkins është një mjet popullor me burim të hapur CI (Integrimi i vazhdueshëm) i cili përdoret gjerësisht për zhvillimin, vendosjen dhe automatizimin e projektit. Ky artikull do

Si të instaloni dhe konfiguroni Concourse CI në Ubuntu 16.04

Si të instaloni dhe konfiguroni Concourse CI në Ubuntu 16.04

Përdorimi i një sistemi të ndryshëm? Hyrje Integrimi i vazhdueshëm është një praktikë e zhvillimit të softuerit DevOps e cila u mundëson zhvilluesve të bashkojnë shpesh

Si të instaloni dhe konfiguroni Ansible në Debian 9 për përdorim me Windows Server

Si të instaloni dhe konfiguroni Ansible në Debian 9 për përdorim me Windows Server

Përdorimi i një sistemi të ndryshëm? Ansible është një mjet me burim të hapur për automatizimin e detyrave. Ai menaxhon konfigurimin e serverëve tuaj Linux dhe Windows. Ajo funksionon

Si të instaloni dhe konfiguroni GoCD në CentOS 7

Si të instaloni dhe konfiguroni GoCD në CentOS 7

Përdorimi i një sistemi të ndryshëm? GoCD është një sistem furnizimi dhe automatizimi i vazhdueshëm me burim të hapur. Kjo ju lejon të modeloni flukse pune komplekse duke përdorur një paralele të saj

Përdorimi i SaltStack With Pillars në Ubuntu 17.04

Përdorimi i SaltStack With Pillars në Ubuntu 17.04

Ndërsa SaltStack është një mjet i shkëlqyeshëm për ekzekutimin e operacioneve në shumë serverë në të njëjtën kohë, ai gjithashtu mbështet paracaktimet e konfigurimit të përcaktuara për host të ruajtur në një

Si të instaloni dhe konfiguroni Ansible në CentOS 7 për përdorim me Windows Server

Si të instaloni dhe konfiguroni Ansible në CentOS 7 për përdorim me Windows Server

Përdorimi i një sistemi të ndryshëm? Ansible është një mjet me burim të hapur për automatizimin e detyrave. Ai menaxhon konfigurimin e serverëve tuaj Linux dhe Windows. Ajo funksionon

Si të instaloni Drone CI në Ubuntu 18.04

Si të instaloni Drone CI në Ubuntu 18.04

Hyrje Drone është një platformë e automatizuar, e vazhdueshme testimi dhe shpërndarjeje, e cila funksionon në infrastrukturën tuaj. Drone mbështet çdo gjuhë, shërbim o

Balancuesit e ngarkesës Vultr

Balancuesit e ngarkesës Vultr

Çfarë është Load Balancer Load Balancers ulen përpara aplikacionit tuaj dhe shpërndajnë trafikun hyrës nëpër disa raste të aplikacionit tuaj. Fo

Si të instaloni Foreman në CentOS 7

Si të instaloni Foreman në CentOS 7

Përdorimi i një sistemi të ndryshëm? Foreman është një mjet falas dhe me burim të hapur që ju ndihmon me konfigurimin dhe menaxhimin e serverëve fizikë dhe virtualë. Forema

Si të instaloni SaltStack në CentOS 7

Si të instaloni SaltStack në CentOS 7

SaltStack, ose Salt, është një zgjidhje popullore e menaxhimit të konfigurimit me burim të hapur që mund të përdoret për të zbatuar ekzekutimin në distancë, menaxhimin e konfigurimit, kodin.

Si të instaloni Strider CD në Ubuntu 18.04

Si të instaloni Strider CD në Ubuntu 18.04

Hyrje Strider CD është një platformë me burim të hapur vendosjeje të vazhdueshme. Aplikacioni është shkruar në Node.js dhe përdor MongoDB si një bazë ruajtëse. Përparimi

Duke përdorur Chocolatey Package Manager në Windows

Duke përdorur Chocolatey Package Manager në Windows

Hyrje Chocolatey sjell menaxhimin e paketave që e bën të lehtë administrimin e softuerit dhe varësive në Linux, në Windows. Ju mund të lehtë dhe shpejt

Krijimi i fotografive me Packer

Krijimi i fotografive me Packer

Çfarë është Packer? Packer është një mjet i imazhit të serverit i zhvilluar nga HashiCorp. Imazhi i serverit; ose ndryshe, infrastrukturë e pandryshueshme; është një alternativë popullore

Si të instaloni dhe konfiguroni Concourse CI në CentOS 7

Si të instaloni dhe konfiguroni Concourse CI në CentOS 7

Përdorimi i një sistemi të ndryshëm? Hyrje Integrimi i vazhdueshëm është një praktikë e zhvillimit të softuerit DevOps e cila u mundëson zhvilluesve të bashkojnë shpesh

Përdorimi i Chef-solo për të konfiguruar një aplikacion Django në Ubuntu

Përdorimi i Chef-solo për të konfiguruar një aplikacion Django në Ubuntu

Ka shumë mënyra për të automatizuar procesin e konfigurimit dhe konfigurimit të një kutie. Për çfarëdo arsye, nëse i gjithë sistemi ynë në këtë pikë përbëhet nga vetëm

Si të instaloni Foreman në Ubuntu 16.04 LTS

Si të instaloni Foreman në Ubuntu 16.04 LTS

Përdorimi i një sistemi të ndryshëm? Foreman është një mjet falas dhe me burim të hapur që ju ndihmon me konfigurimin dhe menaxhimin e serverëve fizikë dhe virtualë. Forema

Fillimi me SaltStack në Ubuntu 17.04

Fillimi me SaltStack në Ubuntu 17.04

SaltStack është një program i menaxhimit të konfigurimit të bazuar në python, i cili është i optimizuar për automatizimin e skedarëve të konfigurimit, vendosjeve dhe çdo gjëje tjetër.

Ngritja e makinave: Aplikimet në botën reale të AI

Ngritja e makinave: Aplikimet në botën reale të AI

Inteligjenca Artificiale nuk është në të ardhmen, është këtu në të tashmen Në këtë blog Lexoni se si aplikacionet e inteligjencës artificiale kanë ndikuar në sektorë të ndryshëm.

Sulmet DDOS: Një përmbledhje e shkurtër

Sulmet DDOS: Një përmbledhje e shkurtër

A jeni edhe ju viktimë e Sulmeve DDOS dhe jeni konfuz në lidhje me metodat e parandalimit? Lexoni këtë artikull për të zgjidhur pyetjet tuaja.

A e keni pyetur ndonjëherë veten se si fitojnë para hakerët?

A e keni pyetur ndonjëherë veten se si fitojnë para hakerët?

Ju mund të keni dëgjuar se hakerët fitojnë shumë para, por a keni menduar ndonjëherë se si i fitojnë ato para? Le te diskutojme.

Shpikjet revolucionare nga Google që do tju bëjnë të lehtë jetën tuaj.

Shpikjet revolucionare nga Google që do tju bëjnë të lehtë jetën tuaj.

Dëshironi të shihni shpikjet revolucionare nga Google dhe se si këto shpikje ndryshuan jetën e çdo njeriu sot? Më pas lexoni në blog për të parë shpikjet nga Google.

E Premte Thelbësore: Çfarë ndodhi me Makinat e drejtuara nga AI?

E Premte Thelbësore: Çfarë ndodhi me Makinat e drejtuara nga AI?

Koncepti i makinave vetë-drejtuese për të dalë në rrugë me ndihmën e inteligjencës artificiale është një ëndërr që e kemi prej kohësh. Por, pavarësisht nga disa premtime, ato nuk shihen askund. Lexoni këtë blog për të mësuar më shumë…

Singulariteti teknologjik: Një e ardhme e largët e qytetërimit njerëzor?

Singulariteti teknologjik: Një e ardhme e largët e qytetërimit njerëzor?

Ndërsa Shkenca evoluon me një ritëm të shpejtë, duke marrë përsipër shumë nga përpjekjet tona, rriten edhe rreziqet për t'iu nënshtruar një Singulariteti të pashpjegueshëm. Lexoni, çfarë mund të thotë singulariteti për ne.

Evolucioni i ruajtjes së të dhënave - Infografik

Evolucioni i ruajtjes së të dhënave - Infografik

Metodat e ruajtjes së të dhënave kanë evoluar mund të jenë që nga lindja e të dhënave. Ky blog mbulon evolucionin e ruajtjes së të dhënave në bazë të një infografike.

Funksionalitetet e shtresave të arkitekturës së referencës së të dhënave të mëdha

Funksionalitetet e shtresave të arkitekturës së referencës së të dhënave të mëdha

Lexoni blogun për të njohur shtresat e ndryshme në arkitekturën e të dhënave të mëdha dhe funksionalitetet e tyre në mënyrën më të thjeshtë.

6 Përfitimet e mahnitshme të të pasurit pajisje shtëpiake inteligjente në jetën tonë

6 Përfitimet e mahnitshme të të pasurit pajisje shtëpiake inteligjente në jetën tonë

Në këtë botë të drejtuar nga dixhitali, pajisjet inteligjente të shtëpisë janë bërë një pjesë thelbësore e jetës. Këtu janë disa përfitime të mahnitshme të pajisjeve shtëpiake inteligjente se si ato e bëjnë jetën tonë të vlefshme dhe më të thjeshtë.

Përditësimi shtesë i macOS Catalina 10.15.4 po shkakton më shumë probleme sesa zgjidhja

Përditësimi shtesë i macOS Catalina 10.15.4 po shkakton më shumë probleme sesa zgjidhja

Së fundmi Apple lëshoi ​​macOS Catalina 10.15.4 një përditësim shtesë për të rregulluar problemet, por duket se përditësimi po shkakton më shumë probleme që çojnë në bricking të makinerive mac. Lexoni këtë artikull për të mësuar më shumë