Puppet Tutorial - One Stop Solution για διαχείριση διαμόρφωσης



Το Puppet Tutorial είναι το δεύτερο blog της σειράς Puppet blog. Μιλά για την αρχιτεκτονική Puppet, στοιχεία και ένα παράδειγμα για την ανάπτυξη mysql & php χρησιμοποιώντας Puppet.

Εκμάθηση μαριονετών

Το Puppet Tutorial είναι το δεύτερο blog της σειράς Puppet blog. Ελπίζω να έχετε διαβάσει το προηγούμενο blog μου στο “ Τι είναι η μαριονέτα 'Που εξηγεί τη Διαχείριση διαμόρφωσης και γιατί είναι σημαντικό με τη βοήθεια των περιπτώσεων χρήσης.

Σε αυτό το σεμινάριο μαριονετών θα καλυφθούν τα ακόλουθα θέματα:





Τι είναι η διαχείριση διαμόρφωσης;

Σε μου προηγούμενο ιστολόγιο , Έχω δώσει μια εισαγωγή στη Διαχείριση Διαμόρφωσης και σε ποιες προκλήσεις μας βοηθά να ξεπεράσουμε. Σε αυτό το Tutorial Puppet, θα σας εξηγήσω για διάφορες αλληλεξαρτώμενες δραστηριότητες της Διαμόρφωσης.Αλλά πριν από αυτό, ας καταλάβουμε τι είναι Στοιχείο διαμόρφωσης (CI). Ένα στοιχείο διαμόρφωσης είναι οποιοδήποτε στοιχείο υπηρεσίας, στοιχείο υποδομής ή άλλο στοιχείο που πρέπει να διαχειριστεί προκειμένου να εξασφαλιστεί η επιτυχής παροχή υπηρεσιών. Παραδείγματα CI περιλαμβάνουν έγγραφα μεμονωμένων απαιτήσεων, λογισμικό, μοντέλα και σχέδια.



Η διαχείριση διαμόρφωσης αποτελείται από τα ακόλουθα στοιχεία:

  • Αναγνώριση διαμόρφωσης
  • Διαχείριση αλλαγών
  • Λογιστική κατάστασης διαμόρφωσης
  • Έλεγχοι διαμόρφωσης

Το παρακάτω διάγραμμα εξηγεί αυτά τα στοιχεία:

Στοιχεία διαχείρισης διαμόρφωσης - Μαριονέτα - Edureka



Αναγνώριση διαμόρφωσης: Είναι η διαδικασία:

  • Επισήμανση στοιχείων διαμόρφωσης λογισμικού και υλικού με μοναδικά αναγνωριστικά
  • Προσδιορισμός της τεκμηρίωσης που περιγράφει ένα στοιχείο διαμόρφωσης
  • Ομαδοποίηση σχετικών στοιχείων διαμόρφωσης σε βασικές γραμμές
  • Επισήμανση ετικετών σε στοιχεία διαμόρφωσης και βασικές γραμμές.

Διαχείριση αλλαγών: Είναι μια συστηματική προσέγγιση για την αντιμετώπιση της αλλαγής τόσο από την άποψη ενός οργανισμού όσο και του ατόμου.

Λογιστική κατάστασης διαμόρφωσης: Το περιλαμβάνει τη διαδικασία καταγραφής και αναφοράς περιγραφών στοιχείων διαμόρφωσης (π.χ. υλικό, λογισμικό, υλικολογισμικό κ.λπ.) και όλες τις αναχωρήσεις από τη γραμμή βάσης κατά τη διάρκεια του σχεδιασμού και της παραγωγής. Σε περίπτωση ύποπτων προβλημάτων, μπορεί να προσδιοριστεί γρήγορα η επαλήθευση της βασικής διαμόρφωσης και οι εγκεκριμένες τροποποιήσεις.

