Χρήση του Chef-solo για τη διαμόρφωση μιας εφαρμογής Django στο Ubuntu

Υπάρχουν πολλοί τρόποι αυτοματοποίησης της διαδικασίας ρύθμισης και διαμόρφωσης ενός κουτιού. Για οποιονδήποτε λόγο, εάν ολόκληρο το σύστημά μας σε αυτό το σημείο αποτελείται από ένα μόνο κουτί, η εγκατάσταση μιας πλήρους υποδομής SCM (Διαχείριση διαμόρφωσης παραμέτρων λογισμικού) είναι υπερβολική. Τα σενάρια Shell είναι μια επιλογή, αλλά θα μπορούσαμε επίσης να χρησιμοποιήσουμε μια απογυμνωμένη έκδοση του SCM που είναι διαθέσιμη σε μερικά από τα εργαλεία εκεί έξω. Το Chef είναι μια από τις δημοφιλείς επιλογές και το "chef-solo" είναι η αυτόνομη λειτουργία διαμόρφωσης του Chef, όπου δεν χρειαζόμαστε έναν επιπλέον κόμβο για να λειτουργήσει ως "chef-server". Το μόνο που χρειάζεται είναι μια διεύθυνση URL ή μια διαδρομή προς ένα πακέτο tarball που περιέχει βιβλία μαγειρικής σεφ. Σε σύγκριση με τα σενάρια κελύφους, αυτός ο τύπος προσέγγισης είναι πιο δηλωτικός και αποτελεσματικός εκ των υστέρων και είναι επίσης μια καλή εισαγωγή για να ξεκινήσετε με τις διαδικασίες SCM ή IaC (Υποδομή ως κώδικας).

Μερικά άλλα οφέλη από τη χρήση σόλο σεφ:

  • Συνθεσιμότητα: Χρησιμοποιήστε τα κοινοτικά βιβλία μαγειρικής από το σούπερ μάρκετ σεφ ή άλλα μέρη.
  • Δωρεάν και ανοιχτού κώδικα. άδεια σύμφωνα με την επιτρεπτή άδεια Apache 2.0.
  • Πρόσβαση στο υπόλοιπο οικοσύστημα του Chef (InSpec, ChefSpec, Cookstyle, Foodcritic, chef-shell κ.λπ.)
  • Τα βιβλία μαγειρικής και οι συνταγές μπορούν αργότερα να προσαρμοστούν σε λειτουργία πελάτη/διακομιστή.

Και μερικά μειονεκτήματα:

  • Ορισμένα κοινοτικά βιβλία μαγειρικής στο σούπερ μάρκετ Chef είναι ξεπερασμένα, σπασμένα και δεν συντηρούνται.
  • Ο σεφ-σόλο δεν μπορεί να λύσει τις εξαρτήσεις από μόνος του.

Οι «συνταγές» μέσα σε ένα «βιβλίο μαγειρικής» σεφ έχουν ένα DSL με βάση το ρουμπίνι που περιγράφει ότι οι «πόροι» βρίσκονται σε μια συγκεκριμένη κατάσταση σε έναν κόμβο. Ας προχωρήσουμε σε μια περιήγηση για να εξοικειωθούμε με μερικές έννοιες του Chef που ισχύουν και για τον chef-solo. Στόχος μας είναι να δημιουργήσουμε έναν κόμβο Ubuntu που θα τρέχει μια εφαρμογή ιστού Python/Django χρησιμοποιώντας Gunicorn και NGINX.

Note: We do not necessarily require ChefDK to be installed on our "Chef workstation" (our machine), although with it, we can use 'chef generate' commands to start-off with a directory structure for creating cookbooks, recipes and more. In this article, we will assume ChefDK is installed on our workstation. Commands were run using the version 4.7.26-1 of ChefDK.


