Πώς να χρησιμοποιήσετε στατικά και δυναμικά αποθέματα στο Ansible - Μέρος 4


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

Σε ένα Ansible, οι διαχειριζόμενοι κεντρικοί υπολογιστές ή διακομιστές που ελέγχονται από τον κόμβο ελέγχου Ansible ορίζονται σε ένα αρχείο αποθέματος κεντρικού υπολογιστή όπως εξηγείται. Ένας κεντρικός υπολογιστής Το αρχείο αποθέματος είναι ένα αρχείο κειμένου που αποτελείται από ονόματα κεντρικού υπολογιστή ή διευθύνσεις IP διαχειριζόμενων κεντρικών υπολογιστών ή απομακρυσμένων διακομιστών.

Οι Διαχειριζόμενοι κεντρικοί υπολογιστές μπορούν είτε να παρατίθενται ως μεμονωμένες εγγραφές είτε να κατηγοριοποιηθούν με όνομα ομάδας, όπως θα δούμε αργότερα. Στο Ansible, υπάρχουν δύο τύποι αρχείων αποθέματος: Στατικό και Δυναμικό.

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

Αρχείο αποθέματος στατικού κεντρικού υπολογιστή

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

Ένα όνομα ομάδας κεντρικού υπολογιστή περικλείεται σε αγκύλες, π.χ. [όνομα ομάδας]. Οι διαχειριζόμενες εγγραφές κεντρικού υπολογιστή παρατίθενται αργότερα κάτω από το όνομα της ομάδας, η καθεμία στη δική της γραμμή. Όπως αναφέρθηκε προηγουμένως, οι κεντρικοί υπολογιστές παρατίθενται χρησιμοποιώντας είτε ονόματα κεντρικών υπολογιστών είτε διευθύνσεις IP.

[group name]

Host A ip_address 
Host B ip_address
Host c ip_address

Για λόγους επεξήγησης, θα δημιουργήσουμε ένα στατικό αρχείο απογραφής.

# mkdir test_lab && cd test_lab
# vim hosts
[webservers]
173.82.115.165

[database_servers]
173.82.220.239

[datacenter:children]
webservers
database_servers

Αποθηκεύστε το αρχείο και βγείτε.

Όπως μπορείτε να δείτε στο παραπάνω αρχείο αποθέματος, έχουμε δημιουργήσει 2 ομάδες κεντρικών υπολογιστών: διακομιστές ιστού και διακομιστές_βάσης δεδομένων. Επίσης, δημιουργήσαμε μια πρόσθετη ομάδα που ονομάζεται κέντρο δεδομένων που περιλαμβάνει μια ομάδα ομάδων κεντρικών υπολογιστών που δηλώνονται με το επίθημα : παιδιά όπως φαίνεται παραπάνω.

Το Ansible επιτρέπει επίσης την τοποθέτηση ομάδων κεντρικών υπολογιστών κάτω από ένα όνομα ομάδας. Στο παραπάνω αρχείο αποθέματος, οι ομάδες διακομιστές ιστού και διακομιστές_βάσης δεδομένων έχουν τοποθετηθεί στο κέντρο δεδομένων.

ΣΗΜΕΙΩΣΗ: Δεν είναι υποχρεωτική η τοποθέτηση διαχειριζόμενων κεντρικών υπολογιστών σε μια ομάδα φιλοξενίας. Μπορείτε απλώς να τα καταχωρήσετε χρησιμοποιώντας τα ονόματα κεντρικού υπολογιστή ή τις διευθύνσεις IP τους για παράδειγμα.

173.82.202.239
172.82.115.165
load_balancer.pnl.com

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

$ ansible {host-pattern} -i /path/of/inventory/file --list-hosts

Για παράδειγμα,

$ ansible all -i /root/test_labs/hosts --list-hosts

Εναλλακτικά, μπορείτε να χρησιμοποιήσετε τον χαρακτήρα μπαλαντέρ * για να αντικαταστήσετε το όρισμα «όλα».

$ ansible * -i /root/test_labs/hosts --list-hosts

Για να παραθέσετε κεντρικούς υπολογιστές σε μια ομάδα, καθορίστε την ομάδα κεντρικού υπολογιστή στη θέση του μοτίβου κεντρικού υπολογιστή.

$ ansible webservers -i /root/test_labs/hosts --list-hosts

Αρχείο αποθέματος δυναμικού κεντρικού υπολογιστή

Σε μια διαμόρφωση – ειδικά μια ρύθμιση cloud, όπως το AWS όπου το αρχείο αποθέματος αλλάζει συνεχώς καθώς προσθέτετε ή παροπλίζετε διακομιστές, η διατήρηση καρτελών στους κεντρικούς υπολογιστές που ορίζονται στο αρχείο αποθέματος γίνεται πραγματική πρόκληση. Γίνεται άβολο να επιστρέψετε στο αρχείο κεντρικού υπολογιστή και να ενημερώσετε τη λίστα των κεντρικών υπολογιστών με τις διευθύνσεις IP τους.

Και εδώ είναι που παίζει ένα δυναμικό απόθεμα. Τι είναι λοιπόν ένα δυναμικό απόθεμα; Ένα δυναμικό απόθεμα είναι ένα σενάριο γραμμένο σε Python, PHP ή οποιαδήποτε άλλη γλώσσα προγραμματισμού. Είναι χρήσιμο σε περιβάλλοντα cloud όπως το AWS όπου οι διευθύνσεις IP αλλάζουν μόλις σταματήσει ένας εικονικός διακομιστής και ξεκινήσει ξανά.

Η Ansible έχει ήδη αναπτύξει σενάρια απογραφής για δημόσιες πλατφόρμες cloud, όπως το Google Compute Engine, το Amazon EC2 instance, το OpenStack, το RackSpace, το cobbler, μεταξύ άλλων.

  • Τα δυναμικά αποθέματα κάνουν τέλεια δουλειά στη μείωση του ανθρώπινου λάθους, καθώς οι πληροφορίες συλλέγονται χρησιμοποιώντας σενάρια.
  • Απαιτείται ελάχιστη προσπάθεια για τη διαχείριση των αποθεμάτων.

Μπορείτε να γράψετε το δικό σας προσαρμοσμένο δυναμικό απόθεμα σε μια γλώσσα προγραμματισμού της επιλογής σας. Το απόθεμα θα πρέπει να επιστρέψει μια μορφή σε JSON όταν περάσουν οι κατάλληλες επιλογές.

Χρησιμοποιήστε ένα υπάρχον σενάριο δυναμικού αποθέματος

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

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

# ./script --list 

Όπως αναφέρθηκε προηγουμένως, η έξοδος θα πρέπει να είναι σε JSON στην παρακάτω μορφή.

  • Μια λίστα διαχειριζόμενων κεντρικών υπολογιστών ανά ομάδα
  • Λεξικό μεταβλητών

  • Host και hostvars

Δείγμα εξόδου
{
  "webservers": {
    "hosts": [
      "webserver1.example.com",
      "webserver2.example.com"
    ],
    "vars": {}
  },
  "database_servers": {
    "hosts": [
      "mysql_db1",
      "mysql_db2"
    ],
    "vars": {}
  },
  "_meta": {
    "hostvars": {
      "mysql_db2": {},
      "webserver2.example.com": {},
      "webserver1.example.com": {}, 
      "mysql_db1": {}
    }
  }
}
συμπέρασμα

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

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