Έλεγχοι διαμόρφωσης: Οι έλεγχοι διαμόρφωσης παρέχουν έναν μηχανισμό για τον προσδιορισμό του βαθμού στον οποίο η τρέχουσα κατάσταση του συστήματος είναι σύμφωνη με την τελευταία βάση και την τεκμηρίωση. Βασικά, είναι μια επίσημη επανεξέταση για να επαληθευτεί ότι το προϊόν που παραδίδεται θα λειτουργεί όπως διαφημίζεται, προωθείται ή με οποιονδήποτε τρόπο υπόσχεται στους πελάτες. Χρησιμοποιεί τις διαθέσιμες πληροφορίες ως αποτέλεσμα των ποιοτικών ελέγχων και δοκιμών μαζί με τις λογιστικές πληροφορίες κατάστασης διαμόρφωσης, για να παρέχει τη διασφάλιση ότι αυτό που απαιτήθηκε έχει δημιουργηθεί.

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

ταξινόμηση ενός πίνακα στο πρόγραμμα c ++

Τώρα είναι η σωστή στιγμή για να κατανοήσετε την Αρχιτεκτονική των Κουκλοπαίδων.

Μαριονέτα - Αρχιτεκτονική του Μαριονέτα

Το Puppet χρησιμοποιεί αρχιτεκτονική Master-Slave. Το παρακάτω διάγραμμα απεικονίζει το ίδιο:

Οι παρακάτω λειτουργίες εκτελούνται στην παραπάνω εικόνα:

  • Ο Κουκλοθέατρο στέλνει τα Γεγονότα στον Μαριονέτα. Τα γεγονότα είναι βασικάζεύγος δεδομένων κλειδιού / τιμής που αντιπροσωπεύει κάποια πτυχή της κατάστασης Slave, όπως τη διεύθυνση IP, το χρόνο λειτουργίας, το λειτουργικό σύστημα ή εάν είναι εικονική μηχανή. Θα εξηγήσω λεπτομερώς τα γεγονότα αργότερα στο blog.
  • Ο Puppet Master χρησιμοποιεί τα γεγονότα για να συντάξει έναν Κατάλογο που καθορίζει τον τρόπο με τον οποίο πρέπει να ρυθμιστεί ο Slave. Κατάλογοςείναι ένα έγγραφο που περιγράφει την επιθυμητή κατάσταση για κάθε πόρο που διαχειρίζεται ο Puppet Master σε έναν Slave. Θα εξηγήσω λεπτομερώς τους καταλόγους και τους πόρους αργότερα.
  • Ο Puppet Slave αναφέρει στον Master δείχνοντας ότι η Διαμόρφωση είναι πλήρης, η οποία είναι ορατή στον πίνακα ελέγχου Puppet.

Ρίξτε μια ματιά σε αυτό το βίντεο φροντιστηρίου κουκλοθέατρου για βαθιά κατανόηση του Puppet.

Εκμάθηση μαριονετών για αρχάριους | Εκπαίδευση DevOps | Έντρεκα

Κουκλοθέατρο - Επικοινωνία Master και Slave

Ο Μαριονέτα και ο Σκλάβος επικοινωνούν μέσωένα ασφαλές κρυπτογραφημένο κανάλι με τη βοήθεια του SSL. Το παρακάτω διάγραμμα απεικονίζει το ίδιο:

Όπως μπορείτε να δείτε από την παραπάνω εικόνα:

  • Ο Puppet Slave ζητά πιστοποιητικό Master Puppet.
  • Μετά τη λήψη του πιστοποιητικού Puppet Master, το Master ζητά πιστοποιητικό Slave.
  • Μόλις ο Master έχει υπογράψει το πιστοποιητικό Slave, Slave αιτήσεις για διαμόρφωση / δεδομένα.
  • Τέλος, το Puppet Master θα στείλει τη διαμόρφωση στο Puppet Slave.

Ας ρίξουμε μια ματιά σε διάφορα στοιχεία κουκλοθέατρου.

Tutorial Puppet - Συστατικά του Μαριονέτα