(Όλα από αυτό το σημείο και μετά, εκτός εάν ορίζεται διαφορετικά, θα εκτελούνται στο μηχάνημά μας, που αναφέρεται επίσης ως «Σταθμός εργασίας σεφ»)

Δημιουργία του βιβλίου μαγειρικής

Τα βιβλία μαγειρικής στον σεφ είναι μια επαναχρησιμοποιήσιμη μονάδα που περιέχει όλα όσα χρειάζονται για την υποστήριξη ενός σεναρίου διαμόρφωσης. Τα βιβλία μαγειρικής μπορούν να περιέχουν πολλές «συνταγές» και οι «συνταγές» αποτελούνται κυρίως από μοτίβα πόρων. default.rbείναι η προεπιλεγμένη συνταγή που θα εκτελεστεί όταν το βιβλίο μαγειρικής αναφέρεται σε μια λίστα εκτέλεσης . Διαφορετικές συνταγές επιτρέπουν τον διαχωρισμό των ανησυχιών. Για αυτό το σεμινάριο, ωστόσο, θα προσθέσουμε όλες τις δηλώσεις πόρων σε ένα κύριο αρχείο συνταγής, το οποίο είναι το default.rb.

Δημιουργήστε ένα φάκελο με το όνομα "my-chef-project" και δημιουργήστε ένα φάκελο μέσα σε αυτόν που ονομάζεται "cookbooks". Από ./my-chef-project/cookbooks/, τρέξτε:

$ chef generate cookbook my-cookbook

Η δομή του καταλόγου μας θα μοιάζει τώρα με αυτό:

.
└── my-chef-project
└── cookbooks
└── my-cookbook
├── CHANGELOG.md
├── LICENSE
├── Policyfile.rb
├── README.md
├── chefignore
├── kitchen.yml
├── metadata.rb
├── recipes
│ └── default.rb
├── spec
│ ├── spec_helper.rb
│ └── unit
│ └── recipes
│ └── default_spec.rb
└── test
└── integration
└── default
└── default_test.rb

Προσθήκη πακέτων

Το πρώτο βήμα για τη ρύθμιση του κόμβου μας είναι να προσδιορίσουμε ποια πακέτα απαιτούνται από την εφαρμογή μας. Ο κόμβος μας έχει επιλεγεί ως Ubuntu, επομένως μπορούμε να βασιστούμε στον διαχειριστή πακέτων APT για τη συγκέντρωση των εξαρτήσεων. Η εγκατάσταση των πακέτων που παρέχονται από τη διανομή του λειτουργικού συστήματος είναι τότε ένα παιχνιδιάρικο:

apt_update
package 'python3'
package 'python3-pip'
package 'nginx'
package 'pkg-config'
package 'libcairo2-dev'
package 'libjpeg-dev'
package 'libgif-dev'
package 'libgirepository1.0-dev'

Αυτά είναι λίγο πολύ αυτονόητα. Η πρώτη γραμμή θα ενημερώσει το αποθετήριο apt και οι ακόλουθες γραμμές θα εγκαταστήσουν αυτά τα πακέτα.

Note: The packages following 'nginx' are needed for compiling some of the python dependencies through pip. These may differ based on your python/django project dependencies specified in requirements.txt. You can use a trial and error method to determine these packages that you need to include in your cookbook. To do that, perform a manual sudo pip install -r requirements.txt (Note: This installs packages system wide!) on a freshly instantiated ubuntu machine to see if it runs successfully. If not, the stderr should give you hints on what packages are missing.

Δημιουργία χρηστών linux

Μόλις ολοκληρώσουμε την προσθήκη των απαιτούμενων πακέτων, πρέπει να δημιουργήσουμε έναν μη προνομιούχο χρήστη Linux που θα έχει τον πηγαίο κώδικα της εφαρμογής.

user 'bob' do
  uid 1212
  gid 'users'
  home '/home/bob'
  shell '/bin/bash'
  password '$1$alilbito$C83FsODuq0A1pUMeFPeR10'
