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

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

Απαιτήσεις

  • Παράδειγμα Vultr που εκτελεί το Ubuntu 17.04 (κύριο)
  • Δύο περιπτώσεις Vultr που εκτελούν το Ubuntu 17.04 (minions)

Ρύθμιση master

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

Τύπος

Ξεκινάμε με τη δημιουργία του φακέλου για τον τύπο μας που περιέχει περαιτέρω τα αρχεία που απαιτούνται για τις λειτουργίες του SaltStack στα minions μας.

mkdir -p /srv/salt/nginx

Μετά τη δημιουργία του φακέλου, μπορούμε να συνεχίσουμε με τη σύνταξη του init.slsαρχείου που αποτελεί ουσιαστικό μέρος κάθε τύπου:

nginx:
  pkg:
    - installed

/etc/nginx/sites-enabled/virtualhosts.conf:
    file.managed:
        - source: salt://nginx/files/virtualhosts.jinja
        - template: jinja
        - user: root
        - group: root
        - mode: 655

  cmd:
    - run
    - names:
        - service nginx restart

Όπως πιθανότατα έχετε παρατηρήσει, το SaltStack χρησιμοποιεί τη μηχανή προτύπων Jinja για τη δημιουργία αρχείων δυναμικής διαμόρφωσης. Αυτό παρέχει ένα ευρύ φάσμα δυνατοτήτων στα αρχεία προτύπων διαμόρφωσης, όπως πρόσβαση στον εγγενή κώδικα Python ή ρύθμιση μεταβλητών και παρόμοια. Το επόμενο βήμα αποτελείται από τη δημιουργία του προτύπου για το virtualhosts.confαρχείο μας , ενώ πρέπει πρώτα να δημιουργήσουμε τον φάκελο:

mkdir -p /srv/salt/nginx/files

Μόλις δημιουργηθεί ο φάκελος, μπορούμε να συνεχίσουμε να γράφουμε το virtualhosts.jinjaαρχείο:

{% for vhost in pillar['vhosts'] %}
server {
    listen {{ vhost['listenPort'] }};
    server_name {{ vhost['serverName'] }};
    root {{ vhost['documentRoot'] }};
    index {%- for index in vhost['indexFiles'] -%}{{ index }}{%- endfor -%};
    location / {
        try_files $uri $uri/ =404;
    }
}
{% endfor %}

Κολόνα

Αφού δημιουργήσουμε τον τύπο, μπορούμε να προχωρήσουμε και να ρυθμίσουμε τη βάση του Pillar:

mkdir -p /srv/pillar/

Οποιεσδήποτε αναφορές για κεντρικούς υπολογιστές που ταιριάζουν με ένα συγκεκριμένο αρχείο πυλώνα εγγράφονται στο top.slsαρχείο στον κατάλογο που μόλις δημιουργήσαμε. Στο παράδειγμά μας, υποθέτουμε ότι υπάρχουν δύο minions με το όνομα κεντρικού υπολογιστή nginxwww1και nginxwww2ενώ θα τους εκχωρήσουμε και τα δύο μοναδικά αρχεία πυλώνων:

base:
  'id:nginxwww1':
    - match: grain
    - nginxwww1
  'id:nginxwww2':
    - match: grain
    - nginxwww2

Στη συνέχεια, θα συνεχίσουμε με τη δημιουργία ενός αρχείου pillar για nginxwww1ενώ θα δημιουργήσουμε ένα vhost που ακούει στη θύρα 81 για τον τομέα example.com, με τη ρίζα του εγγράφου /var/www/example_com/και τα αρχεία ευρετηρίου index.shtml:

vhosts:
    -
      listenPort: '81'
      serverName: 'example.com'
      documentRoot: '/var/www/example_com'
      indexFiles:
        - index.shtml

Θα συνεχίσουμε με τη δημιουργία ενός αρχείου pillar για nginxwww2ενώ θα δημιουργήσουμε ένα vhost που ακούει στη θύρα 82 για τον τομέα example2.com, με τη ρίζα του εγγράφου /var/www/example2_com/και τα αρχεία ευρετηρίου να είναι index.jsκαι index.css:

vhosts:
    -
      listenPort: '82'
      serverName: 'example2.com'
      documentRoot: '/var/www/example2_com'
      indexFiles:
        - index.js
        - index.css

Σημείωση: Τα αρχεία Pillar αποθηκεύονται μέσα/srv/pillar/

Ανάπτυξη

Μπορούμε τώρα να ολοκληρώσουμε την πρώτη μας προσπάθεια με pillars ενημερώνοντάς τα στα minions μας:

salt '*' saltutil.refresh_pillar

Στη συνέχεια, μπορούμε να εκτελέσουμε τον τύπο SaltStack:

salt '*' state.sls nginx

Επιβεβαίωση

Μόλις ο τύπος SaltStack έχει εκτελεστεί και ολοκληρωθεί χωρίς σφάλματα, θα πρέπει να είμαστε σε θέση να δούμε nginxακρόαση στη θύρα 81για nginxwww1και για τις λιμενικές 82για nginxwww2επιβεβαίωση.

συμπέρασμα

Αυτή η μάλλον ελαφριά αλλά ήδη ισχυρή φόρμουλα SaltStack μπορεί να επεκταθεί περαιτέρω για να προσθέσει υποστήριξη για HTTPS, πιθανώς με ενσωμάτωση του Let's Encrypt, υποστήριξη για CGI ή PHP backend και οτιδήποτε μπορείτε επίσης να κάνετε χειροκίνητα. Αυτός ο οδηγός θα πρέπει να σας έχει δώσει μια βασική ιδέα για τους τύπους και τους πυλώνες SaltStack που χρησιμοποιούνται για την ανάπτυξη αρχείων διαμόρφωσης. Καλή αυτοματοποίηση!

Αφήστε ένα σχόλιο

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. Διαβάστε αυτό το άρθρο για να μάθετε περισσότερα