Εκδηλώσεις: Κάθε Slave έχει τις λεπτομέρειες διαμόρφωσής του στο Puppet Master, γραμμένο στη μητρική γλώσσα Puppet. Αυτές οι λεπτομέρειες είναι γραμμένες στη γλώσσα που η Puppet μπορεί να καταλάβει και ονομάζεται Manifests. Αποτελούνται από κουκλοθέατρο και τα ονόματά τους χρησιμοποιούν το .pp επέκταση. Αυτά είναι βασικά προγράμματα μαριονετών.
Για παράδειγμα: Μπορείτε να γράψετε ένα μανιφέστο στο Puppet Master που δημιουργεί ένα αρχείο και εγκαθιστά τον διακομιστή Apache σε όλους τους Slave Puppet που είναι συνδεδεμένοι στο Puppet Master.

Μονάδα μέτρησης: Το Puppet Module είναι μια συλλογή εκδηλώσεων και δεδομένων (όπως γεγονότα, αρχεία και πρότυπα) και έχουν μια συγκεκριμένη δομή καταλόγου. Οι ενότητες είναι χρήσιμες για την οργάνωση του κουκλοθέατρου σας, επειδή σας επιτρέπουν να χωρίσετε τον κώδικά σας σε πολλαπλές εκδηλώσεις. Οι ενότητες είναι αυτόνομες δέσμες κώδικα και δεδομένων.

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

Παράγοντας: Το Facter συγκεντρώνει βασικές πληροφορίες (γεγονότα) για το Puppet Slave, όπως λεπτομέρειες υλικού, ρυθμίσεις δικτύου, τύπο και έκδοση λειτουργικού συστήματος, διευθύνσεις IP, διευθύνσεις MAC, κλειδιά SSH και άλλα. Αυτά τα γεγονότα στη συνέχεια διατίθενται στις εκδηλώσεις του Puppet Master ως μεταβλητές.

Mcollective: Είναι ένα πλαίσιο που επιτρέπει αρκετές εργασίες να εκτελούνται παράλληλα σε πολλά Slaves. Εκτελεί διάφορες λειτουργίες όπως:

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

Κατάλογοι: Ένας Κατάλογος περιγράφει την επιθυμητή κατάσταση κάθε διαχειριζόμενου πόρου σε έναν Slave. Είναι μια συλλογή όλων των πόρων που ο Δάσκαλος Κουκλοθεάτρου εφαρμόζει σε έναν δεδομένο Σκλάβο, καθώς και τις σχέσεις μεταξύ αυτών των πόρων.Οι κατάλογοι συντάσσονται από έναν μαριονέτα Master από τα μανιφέστα και τα δεδομένα που παρέχονται από τους Slave (όπως γεγονότα, πιστοποιητικά και ένα περιβάλλον εάν παρέχεται), καθώς και από προαιρετικά εξωτερικά δεδομένα (όπως δεδομένα από έναν εξωτερικό ταξινομητή Slave, εξαγόμενοι πόροι, και λειτουργίες). Στη συνέχεια, ο Δάσκαλος εξυπηρετεί τον μεταγλωττισμένο Κατάλογο στον Δούλο όταν του ζητηθεί.

Τώρα σε αυτό το Tutorial Puppet, η επόμενη ενότητα μου θα επικεντρωθεί στο Hands-On.

Εκπαιδευτικό μαριονέτα - Hands-On

Θα σας δείξω πώς να αναπτύξετε το MySQL και το PHP από το Puppet Master στο Puppet Slave. Χρησιμοποιώ μόνο ένα Slave για επίδειξη, μπορεί να υπάρχουν εκατοντάδες Slave συνδεδεμένοι σε ένα Master. Για να αναπτύξω PHP και MySQL θα χρησιμοποιήσω προκαθορισμένες λειτουργικές μονάδες διαθέσιμες στο forge.puppet.com. Μπορείτε επίσης να δημιουργήσετε τις δικές σας ενότητες.