end

Σημειώστε ότι ο κωδικός πρόσβασης είναι μια σκιώδης μορφή κατακερματισμού που χρησιμοποιείται στο Linux. Μπορεί να προκύψει χρησιμοποιώντας OpenSSL:

$ openssl passwd -1 -salt alilbitof mypassword

Συμπεριλαμβανομένης της πηγής της εφαρμογής

Τώρα ας συμπεριλάβουμε τον πηγαίο κώδικα της εφαρμογής Django στο βιβλίο μαγειρικής μας. Τοποθετήστε τον πηγαίο κώδικα μέσα ./my-chef-project/cookbooks/my-cookbook/files/default/myapp/ Δημιουργήστε τον ./my-chef-project/cookbooks/my-cookbook/files/defaultκατάλογο εάν δεν υπάρχει.

Οι οδηγίες για την αντιγραφή αυτών των αρχείων σε μια απομακρυσμένη θέση στον κόμβο μας περιγράφονται χρησιμοποιώντας τον πόρο remote_directory :

remote_directory '/home/bob/myapp' do
  source 'myapp' # This is the name of the folder containing our source code that we kept in ./my-cookbook/files/default/
  owner 'bob'
  group 'users'
  mode '0755'
  action :create
end

Τραβώντας τις εξαρτήσεις του python

Για να εγκαταστήσουμε τα πακέτα python στο requirements.txt, μπορούμε να χρησιμοποιήσουμε τον πόρο execute για να εκτελέσουμε μια αυθαίρετη εντολή. Σε αυτήν την περίπτωση, πρέπει να εκτελέσουμε την εντολή εγκατάστασης pip πάνω από αυτό:

execute 'install python dependencies' do
  command 'pip3 install -r requirements.txt'
  cwd '/home/bob/myapp'
end

Note: Bear in mind that this is going to execute as the root user and the python libraries will be installed system-wide. If our node is designated to exclusively run this one single python app, then it isn't much of a problem. Despite that, a better option to keep things clean and sane is to find and use a community cookbook that manages python installations or 'virtualenvs'. (or at the very least, write a series of execute blocks to replicate this). Using virtualenvs in python ensures that any python based system tools or other python projects will not be affected

Ρύθμιση των Gunicorn & NGINX

Τώρα ήρθε η ώρα να προετοιμάσουμε τον Gunicorn WSGI HTTP Server με το NGINX ως αντίστροφο διακομιστή μεσολάβησης. Το Nginx χρησιμοποιείται επίσης για τη διαχείριση όλων των στατικών στοιχείων από το Django.

Για να ενεργοποιήσετε το Gunicorn ως υπηρεσία στο Ubuntu, μπορεί να χρησιμοποιηθεί το Systemd. Ο πόρος systemd_unit περιλαμβάνεται στο Chef από την έκδοση 12.11.

systemd_unit 'gunicorn.service' do
  content({
  Unit: {
    Description: 'Django on Gunicorn',
    After: 'network.target',
  },
  Service: {
    ExecStart: '/usr/local/bin/gunicorn --workers 3 --bind localhost:8080 myapp.wsgi:application',
    User: 'bob',
    Group: 'www-data',
    WorkingDirectory: '/home/bob/myapp'
    Restart: 'always',
  },
  Install: {
    WantedBy: 'multi-user.target',
  }
  })
  action [:create, :enable, :start]
end

Τώρα πρέπει να συμπεριλάβουμε μια τυπική διαμόρφωση διακομιστή μεσολάβησης NGINX σε αυτόν τον διακομιστή Gunicorn όπως φαίνεται παρακάτω. Αυτό το απόσπασμα μπορεί να μεταβεί στο ./my-cookbook/templates/nginx.conf.erb. Δημιουργήστε τον κατάλογο προτύπων εάν δεν υπάρχει.

