Αβίαστη παροχή: Εξυπνότερος και απλός τρόπος παροχής

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

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



Οι περισσότερες από τις εφαρμογές μεγάλης κλίμακας απαιτούν να έχετε την ίδια ρύθμιση περιβάλλοντος σε πολλά συστήματα.Λοιπόν, πώς το κάνετε αυτό; Εκτελέστε το ίδιο σύνολο εντολών σε εκατό συστήματα χειροκίνητα; Ναχ .. Είναι πολύ παλιό σχολείο. Αυτό είναι κάτι που οι μηχανές είναι καλοί, όχι στους ανθρώπους. Τι γίνεται αν σας έλεγα ότι αυτή η μακρά και βαρετή διαδικασία θα μπορούσε να γίνει με την εκτέλεση ενός μόνο βιβλίου παιχνιδιού Ansible;Αυτό θα μιλήσουμε σε αυτό το ιστολόγιο - Ansible Provisioning.



Τα θέματα που καλύπτονται είναι:

Εάν επιθυμείτε να μάθετε το DevOps, ' το μάθημα θα πρέπει να είναι η επιλογή σας.



Τι είναι το Ansible;

Το DevOps είναι μια κουλτούρα όπου η αυτοματοποίηση έχει πολύ υψηλή προτεραιότητα. Όταν μπορεί να υπάρχουν εργαλεία για την αυτοματοποίηση της ανάπτυξης και της διαδικασίας δοκιμής, γιατί να μην διαθέτετε εργαλεία για τη διαχείριση και την παροχή διαμόρφωσης. Υπάρχουν ένα εκατομμύριο τρόποι για να γίνετε πιο έξυπνοι και η χρήση του Ansible είναι ένας από αυτούς. Είναι ένα από τα πιο ευρέως χρησιμοποιούμενα εργαλεία.

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

Τι μπορεί να αυτοματοποιήσει το Ansible;

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



πότε να χρησιμοποιήσετε αυτό το java
  1. Τροφοδοσία: Η δημιουργία κατάλληλου περιβάλλοντος για ζωντανή εφαρμογή / λογισμικό είναι απαραίτητη. Το Ansible παρέχει έναν τρόπο αυτοματοποίησης του περιβάλλοντος που δημιουργήθηκε για την ύπαρξη της εφαρμογής.
  2. Διαχείριση διαμόρφωσης: Εκτελέστε μια μεγάλη ποικιλία εργασιών διαμόρφωσης, όπως υπηρεσίες εκκίνησης / διακοπής, αλλαγή της διαμόρφωσης συστήματος, συσκευής ή εφαρμογής κ.λπ.
  3. Ανάπτυξη εφαρμογής: Αυτοματοποιήστε τον καθορισμό της ανάπτυξης με το Ansible και διαχειριστείτε τη χρήση χρησιμοποιώντας Αβίαστος πύργος . Αυτό καθιστά ολόκληρο τον κύκλο εφαρμογών από την παραγωγή έως την ανάπτυξη αποτελεσματικό και διαχειρίσιμο.
  4. Συνεχής παράδοση: Η δημιουργία και η διαχείριση ενός αγωγού συνεχούς ολοκλήρωσης / συνεχούς παράδοσης μπορεί να είναι δυσκίνητη. Εκεί μπαίνει το Ansible και διευκολύνει τη ζωή του προγραμματιστή.
  5. Ασφάλεια και συμμόρφωση: Η συνεργασία με τα έργα, θέτει πάντα όρια και είναι ενσωματωμένη στις πολιτικές ασφάλειας της εταιρείας. Η ενσωμάτωση των πολιτικών ασφαλείας αυτόματα με την ανάπτυξη μπορεί να διευκολύνει τη συμμόρφωση με τις πολιτικές.
  6. Ενορχήστρωση: Ένα ολόκληρο έργο είναι μια συλλογή πολλών διαφορετικών περιπτώσεων με διαφορετική διαμόρφωση. Το Ansible συγχωνεύει και διαχειρίζεται αυτές τις διαφορετικές περιπτώσεις στο σύνολό της.

Ανάγκη για Αβίαστη Παροχή

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

Επίδειξη: Δημιουργήστε μια στοίβα LAMP και αναπτύξτε μια ιστοσελίδα

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

Σε αυτήν την επίδειξη παροχής υπηρεσιών Ansible, θα σας δείξω πώς να παρέχετε το περιβάλλον φιλοξενίας ιστότοπων χρησιμοποιώντας το Ansible. Εγκαθιστούμε τη στοίβα LAMP (Linux, Apache, MySQL και PHP) και στη συνέχεια αναπτύσσουμε έναν ιστότοπο.

