Πώς να εγκαταστήσετε το Jenkins στο CentOS 7
Το Jenkins είναι ένα δημοφιλές εργαλείο ανοιχτού κώδικα CI (Continuous Integration) που χρησιμοποιείται ευρέως για την ανάπτυξη, την ανάπτυξη και την αυτοματοποίηση έργων. Αυτό το άρθρο θα
Η συνεχής ενσωμάτωση είναι μια πρακτική ανάπτυξης λογισμικού DevOps που επιτρέπει στους προγραμματιστές να συγχωνεύουν συχνά τον τροποποιημένο κώδικα στο κοινόχρηστο αποθετήριο πολλές φορές την ημέρα. Μετά από κάθε συγχώνευση, εκτελούνται αυτόματες εκδόσεις και δοκιμές για τον εντοπισμό προβλημάτων στον κώδικα. Επιτρέπει στους προγραμματιστές να βρίσκουν και να επιλύουν γρήγορα τα σφάλματα για να βελτιώσουν την ποιότητα του λογισμικού και να παρέχουν συνεχή παράδοση του λογισμικού. Η εναλλαγή από το Concourse είναι πολύ εύκολη, καθώς διατηρεί όλες τις παραμέτρους του σε δηλωτικά αρχεία που μπορούν να ελεγχθούν στον έλεγχο έκδοσης. Παρέχει επίσης μια διεπαφή χρήστη Ιστού που εμφανίζει τις πληροφορίες κατασκευής διαδραστικά.
Φροντίστε να αντικαταστήσετε όλες τις εμφανίσεις 192.0.2.1
και ci.example.com
με την πραγματική δημόσια διεύθυνση IP του Vultr και το πραγματικό όνομα τομέα σας.
Ενημερώστε το βασικό σας σύστημα χρησιμοποιώντας τον οδηγό Πώς να ενημερώσετε το Ubuntu 16.04 . Αφού ενημερωθεί το σύστημά σας, προχωρήστε στην εγκατάσταση της PostgreSQL.
Το PostgreSQL είναι ένα σύστημα σχεσιακής βάσης δεδομένων αντικειμένων. Το Concourse αποθηκεύει τα δεδομένα διοχέτευσης σε μια βάση δεδομένων PostgreSQL. Προσθέστε το αποθετήριο 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
Εγκαταστήστε τον διακομιστή βάσης δεδομένων PostgreSQL.
sudo apt -y install postgresql
Ξεκινήστε τον διακομιστή PostgreSQL και ενεργοποιήστε τον να ξεκινά αυτόματα κατά την εκκίνηση.
sudo systemctl start postgresql
sudo systemctl enable postgresql
Αλλάξτε τον κωδικό πρόσβασης για τον προεπιλεγμένο χρήστη PostgreSQL.
sudo passwd postgres
Συνδεθείτε ως χρήστης PostgreSQL:
sudo su - postgres
Δημιουργήστε έναν νέο χρήστη PostgreSQL για το Concourse CI.
createuser concourse
Σημείωση : Ο προεπιλεγμένος χρήστης PostgreSQL μπορεί να χρησιμοποιηθεί για τον έλεγχο ταυτότητας της βάσης δεδομένων, αλλά συνιστάται η χρήση αποκλειστικού χρήστη για τον έλεγχο ταυτότητας της βάσης δεδομένων Concourse σε μια εγκατάσταση παραγωγής.
Η PostgreSQL παρέχει ένα κέλυφος για την εκτέλεση ερωτημάτων στη βάση δεδομένων. Μεταβείτε στο κέλυφος PostgreSQL.
psql
Ορίστε έναν κωδικό πρόσβασης για τον νέο χρήστη της βάσης δεδομένων Concourse.
ALTER USER concourse WITH ENCRYPTED password 'DBPassword';
Σημαντικό : Αντικαταστήστε DBPassword
με έναν ισχυρό κωδικό πρόσβασης. Σημειώστε τον κωδικό πρόσβασης, καθώς θα απαιτηθεί αργότερα στο σεμινάριο.
Δημιουργήστε μια νέα βάση δεδομένων για το Concourse.
CREATE DATABASE concourse OWNER concourse;
Βγείτε από το psql
κέλυφος.
\q
Μετάβαση στον χρήστη sudo από τον τρέχοντα postgres
χρήστη.
exit
Πραγματοποιήστε λήψη της πιο πρόσφατης έκδοσης του εκτελέσιμου Concourse και αποθηκεύστε το /usr/bin
έτσι ώστε να μπορεί να εκτελεστεί απευθείας. Η πιο πρόσφατη έκδοση των δυαδικών αρχείων Concourse και Fly βρίσκεται στη σελίδα λήψης Concourse . Οι νέες κυκλοφορίες είναι πολύ συχνές. Αντικαταστήστε τον παρακάτω σύνδεσμο με τον νέο σύνδεσμο για την πιο πρόσφατη έκδοση.
sudo wget https://github.com/concourse/concourse/releases/download/v3.10.0/concourse_linux_amd64 -O /usr/bin/concourse
Ομοίως, πραγματοποιήστε λήψη της πιο πρόσφατης έκδοσης του εκτελέσιμου αρχείου fly και αποθηκεύστε το στο /usr/bin
.
sudo wget https://github.com/concourse/concourse/releases/download/v3.10.0/fly_linux_amd64 -O /usr/bin/fly
Το Fly είναι η διεπαφή γραμμής εντολών που χρησιμοποιείται για τη σύνδεση στο ATC API του Concourse CI. Το Fly είναι διαθέσιμο για πολλές πλατφόρμες όπως Linux, Windows και MacOS.
Εκχωρήστε άδεια εκτέλεσης στα ληφθέντα concourse
και fly
δυαδικά αρχεία.
sudo chmod +x /usr/bin/concourse /usr/bin/fly
Ελέγξτε εάν τα Concourse and Fly λειτουργούν σωστά ελέγχοντας την έκδοσή τους.
concourse -version
fly -version
Τα ζεύγη κλειδιών RSA παρέχουν έναν τρόπο κρυπτογράφησης της επικοινωνίας μεταξύ των στοιχείων του Concourse.
Για να λειτουργήσει το Concourse, πρέπει να δημιουργηθούν τουλάχιστον τρία ζεύγη κλειδιών. Για την κρυπτογράφηση των δεδομένων περιόδου λειτουργίας, δημιουργήστε ένα session_signing_key
. Αυτό το κλειδί θα χρησιμοποιηθεί επίσης από την TSA για την υπογραφή των αιτημάτων που υποβάλλει στο ATC. Για να ασφαλίσετε τον διακομιστή TSA SSH, δημιουργήστε ένα tsa_host_key
. Τέλος, δημιουργήστε ένα worker_key
για κάθε εργαζόμενο.
Δημιουργήστε έναν νέο κατάλογο για να αποθηκεύσετε τα κλειδιά και τις ρυθμίσεις παραμέτρων που σχετίζονται με το Concourse CI.
sudo mkdir /opt/concourse
Δημιουργήστε τα απαιτούμενα κλειδιά.
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
Εξουσιοδοτήστε το δημόσιο κλειδί των εργαζομένων αντιγράφοντας τα περιεχόμενά του στο authorized_worker_keys
αρχείο.
sudo cp /opt/concourse/worker_key.pub /opt/concourse/authorized_worker_keys
Το Concourse παρέχει δύο ξεχωριστά στοιχεία που πρέπει να ξεκινήσουν: το web και το worker. Ξεκινήστε τον ιστό του 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
εάν θέλετε. Βεβαιωθείτε ότι η διαδρομή προς τα βασικά αρχεία είναι σωστή και βεβαιωθείτε ότι παρέχεται η σωστή τιμή για το όνομα χρήστη και τον κωδικό πρόσβασης στη διαμόρφωση της βάσης δεδομένων PostgreSQL.
Σημείωση : Το ATC θα ακούσει την προεπιλεγμένη θύρα 8080
και το TSA θα ακούσει τη θύρα 2222
. Εάν δεν είναι επιθυμητός έλεγχος ταυτότητας, περάστε την --no-really-i-dont-want-any-auth
επιλογή αφού αφαιρέσετε τις βασικές επιλογές ελέγχου ταυτότητας.
Μόλις ξεκινήσει ο διακομιστής web, θα εμφανιστεί η ακόλουθη έξοδος.
{"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"}}
Διακόψτε τον διακομιστή προς το παρόν, καθώς πρέπει να ρυθμίσετε μερικά ακόμη πράγματα.
Ξεκινήστε το 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
Η παραπάνω εντολή θα υποθέσει ότι το TSA εκτελείται σε localhost και ακούει την προεπιλεγμένη θύρα 2222
.
Αν και ο ιστός του Concourse και ο εργαζόμενος μπορούν να ξεκινήσουν εύκολα χρησιμοποιώντας τις παραπάνω εντολές, συνιστάται η χρήση του Systemd για τη διαχείριση του διακομιστή.
Η χρήση της υπηρεσίας Systemd για τη διαχείριση της εφαρμογής διασφαλίζει ότι η εφαρμογή ξεκινά αυτόματα σε περίπτωση αποτυχίας και κατά την εκκίνηση. Ο διακομιστής Concourse δεν λαμβάνει δεδομένα από κανένα αρχείο διαμόρφωσης, αλλά μπορεί να έχει πρόσβαση στα δεδομένα από μεταβλητές περιβάλλοντος. Αντί να ορίσετε καθολικές μεταβλητές περιβάλλοντος, δημιουργήστε ένα νέο αρχείο για να αποθηκεύσετε τις μεταβλητές περιβάλλοντος και, στη συνέχεια, περάστε τις μεταβλητές στο Concourse CI χρησιμοποιώντας την υπηρεσία Systemd.
Δημιουργήστε ένα νέο αρχείο περιβάλλοντος για το Concourse web.
sudo nano /opt/concourse/web.env
Συμπληρώστε το αρχείο.
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
Η παραπάνω εντολή χρησιμοποιείται για την αρχική σύνδεση στο διακομιστή. -t
χρησιμοποιείται για την παροχή ενός ονόματος στόχου. αντικαταστήστε my-ci
με οποιοδήποτε επιθυμητό όνομα στόχου. Η παραπάνω εντολή θα συνδεθεί στην προεπιλεγμένη ομάδα main
. Θα ζητήσει το όνομα χρήστη και τον κωδικό πρόσβασης που παρέχονται στο αρχείο περιβάλλοντος.
Η έξοδος θα μοιάζει με την ακόλουθη.
[user@vultr ~]$ fly -t my-ci login -c http://192.0.2.1:8080
logging in to team 'main'
username: admin
password:
target saved
Η σύνδεση στόχος θα αποθηκευτεί για μια ημέρα. Μετά από αυτό, θα λήξει.
Για να αποσυνδεθείτε αμέσως.
fly -t my-ci logout
Το Fly μπορεί να χρησιμοποιηθεί για σύνδεση στο διακομιστή εκτός δικτύου, αλλά μόνο εάν ο διακομιστής έχει δημόσια διεύθυνση IP και είναι προσβάσιμος εκτός δικτύου. Μπορείτε να κάνετε λήψη του δυαδικού αρχείου Windows ή MacOS από την τοποθεσία λήψης ή από το περιβάλλον εργασίας web του διακομιστή.
Οι συνδέσεις και άλλες πληροφορίες που αποστέλλονται μέσω της διεπαφής χρήστη web στον διακομιστή του Concourse δεν είναι ασφαλείς. Η σύνδεση δεν είναι κρυπτογραφημένη. Ένας αντίστροφος διακομιστής μεσολάβησης Nginx μπορεί να ρυθμιστεί με ένα δωρεάν SSL Let's Encrypt.
Εγκαταστήστε το Nginx.
sudo apt -y install nginx
Ξεκινήστε το Nginx και ενεργοποιήστε το να ξεκινά αυτόματα κατά την εκκίνηση.
sudo systemctl start nginx
sudo systemctl enable nginx
Προσθέστε το αποθετήριο Certbot.
sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update
Εγκαταστήστε το Certbot, το οποίο είναι η εφαρμογή πελάτη για το Let's Encrypt CA.
sudo apt -y install certbot
Σημείωση : Για να αποκτήσετε πιστοποιητικά από το Let's Encrypt CA, ο τομέας για τον οποίο πρόκειται να δημιουργηθούν τα πιστοποιητικά πρέπει να κατευθύνεται προς τον διακομιστή. Εάν όχι, κάντε τις απαραίτητες αλλαγές στις εγγραφές DNS του τομέα και περιμένετε να διαδοθεί το DNS προτού υποβάλετε ξανά το αίτημα πιστοποιητικού. Το Certbot ελέγχει την αρχή τομέα πριν από την παροχή των πιστοποιητικών.
Δημιουργήστε τα πιστοποιητικά SSL.
sudo certbot certonly --webroot -w /var/www/html -d ci.example.com
Τα πιστοποιητικά που δημιουργούνται είναι πιθανό να αποθηκευτούν στον /etc/letsencrypt/live/ci.example.com/
κατάλογο. Το πιστοποιητικό SSL θα αποθηκευτεί ως fullchain.pem
και το ιδιωτικό κλειδί θα αποθηκευτεί ως privkey.pem
.
Τα πιστοποιητικά Let's Encrypt λήγουν σε 90 ημέρες, επομένως συνιστάται η αυτόματη ανανέωση για τα πιστοποιητικά να ρυθμίζεται με χρήση cronjob. Το Cron είναι μια υπηρεσία συστήματος που χρησιμοποιείται για την εκτέλεση περιοδικών εργασιών.
Ανοίξτε το αρχείο εργασίας cron.
sudo crontab -e
Προσθέστε την ακόλουθη γραμμή στο τέλος του αρχείου.
30 5 * * * /usr/bin/certbot renew --quiet
Η παραπάνω εργασία cron θα εκτελείται καθημερινά στις 5:30 π.μ. Εάν το πιστοποιητικό πρόκειται να λήξει, θα ανανεωθεί αυτόματα.
Δημιουργήστε έναν νέο εικονικό κεντρικό υπολογιστή.
sudo nano /etc/nginx/sites-available/concourse
Συμπληρώστε το αρχείο.
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;
}
}
Σημείωση : Αντικαταστήστε ci.example.com
με τον πραγματικό τομέα.
Ενεργοποιήστε το αρχείο διαμόρφωσης.
sudo ln -s /etc/nginx/sites-available/concourse /etc/nginx/sites-enabled/concourse
Επεξεργαστείτε το αρχείο Environment που δημιουργήθηκε για το concourse Web.
sudo nano /opt/concourse/web.env
Αλλάξτε την τιμή του CONCOURSE_EXTERNAL_URL
και προσθέστε επίσης δύο ακόμη γραμμές στο τέλος του αρχείου.
CONCOURSE_EXTERNAL_URL=https://ci.example.com
CONCOURSE_BIND_IP=127.0.0.1
CONCOURSE_BIND_PORT=8080
Αποθηκεύστε το αρχείο και επανεκκινήστε τα Concourse Web, Worker και Nginx.
sudo systemctl restart concourse-worker concourse-web nginx
Όλα τα δεδομένα που αποστέλλονται από και προς το πρόγραμμα περιήγησης είναι πλέον ασφαλισμένα με κρυπτογράφηση SSL.
Το Jenkins είναι ένα δημοφιλές εργαλείο ανοιχτού κώδικα CI (Continuous Integration) που χρησιμοποιείται ευρέως για την ανάπτυξη, την ανάπτυξη και την αυτοματοποίηση έργων. Αυτό το άρθρο θα
Χρησιμοποιώντας ένα διαφορετικό σύστημα; Εισαγωγή Η συνεχής ενοποίηση είναι μια πρακτική ανάπτυξης λογισμικού DevOps που επιτρέπει στους προγραμματιστές να συγχωνεύουν συχνά
Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Ansible είναι ένα εργαλείο ανοιχτού κώδικα για την αυτοματοποίηση εργασιών. Διαχειρίζεται τη διαμόρφωση των διακομιστών σας Linux και Windows. Λειτουργεί
Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το GoCD είναι ένα σύστημα συνεχούς παράδοσης και αυτοματισμού ανοιχτού κώδικα. Σας επιτρέπει να μοντελοποιείτε σύνθετες ροές εργασίας χρησιμοποιώντας το παράλληλό του an
Ενώ το SaltStack είναι ένα εξαιρετικό εργαλείο για την εκτέλεση λειτουργιών σε πολλούς διακομιστές ταυτόχρονα, υποστηρίζει επίσης προκαθορισμένες ρυθμίσεις παραμέτρων ανά κεντρικό υπολογιστή που είναι αποθηκευμένες σε
Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Ansible είναι ένα εργαλείο ανοιχτού κώδικα για την αυτοματοποίηση εργασιών. Διαχειρίζεται τη διαμόρφωση των διακομιστών σας Linux και Windows. Λειτουργεί
Εισαγωγή Το Drone είναι μια αυτοματοποιημένη, συνεχής πλατφόρμα δοκιμών και παράδοσης που λειτουργεί στη δική σας υποδομή. Το Drone υποστηρίζει οποιαδήποτε γλώσσα, υπηρεσία o
Τι είναι το Load Balancer Οι Load Balancer κάθονται μπροστά από την εφαρμογή σας και διανέμουν την εισερχόμενη κίνηση σε πολλές περιπτώσεις της εφαρμογής σας. Fo
Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Foreman είναι ένα δωρεάν και ανοιχτού κώδικα εργαλείο που σας βοηθά με τη διαμόρφωση και τη διαχείριση φυσικών και εικονικών διακομιστών. Forema
Το SaltStack, ή Salt, είναι μια δημοφιλής λύση διαχείρισης διαμόρφωσης ανοιχτού κώδικα που μπορεί να χρησιμοποιηθεί για την υλοποίηση απομακρυσμένης εκτέλεσης, διαχείρισης παραμέτρων, κωδικού
Εισαγωγή Το Strider CD είναι μια πλατφόρμα συνεχούς ανάπτυξης ανοιχτού κώδικα. Η εφαρμογή είναι γραμμένη στο Node.js και χρησιμοποιεί το MongoDB ως backend αποθήκευσης. Δρασκελιά
Εισαγωγή Το Chocolatey φέρνει τη διαχείριση πακέτων που διευκολύνει τη διαχείριση λογισμικού και εξαρτήσεων στο Linux, στα Windows. Μπορείτε εύκολα και γρήγορα
Τι είναι το Packer; Το Packer είναι ένα εργαλείο απεικόνισης διακομιστή που αναπτύχθηκε από τη HashiCorp. Απεικόνιση διακομιστή? ή εναλλακτικά, αμετάβλητη υποδομή. είναι μια δημοφιλής εναλλακτική
Χρησιμοποιώντας ένα διαφορετικό σύστημα; Εισαγωγή Η συνεχής ενοποίηση είναι μια πρακτική ανάπτυξης λογισμικού DevOps που επιτρέπει στους προγραμματιστές να συγχωνεύουν συχνά
Υπάρχουν πολλοί τρόποι αυτοματοποίησης της διαδικασίας ρύθμισης και διαμόρφωσης ενός κουτιού. Για οποιονδήποτε λόγο, εάν ολόκληρο το σύστημά μας σε αυτό το σημείο αποτελείται από ακριβώς
Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Foreman είναι ένα δωρεάν και ανοιχτού κώδικα εργαλείο που σας βοηθά με τη διαμόρφωση και τη διαχείριση φυσικών και εικονικών διακομιστών. Forema
Το SaltStack είναι ένα πρόγραμμα διαχείρισης ρυθμίσεων που βασίζεται σε python και είναι βελτιστοποιημένο για την αυτοματοποίηση αρχείων διαμόρφωσης, αναπτύξεις και οτιδήποτε άλλο
Η Τεχνητή Νοημοσύνη δεν είναι στο μέλλον, είναι εδώ ακριβώς στο παρόν Σε αυτό το blog Διαβάστε πώς οι εφαρμογές Τεχνητής Νοημοσύνης έχουν επηρεάσει διάφορους τομείς.
Είστε επίσης θύμα των επιθέσεων DDOS και έχετε μπερδευτεί σχετικά με τις μεθόδους πρόληψης; Διαβάστε αυτό το άρθρο για να λύσετε τις απορίες σας.
Μπορεί να έχετε ακούσει ότι οι χάκερ κερδίζουν πολλά χρήματα, αλλά έχετε αναρωτηθεί ποτέ πώς κερδίζουν τέτοια χρήματα; ας συζητήσουμε.
Θέλετε να δείτε επαναστατικές εφευρέσεις της Google και πώς αυτές οι εφευρέσεις άλλαξαν τη ζωή κάθε ανθρώπου σήμερα; Στη συνέχεια, διαβάστε στο blog για να δείτε τις εφευρέσεις της Google.
Η ιδέα των αυτοκινούμενων αυτοκινήτων να βγαίνουν στους δρόμους με τη βοήθεια της τεχνητής νοημοσύνης είναι ένα όνειρο που έχουμε εδώ και καιρό. Όμως, παρά τις πολλές υποσχέσεις, δεν φαίνονται πουθενά. Διαβάστε αυτό το blog για να μάθετε περισσότερα…
Καθώς η Επιστήμη εξελίσσεται με γρήγορους ρυθμούς, αναλαμβάνοντας πολλές από τις προσπάθειές μας, αυξάνονται και οι κίνδυνοι να υποβάλλουμε τον εαυτό μας σε μια ανεξήγητη Ιδιότητα. Διαβάστε τι σημαίνει η μοναδικότητα για εμάς.
Οι μέθοδοι αποθήκευσης των δεδομένων εξελίσσονται μπορεί να είναι από τη γέννηση των Δεδομένων. Αυτό το ιστολόγιο καλύπτει την εξέλιξη της αποθήκευσης δεδομένων με βάση ένα infographic.
Διαβάστε το ιστολόγιο για να μάθετε διαφορετικά επίπεδα στην Αρχιτεκτονική Μεγάλων Δεδομένων και τις λειτουργίες τους με τον απλούστερο τρόπο.
Σε αυτόν τον ψηφιακό κόσμο, οι έξυπνες οικιακές συσκευές έχουν γίνει κρίσιμο μέρος της ζωής. Ακολουθούν μερικά εκπληκτικά οφέλη των έξυπνων οικιακών συσκευών σχετικά με το πώς κάνουν τη ζωή μας να αξίζει και να απλοποιείται.
Πρόσφατα, η Apple κυκλοφόρησε το macOS Catalina 10.15.4 μια συμπληρωματική ενημέρωση για την επιδιόρθωση προβλημάτων, αλλά φαίνεται ότι η ενημέρωση προκαλεί περισσότερα προβλήματα που οδηγούν σε bricking των μηχανών mac. Διαβάστε αυτό το άρθρο για να μάθετε περισσότερα