Note: Chef's templates support embedded ruby files that can contain variables, ruby expressions and statements. Although this file has the 'erb' extension, we did not use any of the ruby statements or expressions. Also, for the sake of simplicity, we only have a non HTTPS nginx config here (gentle reminder; please do not do this in production!)

server {
  listen 80;
  server_name http://example.com/;

  location = /favicon.ico { access_log off; log_not_found off; }
  location /static/ {
    root /home/bob/myapp/myapp/static;
  }

  location / {
  include proxy_params;
    proxy_pass http://localhost:8080/;
  }
}

Note: There is also an alternative and a better config, where, for instance the Gunicorn server is bound to a unix domain socket instead of a TCP loopback connection. It's worth exploring that for performance reasons.

Για να αντιγράψετε αυτήν τη διαμόρφωση σε φάκελο με δυνατότητα τοποθεσιών στον κόμβο, χρησιμοποιήστε τον πόρο προτύπου από τον Σεφ.

template '/etc/nginx/sites-available/example.com.conf' do
  source 'nginx.conf.erb'
  owner 'root'
  group 'root'
  mode '0744'
end

Η ενεργοποίηση των ρυθμίσεων στο nginx γίνεται συνήθως με τη δημιουργία ενός συμβολικού συνδέσμου που δείχνει sites-availableτη ρύθμιση παραμέτρων στο sites-enabledφάκελο του nginx . Οι συμβολικοί σύνδεσμοι μπορούν να δηλωθούν σε βιβλία μαγειρικής σεφ με τον πόρο συνδέσμου όπως φαίνεται παρακάτω:

link '/etc/nginx/sites-enabled/example.com.conf' do
  to '/etc/nginx/sites-available/example.com.conf'
end

και για να διαγράψετε τον προεπιλεγμένο συμβολικό σύνδεσμο διαμόρφωσης:

link '/etc/nginx/sites-enabled/default' do
  action :delete
end

Εκκίνηση του NGINX

Και τέλος, για να ενεργοποιήσετε την υπηρεσία nginx:

service 'nginx' do
  action :enable
  action :start
end

Λίστες συμμετοχής

Οι λίστες εκτέλεσης στον σεφ είναι μια ταξινομημένη λίστα ρόλων ή συνταγών σε ένα βιβλίο μαγειρικής που θα εκτελεστούν με τη σειρά στον κόμβο. Έχουμε ένα βιβλίο μαγειρικής "my-cookbook" και την "προεπιλεγμένη" συνταγή μέσα σε αυτό που πρέπει να εκτελέσουμε στο πλαίσιο του Ubuntu, επομένως το runlist.json στον κατάλογο του έργου μας ( ./my-chef-project/runlist.json) θα πρέπει να μοιάζει με αυτό:

{
  "run_list": [
    "recipe[my-cookbook::default]"
  ]
}

Τελικά βήματα

Το βιβλίο μαγειρικής μας για μόνος σεφ είναι έτοιμο για σερβίρισμα. Ήρθε η ώρα να παρέχετε ένα μηχάνημα Ubuntu 18.04 και να εγκαταστήσετε το ChefDK σε αυτό:

$ ssh [email protected] 'apt-get update && yes | apt-get install curl && curl https://packages.chef.io/files/current/chefdk/4.7.45/ubuntu/18.04/chefdk_4.7.45-1_amd64.deb -o chefdk.deb && yes | dpkg -i chefdk.deb && rm chefdk.deb'

Επιστρέφοντας στον σταθμό εργασίας Chef μας , το μόνο που χρειάζεται να κάνουμε είναι να βάλουμε το φάκελο των βιβλίων μαγειρικής μέσα σε ένα tarball, να μεταφέρουμε αυτό το tarball μαζί με το runlist.jsonστον απομακρυσμένο κόμβο που παρέχουμε παραπάνω και να εκτελέσουμε την εντολή chef-solo:

(Η παρακάτω εντολή πρέπει να εκτελεστεί μέσα στον κόμβο ή στον «σεφ πελάτη» και όχι στον σταθμό εργασίας του Chef)

$ chef-solo --recipe-url $(pwd)/chef-solo.tar.gz -j $(pwd)/runlist.json --chef-license=accept

Ή εδώ είναι ένα one-liner (για εκτέλεση από το ./my-chef-project/CWD στο σταθμό εργασίας Chef):

tar zvcf chef-solo.tar.gz ./cookbooks &&\
scp chef-solo.tar.gz runlist.json [email protected]:~/ &&\
ssh [email protected] 'chef-solo --recipe-url $(pwd)/chef-solo.tar.gz -j $(pwd)/runlist.json --chef-license=accept'

Αυτό είναι! Παρακολουθήστε την τυπική έξοδο να γεμίζει με τη δραστηριότητα του σεφ που προσπαθεί να συγκλίνει τον κόμβο σας σε αυτό που έχετε καθορίσει στα βιβλία μαγειρικής. Ο Chef-solo θα εγκαταστήσει όλα τα πετράδια που απαιτούνται για όλα τα βιβλία μαγειρικής. Εάν η εντολή chef-solo είναι επιτυχής, θα έχουμε μια λειτουργική εφαρμογή Django που θα τρέχει πίσω από το nginx στο πλαίσιο του Ubuntu. Μεταβείτε στον τομέα/IP για να το δοκιμάσετε.

Note: Remember that in django you may need to set this domain/ip in the ALLOWED_HOSTS list in settings.py.

Ανταπόκριση στις αλλαγές

Κάθε φορά που κάνουμε μια αλλαγή στο περιεχόμενο του καταλόγου του έργου μας (συνταγές, πρότυπα ή τον πηγαίο κώδικα της εφαρμογής κ.λπ.), απλώς εκτελέστε το παραπάνω one-liner από τον κατάλογο του έργου.

Tip: If the cookbook is version controlled with git (as it should), one good recommendation is to set git hooks to run this one-liner.

Φιλοξενία του tarball (προαιρετικό)

Αν κοιτάξετε προσεκτικά την τελευταία εντολή σόλο σεφ, παρατηρήστε ότι --recipe-urlπροορίζεται για λήψη μιας διεύθυνσης URL. Αυτό σημαίνει ότι μπορείτε να έχετε μια ροή εργασιών όπου ένας CI θα δημιουργήσει το tarball του σεφ-solo σας, θα το ανεβάσει κάπου και θα διαμορφώσει τον κόμβο σας ώστε να τραβάει από αυτό περιοδικά.

Tip: Use curl to pull the changed tarball periodically as a cronjob. curl -z $file will honor If-Modified-Since headers and will only download the tar ball if the remote file has been changed since the timestamp on the existing local $file.


Πώς να εγκαταστήσετε το Jenkins στο CentOS 7

Πώς να εγκαταστήσετε το Jenkins στο CentOS 7

Το Jenkins είναι ένα δημοφιλές εργαλείο ανοιχτού κώδικα CI (Continuous Integration) που χρησιμοποιείται ευρέως για την ανάπτυξη, την ανάπτυξη και την αυτοματοποίηση έργων. Αυτό το άρθρο θα

Πώς να εγκαταστήσετε και να ρυθμίσετε το Concourse CI στο Ubuntu 16.04

Πώς να εγκαταστήσετε και να ρυθμίσετε το Concourse CI στο Ubuntu 16.04

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Εισαγωγή Η συνεχής ενοποίηση είναι μια πρακτική ανάπτυξης λογισμικού DevOps που επιτρέπει στους προγραμματιστές να συγχωνεύουν συχνά

Πώς να εγκαταστήσετε και να ρυθμίσετε τις παραμέτρους του Ansible στο Debian 9 για χρήση με τον Windows Server