Για αυτό το demo, έχω χρησιμοποιήσει ένα Linux VirtualBox με έκδοση Ubuntu 17.04. Έχω χρησιμοποιήσει δύο εικονικές μηχανές, μία ως διακομιστή μου όπου είναι εγκατεστημένο το Ansible και το άλλο μηχάνημα λειτουργεί ως απομακρυσμένος κεντρικός υπολογιστής μου. Ας ξεκινήσουμε με τη ρύθμιση του Ansible στον διακομιστή.

Έχω δημιουργήσει μια απλή στατική ιστοσελίδα αποθηκευμένη σε ένα φάκελο δείκτης που έχει δύο αρχεία, index.html και style.css.

index.html:

  Ιστότοπος που χρησιμοποιεί HTML και CSS                Υιοθετήστε τώρα        

style.css

* { περιθώριο: 0 επένδυση: 0 } κεφαλίδα { φόντο-εικόνα: γραμμική-κλίση (rgba (0,0,0,0,5), rgba (0,0,0,0,5)), url ('puppie.jpg') ύψος: 100vh μέγεθος φόντου: κάλυμμα φόντο-θέση: κέντρο } .nav-μενού { float: σωστά list-style: κανένα margin-top: 30 εικονοστοιχεία } .nav-μενού li { οθόνη: inline-block } .nav-menu li a { χρώμα: τυρκουάζ κείμενο-διακόσμηση: κανένα επένδυση: 5px 20px font-family: 'Verdana', 'sans-serif' μέγεθος γραμματοσειράς: 20 εικονοστοιχεία } .homebtn α { περίγραμμα: 1px συμπαγές γκρι χρώμα φόντου: λευκό } .nav-menu li a: αιωρηθείτε { περίγραμμα: 1px συμπαγές γκρι χρώμα φόντου: λευκό } .tagline { θέση: απόλυτη πλάτος: 1200 εικονοστοιχεία περιθώριο αριστερά: 0 margin-top: 0 } ω1 { άσπρο χρώμα μέγεθος γραμματοσειράς: 50 εικονοστοιχεία font-family: 'Verdana', 'sans-serif' text-align: κέντρο margin-top: 275 εικονοστοιχεία } .ενστερνίζομαι { margin-top: 30 εικονοστοιχεία περιθώριο αριστερά: 540 εικονοστοιχεία } .bttn { περίγραμμα: 1px στερεό λευκό επένδυση: 10px 30px χρώμα: κίτρινο font-family: 'Verdana', 'sans-serif' μέγεθος γραμματοσειράς: 22 εικονοστοιχεία κείμενο-διακόσμηση: κανένα } . υιοθετήστε ένα: αιωρηθείτε { χρώμα φόντου: κόντρα πλακέ }

Βήμα 1: Εκτελέστε τις ακόλουθες εντολές για ενημέρωση αποθετηρίων, προσθήκη των απαιτούμενων αποθετηρίων και ρύθμιση παραμέτρων PPA στο μηχάνημά σας για εγκατάσταση Ansible:

$ sudo apt-get update $ sudo apt-get install software-properties-common $ sudo apt-add-repository ppa: ansible / ansible

Πατήστε enter για να αποδεχτείτε την προσθήκη PPA και, στη συνέχεια, εγκαταστήστε το Ansible μετά την ενημέρωση των αποθετηρίων.

$ sudo apt-get ενημέρωση $ sudo apt-get install ansible

Βήμα 2: Μεταβείτε στο αρχείο του διακομιστή / etc / hosts και προσθέστε το όνομα κεντρικού υπολογιστή και τη διεύθυνση IP του κεντρικού υπολογιστή.

οικοδεσπότες κ.λπ. - Παροχή ανεπιθύμητων ενεργειών - EdurekaΕικ. 1 - Προσθήκη απομακρυσμένων κεντρικών υπολογιστών στο αρχείο / etc / hosts - Ansible Provisioning

Βήμα 3: Καθώς η Ansible λειτουργεί με την αρχιτεκτονική χωρίς χρήση του SSH για επικοινωνία με τους κεντρικούς υπολογιστές της, ρυθμίστε τα πλήκτρα ssh. Βασικά, έχουμε έναν διακομιστή και έναν κεντρικό υπολογιστή. Ελέγχουμε τον κεντρικό υπολογιστή με τον διακομιστή μας και ως εκ τούτου δημιουργούμε ένα δημόσιο κλειδί ssh στον διακομιστή και το αντιγράφουμε στο μηχάνημα του κεντρικού υπολογιστή. Εκτελέστε την ακόλουθη εντολή στο διακομιστή:

$ ssh-keygen

Θα σας ζητηθεί να εισαγάγετε το όνομα αρχείουόπου εγώΘα θέλατε να αποθηκεύσετε το κλειδί σας και επίσης να σας ζητήσουμε να δημιουργήσετε έναν κωδικό πρόσβασης για πρόσβαση στο δημιουργημένο κλειδί που είναι προαιρετικό. Από προεπιλογή, το δημόσιο κλειδί αποθηκεύεται στο αρχείο .ssh / id_rsa.pub και το ιδιωτικό κλειδί αποθηκεύεται στο .ssh / id_rsa.