Βήμα 1: Στο Puppet Master εγκαταστήστε τις μονάδες MySQL και PHP.

Εκτελέστε αυτό:

1) ενότητα puppetlabs-mysql –version 3.10.0

Αυτή η μονάδα MySQL εγκαθιστά, διαμορφώνει και διαχειρίζεται την υπηρεσία MySQL. Αυτή η ενότητα διαχειρίζεται τόσο την εγκατάσταση όσο και τη διαμόρφωση του MySQL, καθώς και την επέκταση του Puppet ώστε να επιτρέπει τη διαχείριση πόρων MySQL, όπως βάσεις δεδομένων, χρήστες και επιχορηγήσεις.

2) εγκατάσταση puppet module mayflower-php –version 4.0.0-beta1

Αυτή η ενότητα χρησιμοποιείται για τη διαχείριση της PHP, ιδίως του php-fpm. Το PHP-FPM (FastCGI Process Manager) είναι μια εναλλακτική εφαρμογή PHP FastCGI με ορισμένες πρόσθετες δυνατότητες χρήσιμες για ιστότοπους οποιουδήποτε μεγέθους, ειδικά για πιο πολυσύχναστους ιστότοπους.

Βήμα 2: Στις εκδηλώσεις Puppet περιλαμβάνονται ο διακομιστής MySQL και η PHP.

Εκτελέστε αυτό: vi /etc/puppet/manifests/site.pp

Μπορείτε να χρησιμοποιήσετε οποιοδήποτε άλλο πρόγραμμα επεξεργασίας όπως vim, gedit κ.λπ. Σε αυτό το αρχείο site.pp προσθέστε τα εξής:

συμπεριλάβετε ':: mysql :: server' include ':: php'

Αποθήκευση και έξοδος.

Βήμα 3: Ο Puppet Slaves τραβά τη διαμόρφωσή του από το Master περιοδικά (μετά από κάθε 30 λεπτά). Θα αξιολογήσει το κύριο μανιφέστο και θα εφαρμόσει τη λειτουργική μονάδα που καθορίζει τη ρύθμιση MySQL και PHP. Αν θέλετε να το δοκιμάσετε αμέσως, πρέπει να εκτελέσετε την ακόλουθη εντολή σε κάθε κόμβο Slave:

Εκτελέστε αυτό: πράκτορας μαριονετών -t

Έτσι MySQL και PHP εγκαθίστανται με επιτυχία στον κόμβο Slave.

Βήμα 4: Για να ελέγξετε την έκδοση του MySQL και της εγκατεστημένης PHP:

Εκτελέστε αυτό:

1) mysql -v

2) php-μετατροπή

Συγχαρητήρια! Οι MySQl και PHP λειτουργούν στο Puppet Slave. Εδώ σας έδειξα μόνο έναν σκλάβο, αλλά φανταστείτε αν υπάρχουν εκατοντάδες σκλάβοι. Σε αυτό το σενάριο η εργασία σας γίνεται τόσο εύκολη, Απλώς καθορίστε τις διαμορφώσεις στο Puppet Master και το Puppet Slaves θα αξιολογήσει αυτόματα το κύριο μανιφέστο και θα εφαρμόσει τη λειτουργική μονάδα που καθορίζει τη ρύθμιση MySQL και PHP.

Εάν το βρήκατε Εκμάθηση μαριονετών σχετικό, δείτε το από την Edureka, μια αξιόπιστη διαδικτυακή εταιρεία εκμάθησης με δίκτυο περισσότερων από 250.000 ικανοποιημένων μαθητών σε όλο τον κόσμο. Το μάθημα Εκπαίδευσης Πιστοποίησης Edureka DevOps βοηθά τους μαθητές να αποκτήσουν εμπειρία σε διάφορες διαδικασίες και εργαλεία DevOps όπως Puppet, Jenkins, Nagios και GIT για την αυτοματοποίηση πολλαπλών βημάτων στο SDLC.