Πώς να εγκαταστήσετε και να ρυθμίσετε τις παραμέτρους του Ansible στο Debian 9 για χρήση με τον Windows Server

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Ansible είναι ένα εργαλείο ανοιχτού κώδικα για την αυτοματοποίηση εργασιών. Διαχειρίζεται τη διαμόρφωση των διακομιστών σας Linux και Windows. Λειτουργεί

Πώς να εγκαταστήσετε και να ρυθμίσετε το GoCD στο CentOS 7

Πώς να εγκαταστήσετε και να ρυθμίσετε το GoCD στο CentOS 7

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το GoCD είναι ένα σύστημα συνεχούς παράδοσης και αυτοματισμού ανοιχτού κώδικα. Σας επιτρέπει να μοντελοποιείτε σύνθετες ροές εργασίας χρησιμοποιώντας το παράλληλό του an

Χρήση του SaltStack With Pillars στο Ubuntu 17.04

Χρήση του SaltStack With Pillars στο Ubuntu 17.04

Ενώ το SaltStack είναι ένα εξαιρετικό εργαλείο για την εκτέλεση λειτουργιών σε πολλούς διακομιστές ταυτόχρονα, υποστηρίζει επίσης προκαθορισμένες ρυθμίσεις παραμέτρων ανά κεντρικό υπολογιστή που είναι αποθηκευμένες σε

Πώς να εγκαταστήσετε και να ρυθμίσετε τις παραμέτρους του Ansible στο CentOS 7 για χρήση με τον Windows Server

Πώς να εγκαταστήσετε και να ρυθμίσετε τις παραμέτρους του Ansible στο CentOS 7 για χρήση με τον Windows Server

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Ansible είναι ένα εργαλείο ανοιχτού κώδικα για την αυτοματοποίηση εργασιών. Διαχειρίζεται τη διαμόρφωση των διακομιστών σας Linux και Windows. Λειτουργεί

Πώς να εγκαταστήσετε το Drone CI στο Ubuntu 18.04

Πώς να εγκαταστήσετε το Drone CI στο Ubuntu 18.04

Εισαγωγή Το Drone είναι μια αυτοματοποιημένη, συνεχής πλατφόρμα δοκιμών και παράδοσης που λειτουργεί στη δική σας υποδομή. Το Drone υποστηρίζει οποιαδήποτε γλώσσα, υπηρεσία o

Vultr Load Balancers

Vultr Load Balancers

Τι είναι το Load Balancer Οι Load Balancer κάθονται μπροστά από την εφαρμογή σας και διανέμουν την εισερχόμενη κίνηση σε πολλές περιπτώσεις της εφαρμογής σας. Fo

Πώς να εγκαταστήσετε το Foreman στο CentOS 7

Πώς να εγκαταστήσετε το Foreman στο CentOS 7

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Foreman είναι ένα δωρεάν και ανοιχτού κώδικα εργαλείο που σας βοηθά με τη διαμόρφωση και τη διαχείριση φυσικών και εικονικών διακομιστών. Forema

Πώς να εγκαταστήσετε το SaltStack στο CentOS 7

Πώς να εγκαταστήσετε το SaltStack στο CentOS 7

Το SaltStack, ή Salt, είναι μια δημοφιλής λύση διαχείρισης διαμόρφωσης ανοιχτού κώδικα που μπορεί να χρησιμοποιηθεί για την υλοποίηση απομακρυσμένης εκτέλεσης, διαχείρισης παραμέτρων, κωδικού

Πώς να εγκαταστήσετε το Strider CD στο Ubuntu 18.04

Πώς να εγκαταστήσετε το Strider CD στο Ubuntu 18.04

Εισαγωγή Το Strider CD είναι μια πλατφόρμα συνεχούς ανάπτυξης ανοιχτού κώδικα. Η εφαρμογή είναι γραμμένη στο Node.js και χρησιμοποιεί το MongoDB ως backend αποθήκευσης. Δρασκελιά