Εικ. 2 - Δημιουργία κλειδιού ssh - Διαφημιστική παροχή

Τώρα αυτό το δημιουργημένο κλειδί πρέπει να υπάρχει στον κεντρικό υπολογιστή σας. Η αντιγραφή του κλειδιού στον κεντρικό υπολογιστή μπορεί να γίνει με δύο τρόπους, είτε χειροκίνητα αντιγραφή στον κεντρικό υπολογιστή είτε χρησιμοποιώντας την εντολή ssh-copy-id. Σε αυτήν την περίπτωση, θα το αντιγράψω χρησιμοποιώντας την εντολή ssh-copy-id root @ IP_of_host.

$ ssh-copy-id root@192.168.56.104

Σημείωση - Βεβαιωθείτε ότι έχετε τη δυνατότητα να μεταβείτε στον κεντρικό υπολογιστή σας πριν εκτελέσετε αυτήν την εντολή.

Βήμα 4: Ρύθμιση παραμέτρων Hostible Host. Μεταβείτε στο αρχείο / etc / ansible / hosts και προσθέστε το όνομα κεντρικού υπολογιστή. Αυτό θα διαφέρει ανάλογα με τον αριθμό των κεντρικών υπολογιστών και των διακομιστών που έχετε. Μπορείτε επίσης να έχετε περισσότερα απόένας διακομιστήςεδώ.

Εικ. 3 - Προσθήκη απομακρυσμένων κεντρικών υπολογιστών στο αρχείο αποθέματος - Δυνατότητα παροχής

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

$ ansible -m ping όλα

Εικ. 4 - Ελέγξτε την κατάσταση του απομακρυσμένου κεντρικού υπολογιστή - Παροχή κατηγοριών

Βήμα 6: Τώρα το Ansible μας είναι έτοιμο, ας κάνουμε το περιβάλλον έτοιμο να αναπτύξει έναν ιστότοπο. Θα χρησιμοποιήσουμε ένα ενιαίο βιβλίο αναπαραγωγής Ansible για να εγκαταστήσουμε το Apache, το MySql και το PHP. Ας ρίξουμε μια ματιά σε αυτό.

Σημείωση: Εάν είστε αρχάριος, ρίξτε μια ματιά Αυτό blog που εξηγεί πώς να συντάξετε ένα βιβλίο.

--- # Setup LAMP Stack - hosts: host1 tasks: - name: Προσθήκη ppa repository menjadi: yes apt_repository: repo = ppa: ondrej / php - name: Install lamp lamp menjadi: yes apt: pkg: - apache2 - mysql-server - php7.0 - κατάσταση php7.0-mysql: προσωρινή προσωρινή μνήμη ενημέρωσης: ναι - όνομα: έναρξη διακομιστή apache έγινε: ναι υπηρεσία: όνομα: κατάσταση apache2: έναρξη ενεργοποιημένο: ναι - όνομα: έναρξη υπηρεσίας mysql έγινε: υπηρεσίες Ναι: όνομα: κατάσταση mysql: start enabled: yes - name: create target target file: path = / var / www / html state = κατάλογος mode = 0755 - name: deploy index.html έγινε: yes copy: src: / etc / ansible / index / index.html dest: var / www / html / index / index.html

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

  • Η πρώτη εργασία προσθέτει το αποθετήριο που απαιτείται για την εγκατάσταση MySQL και PHP.
  • Η δεύτερη εργασία εγκαθιστά το apache2, το διακομιστή MySQL, το PHP και το PHP-MySQL.
  • Η τρίτη και τέταρτη εργασία ξεκινά την υπηρεσία Apache και MySQL.
  • Η πέμπτη εργασία δημιουργεί έναν κατάλογο στόχου στον κεντρικό υπολογιστή και
  • Τέλος, η έκτη εργασία εκτελεί το αρχείο index.html, παίρνει το αρχείο από τον υπολογιστή διακομιστή και το αντιγράφει στον κεντρικό υπολογιστή.

Εκτελέστε αυτό το βιβλίο αναπαραγωγής με την ακόλουθη εντολή:

$ ansible-playbook lamp.yml -K

Οι γραμμές να γίνει: ναι στο βιβλίο αναπαραγωγής λέει ότι πρέπει να εκτελεστεί ως root και επομένως όταν εκτελείτε την εντολή, θα σας ζητηθεί κωδικός πρόσβασης sudo.

Εικ. 5 - Εκτέλεση βιβλίου Playable Ansible - Ansible Provisioning

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

πίνακας ταξινόμησης c ++

Εικ. 6 - Φιλοξενήστε την Ιστοσελίδα στο Localhost - Παρομοιότυπη παροχή

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

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

Έχετε μια ερώτηση για εμάς; Παρακαλώ δημοσιεύστε το και θα επικοινωνήσουμε μαζί σας.