1. Επισκόπηση Το Puppet είναι ένα εργαλείο διαμόρφωσης και ανάπτυξης αυτοματισμού λογισμικού ανοιχτού κώδικα που είναι εύκολο στη χρήση και ισχυρό και κερδίζει όλο και περισσότερη προσοχή και πολλές μεγάλες εταιρείες πληροφορικής χρησιμοποιούν τώρα μαριονέτες για τη διαχείριση και την ανάπτυξη λογισμικού σε συμπλέγματα, όπως η Google που χρησιμοποιεί μαριονέτα για τη διαχείριση περισσότερων από 6.000 επιτραπέζιων υπολογιστών Mac (δεδομένα 2007). Αυτό το άρθρο εισάγει κυρίως τη μέθοδο εγκατάστασης, την αρχιτεκτονική σχεδιασμού και τη μέθοδο χρήσης της μαριονέτας.
2. Αρχιτεκτονική σχεδιασμού Το Puppet βασίζεται στην αρχιτεκτονική C/S. Η πλευρά του διακομιστή αποθηκεύει όλο τον κώδικα διαμόρφωσης για τον διακομιστή πελάτη, ο οποίος ονομάζεται manifest in puppet. Αφού ο πελάτης κατεβάσει το μανιφέστο, ο διακομιστής μπορεί να διαμορφωθεί σύμφωνα με το μανιφέστο, όπως διαχείριση πακέτων, διαχείριση χρηστών και διαχείριση αρχείων.
Όπως φαίνεται στο παραπάνω σχήμα, η ροή εργασίας της μαριονέτας είναι η εξής: (1) Η μαριονέτα πελάτη καλεί το facter και το facter εντοπίζει ορισμένες μεταβλητές του κεντρικού υπολογιστή, όπως όνομα κεντρικού υπολογιστή, μέγεθος μνήμης, διεύθυνση IP κ.λπ. Το pupppetd στέλνει αυτές τις πληροφορίες στον διακομιστή μέσω σύνδεσης SSL. (2) Ο κουκλοπαίκτης από την πλευρά του διακομιστή εντοπίζει το όνομα κεντρικού υπολογιστή του πελάτη, στη συνέχεια βρίσκει την αντίστοιχη διαμόρφωση κόμβου στο μανιφέστο και αναλύει αυτό το μέρος του περιεχομένου. Η ανάλυση χωρίζεται σε διάφορα στάδια, τον έλεγχο σύνταξης και την αναφορά σφαλμάτων εάν η σύνταξη είναι λανθασμένη. Εάν η σύνταξη είναι σωστή, συνεχίστε την ανάλυση και το αποτέλεσμα της ανάλυσης θα δημιουργήσει έναν ενδιάμεσο "ψευδοκώδικα" και, στη συνέχεια, στείλτε τον ψευδοκώδικα στον πελάτη. (3) Ο πελάτης λαμβάνει τον "ψευδοκώδικα" και τον εκτελεί και ο πελάτης στέλνει το αποτέλεσμα εκτέλεσης στον διακομιστή. (4) Η πλευρά του διακομιστή εγγράφει το αποτέλεσμα εκτέλεσης του πελάτη στο αρχείο καταγραφής. Υπάρχουν δύο σημεία που αξίζει να σημειωθούν στη διαδικασία της εργασίας PUPPET, πρώτον, προκειμένου να διασφαλιστεί η ασφάλεια, ο πελάτης και ο κύριος βασίζονται σε SSL και πιστοποιητικά και μόνο ο πελάτης που έχει πιστοποιηθεί από το κύριο πιστοποιητικό μπορεί να επικοινωνήσει με τον κύριο. Δεύτερον, η μαριονέτα θα διατηρήσει το σύστημα σε μια συγκεκριμένη κατάσταση που περιμένετε και θα το διατηρήσει όλη την ώρα, όπως ο εντοπισμός ενός αρχείου και η διασφάλιση ότι υπάρχει πάντα, διασφαλίζοντας ότι η υπηρεσία ssh είναι πάντα ενεργοποιημένη, εάν το αρχείο διαγραφεί ή η υπηρεσία ssh κλείσει, την επόμενη φορά που θα εκτελεστεί η μαριονέτα (30 λεπτά από προεπιλογή), θα δημιουργήσει ξανά το αρχείο ή θα ξεκινήσει την υπηρεσία ssh.
3. Εγκατάσταση λογισμικού Δεν συνιστάται η χρήση της εντολής apt-get για εγκατάσταση, επειδή η μαριονέτα που κατεβάζεται από αυτήν την εντολή έχει σφάλμα. Μπορεί να εγκατασταθεί απευθείας από τον πηγαίο κώδικα και το λογισμικό που πρέπει να εγκατασταθεί είναι ρουμπίνι, facter και μαριονέτα.
3.1 Διαδικασία εγκατάστασης Επεξεργαστείτε το /etc/host για να τροποποιήσετε το όνομα κεντρικού υπολογιστή, καθώς η μαριονέτα βασίζεται σε πιστοποιητικό και περιέχει το όνομα κεντρικού υπολογιστή στο πιστοποιητικό. Εγκαταστήστε τα Ruby, Facter και Puppet στο Master and Slave και χρησιμοποιήστε το Ruby Install.rb για να εγκαταστήσετε το Facter and Puppet.
3.2 Δομή καταλόγου μετά την εγκατάσταση (1) Κατάλογος εγκατάστασης Ο κατάλογος εγκατάστασης αποθηκεύεται στο /etc/puppet και εμφανίζεται σε αυτόν τον κατάλογο αρχεία δήλωσης. Άλλα εκτελέσιμα αρχεία στο /user/sbin περιλαμβάνουν κυρίως: μαριονέτα: Χρησιμοποιείται για την εκτέλεση ανεξάρτητων αρχείων mainfests που έχουν γραφτεί από τον χρήστη, όπως: μαριονέτα -l /tmp/manifest.log manifest.pp puppetd: Ένα πρόγραμμα-πελάτης που εκτελείται στον διαχειριζόμενο κεντρικό υπολογιστή, όπως: μαριονέτα -όνομα διακομιστή -waitforcert 60 puppetmasterd: Ένα πρόγραμμα διακομιστή που εκτελείται στη μηχανή διαχείρισης, όπως: puppetmasterd –εντοπισμός σφαλμάτων Το πρόγραμμα πιστοποίησης Puppetca Puppet χρησιμοποιείται κυρίως για τον έλεγχο ταυτότητας πιστοποιητικών slave, όπως: Ελέγξτε το slave που θέλετε να πιστοποιήσετε: puppetca –list Πιστοποιήστε αυτούς τους σκλάβους: puppetca -s –a Το puppetrun χρησιμοποιείται για τη σύνδεση με τον πελάτη, αναγκάζοντας το τοπικό αρχείο διαμόρφωσης να εκτελεστεί, όπως: puppetrun -p 10 -host host1 -host host2 -t remotefile -t webserver (2) Αρχεία διαμόρφωσης μαριονέτα.conf Το κύριο αρχείο ρυθμίσεων του Puppet είναι το /etc/puppet/puppet.conf για χρήστες root και το ~user/.puppet/puppet.conf για κανονικούς χρήστες Για συγκεκριμένες παραμέτρους διαμόρφωσης, δείτε:
http://docs.puppetlabs.com/references/stable/configuration.html#configuration-files fileserver.conf Το αρχείο διαμόρφωσης του διακομιστή αρχείων μαριονέτας. Χρησιμοποιήστε τη διαδρομή αρχείου διαμόρφωσης διαδρομής και αποδοχή/απόρριψη για να διαμορφώσετε τα δικαιώματα πρόσβασης, δείτε http://docs.puppetlabs.com/guides/file_serving.html
3.3 Βεβαιωθείτε ότι η εγκατάσταση είναι επιτυχής Επιλέξτε ένα slave για επαλήθευση με το master, υποθέτοντας ότι ο κεντρικός υπολογιστής του slave είναι slave00 και ο κεντρικός υπολογιστής του master είναι masterhost, πληκτρολογήστε slave00: puppetd -δοκιμή -όνομα διακομιστή Στη συνέχεια, κοιτάξτε τον σκλάβο που θα πιστοποιηθεί στο masterhost: κουκλοθέατρο – λίστα Εάν αυτό είναι εντάξει, μπορείτε να δείτε τον slave00 να υπογράφει το πιστοποιητικό του slave: puppetca -s -α Με αυτόν τον τρόπο, το slave00 πέρασε την επικύρωση του πιστοποιητικού και μπορεί να αλληλεπιδράσει περαιτέρω με τον κύριο. Γράψτε το αρχείο site.pp στον κατάλογο /etc/puppet/manifests του masterhost, ο οποίος λέει: προεπιλογή κόμβου { αρχείο { "/tmp/test": content=>"γεια", λειτουργία => 0644;
}
} Ταυτόχρονα, πληκτρολογήστε puppetd –test –server servername στο slave00, ελέγξτε το φάκελο /tmp του slave00 και δημιουργήστε μια νέα δοκιμή αρχείου, το περιεχόμενο της οποίας είναι hello και η άδεια του αρχείου είναι -rw-r—r-. Με αυτόν τον τρόπο, η εγκατάσταση μαριονέτας αποδεικνύεται επιτυχημένη
|