Χρήση του Chocolatey Package Manager στα Windows

Χρήση του Chocolatey Package Manager στα Windows

Εισαγωγή Το Chocolatey φέρνει τη διαχείριση πακέτων που διευκολύνει τη διαχείριση λογισμικού και εξαρτήσεων στο Linux, στα Windows. Μπορείτε εύκολα και γρήγορα

Δημιουργία στιγμιότυπων με το Packer

Δημιουργία στιγμιότυπων με το Packer

Τι είναι το Packer; Το Packer είναι ένα εργαλείο απεικόνισης διακομιστή που αναπτύχθηκε από τη HashiCorp. Απεικόνιση διακομιστή? ή εναλλακτικά, αμετάβλητη υποδομή. είναι μια δημοφιλής εναλλακτική

Πώς να εγκαταστήσετε και να ρυθμίσετε το Concourse CI στο CentOS 7

Πώς να εγκαταστήσετε και να ρυθμίσετε το Concourse CI στο CentOS 7

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Εισαγωγή Η συνεχής ενοποίηση είναι μια πρακτική ανάπτυξης λογισμικού DevOps που επιτρέπει στους προγραμματιστές να συγχωνεύουν συχνά

Χρήση του Chef-solo για τη διαμόρφωση μιας εφαρμογής Django στο Ubuntu

Χρήση του Chef-solo για τη διαμόρφωση μιας εφαρμογής Django στο Ubuntu

Υπάρχουν πολλοί τρόποι αυτοματοποίησης της διαδικασίας ρύθμισης και διαμόρφωσης ενός κουτιού. Για οποιονδήποτε λόγο, εάν ολόκληρο το σύστημά μας σε αυτό το σημείο αποτελείται από ακριβώς

Πώς να εγκαταστήσετε το Foreman στο Ubuntu 16.04 LTS

Πώς να εγκαταστήσετε το Foreman στο Ubuntu 16.04 LTS

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Foreman είναι ένα δωρεάν και ανοιχτού κώδικα εργαλείο που σας βοηθά με τη διαμόρφωση και τη διαχείριση φυσικών και εικονικών διακομιστών. Forema

Ξεκινώντας με το SaltStack στο Ubuntu 17.04

Ξεκινώντας με το SaltStack στο Ubuntu 17.04

Το SaltStack είναι ένα πρόγραμμα διαχείρισης ρυθμίσεων που βασίζεται σε python και είναι βελτιστοποιημένο για την αυτοματοποίηση αρχείων διαμόρφωσης, αναπτύξεις και οτιδήποτε άλλο

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Η Τεχνητή Νοημοσύνη δεν είναι στο μέλλον, είναι εδώ ακριβώς στο παρόν Σε αυτό το blog Διαβάστε πώς οι εφαρμογές Τεχνητής Νοημοσύνης έχουν επηρεάσει διάφορους τομείς.

Επιθέσεις DDOS: Μια σύντομη επισκόπηση

Επιθέσεις DDOS: Μια σύντομη επισκόπηση

Είστε επίσης θύμα των επιθέσεων DDOS και έχετε μπερδευτεί σχετικά με τις μεθόδους πρόληψης; Διαβάστε αυτό το άρθρο για να λύσετε τις απορίες σας.

Έχετε αναρωτηθεί ποτέ πώς κερδίζουν χρήματα οι χάκερ;

Έχετε αναρωτηθεί ποτέ πώς κερδίζουν χρήματα οι χάκερ;

Μπορεί να έχετε ακούσει ότι οι χάκερ κερδίζουν πολλά χρήματα, αλλά έχετε αναρωτηθεί ποτέ πώς κερδίζουν τέτοια χρήματα; ας συζητήσουμε.

Επαναστατικές εφευρέσεις από την Google που θα σας φέρουν εύκολη στη ζωή.

Επαναστατικές εφευρέσεις από την Google που θα σας φέρουν εύκολη στη ζωή.

Θέλετε να δείτε επαναστατικές εφευρέσεις της Google και πώς αυτές οι εφευρέσεις άλλαξαν τη ζωή κάθε ανθρώπου σήμερα; Στη συνέχεια, διαβάστε στο blog για να δείτε τις εφευρέσεις της Google.

Friday Essential: Τι συνέβη με τα αυτοκίνητα που κινούνται με AI;

Friday Essential: Τι συνέβη με τα αυτοκίνητα που κινούνται με AI;

Η ιδέα των αυτοκινούμενων αυτοκινήτων να βγαίνουν στους δρόμους με τη βοήθεια της τεχνητής νοημοσύνης είναι ένα όνειρο που έχουμε εδώ και καιρό. Όμως, παρά τις πολλές υποσχέσεις, δεν φαίνονται πουθενά. Διαβάστε αυτό το blog για να μάθετε περισσότερα…

Τεχνολογική μοναδικότητα: Ένα μακρινό μέλλον του ανθρώπινου πολιτισμού;

Τεχνολογική μοναδικότητα: Ένα μακρινό μέλλον του ανθρώπινου πολιτισμού;

Καθώς η Επιστήμη εξελίσσεται με γρήγορους ρυθμούς, αναλαμβάνοντας πολλές από τις προσπάθειές μας, αυξάνονται και οι κίνδυνοι να υποβάλλουμε τον εαυτό μας σε μια ανεξήγητη Ιδιότητα. Διαβάστε τι σημαίνει η μοναδικότητα για εμάς.

Εξέλιξη της αποθήκευσης δεδομένων – Infographic

Εξέλιξη της αποθήκευσης δεδομένων – Infographic

Οι μέθοδοι αποθήκευσης των δεδομένων εξελίσσονται μπορεί να είναι από τη γέννηση των Δεδομένων. Αυτό το ιστολόγιο καλύπτει την εξέλιξη της αποθήκευσης δεδομένων με βάση ένα infographic.

Λειτουργίες Αρχιτεκτονικών Επιπέδων Αναφοράς Μεγάλων Δεδομένων

Λειτουργίες Αρχιτεκτονικών Επιπέδων Αναφοράς Μεγάλων Δεδομένων

Διαβάστε το ιστολόγιο για να μάθετε διαφορετικά επίπεδα στην Αρχιτεκτονική Μεγάλων Δεδομένων και τις λειτουργίες τους με τον απλούστερο τρόπο.

6 εκπληκτικά οφέλη από την ύπαρξη έξυπνων οικιακών συσκευών στη ζωή μας

6 εκπληκτικά οφέλη από την ύπαρξη έξυπνων οικιακών συσκευών στη ζωή μας

Σε αυτόν τον ψηφιακό κόσμο, οι έξυπνες οικιακές συσκευές έχουν γίνει κρίσιμο μέρος της ζωής. Ακολουθούν μερικά εκπληκτικά οφέλη των έξυπνων οικιακών συσκευών σχετικά με το πώς κάνουν τη ζωή μας να αξίζει και να απλοποιείται.

Η ενημέρωση του συμπληρώματος macOS Catalina 10.15.4 προκαλεί περισσότερα προβλήματα από την επίλυση

Η ενημέρωση του συμπληρώματος macOS Catalina 10.15.4 προκαλεί περισσότερα προβλήματα από την επίλυση

Πρόσφατα, η Apple κυκλοφόρησε το macOS Catalina 10.15.4 μια συμπληρωματική ενημέρωση για την επιδιόρθωση προβλημάτων, αλλά φαίνεται ότι η ενημέρωση προκαλεί περισσότερα προβλήματα που οδηγούν σε bricking των μηχανών mac. Διαβάστε αυτό το άρθρο για να μάθετε περισσότερα