Ansible Roles - Τελικός τρόπος για να ξεμπλέξετε τα Playbook σας



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

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

Θέματα που καλύπτονται:





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

Εισαγωγή στους ρόλους των ευπαθών

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



Επιτρέψτε μου να το εξηγήσω με ένα παράδειγμα. Ας υποθέσουμε ότι θέλετε το βιβλίο αναπαραγωγής σας να εκτελεί 10 διαφορετικές εργασίες σε 5 διαφορετικά συστήματα, θα χρησιμοποιούσατε ένα μόνο βιβλίο για αυτό; Όχι, η χρήση ενός ενιαίου βιβλίου παιχνιδιού μπορεί να το προκαλέσει σύγχυση και επιρρεπές σε βλάβες. Αντ 'αυτού, μπορείτε να δημιουργήσετε 10 διαφορετικούς ρόλους, όπου κάθε ρόλος θα εκτελεί μία εργασία. Στη συνέχεια, το μόνο που χρειάζεται να κάνετε είναι να αναφέρετε το όνομα του ρόλου στο playbook για να τους καλέσετε. Θα μάθετε πώς να χρησιμοποιείτε περαιτέρω ρόλους σε αυτό το ιστολόγιο.

Επαναχρησιμοποίηση ρόλων

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

Ας επιστρέψουμε στο προηγούμενο παράδειγμα. Έχετε γράψει 10 ρόλους και τώρα πρέπει να χρησιμοποιήσετε 5 από αυτούς για ένα άλλο σύνολο παροχής. Γράφετε ξανά ολόκληρο το βιβλίο αναπαραγωγής; Όχι, απλώς επαναχρησιμοποιείτε αυτούς τους 5 ρόλους καλώντας τους σε αυτό το νέο Playbook. Μπορείτε επίσης να κάνετε τροποποιήσεις εάν απαιτείται, αλλά θα εξακολουθήσει να εξοικονομεί πολύ χρόνο.



Ας υποθέσουμε ότι πρέπει να συντάξετε ένα βιβλίο για τη ρύθμιση της στοίβας LAMP. Πρέπει να δημιουργήσετε 4 ρόλους, ο καθένας για τη δημιουργία Linux, Apache, MongoDB και PHP. Στο μέλλον, εάν θέλετε ένα άλλο playbook για τη ρύθμιση της στοίβας LAMP καθώς και του WordPress, θα δημιουργήσετε ξανά νέους ρόλους για στοίβα LAMP και WordPress; Οχι! Μπορείτε απλά να επαναχρησιμοποιήσετε τους παλαιότερους ρόλους (που χρησιμοποιούνται για στοίβα LAMP) και επιπλέον να δημιουργήσετε έναν νέο ρόλο για το WordPress.

Δομή καταλόγου ρόλων

Χρησιμοποιώντας τους Ansible Roles, περιμένετε τα αρχεία να είναι σε μια συγκεκριμένη δομή αρχείων. Το πιο συγκεχυμένο μέρος της χρήσης ρόλων είναι η κατανόηση της ιεραρχίας αρχείων. Το Ansible παρέχει μια δυνατότητα που ονομάζεται Ansible Galaxy που σας βοηθά να παίξετε με ρόλους. Γνωρίζουμε ήδη πού βρίσκεται το Ansible στο Ubuntu (/ etc / ansible). Έχετε δει ποτέ έναν κατάλογο που ονομάζεται ρόλοι στο / etc / ansible; Αυτός ο κατάλογος υπάρχει ακριβώς για αυτόν τον λόγο. Δημιουργείτε διαφορετικούς ρόλους μέσα σε αυτόν τον κατάλογο.

Ο κατάλογος θα έχει την εξής μορφή:

Δενδροειδείς ρόλοι - Edureka

Μπορείτε να δημιουργήσετε έναν ρόλο χρησιμοποιώντας άσβεστος γαλαξίας init εντολή μέσα / etc / ansible / ρόλοι.

$sudoanitible-γαλαξία init

Θα δείτε ότι θα είχαν δημιουργηθεί και άλλοι κατάλογοι ρόλων.

Αυτοί οι κατάλογοι είναι εργασίες, χειριστές, προεπιλογές, vars, αρχεία, πρότυπα και μετα και ένα README.mdαρχείο.

Καθήκοντα - Περιέχει την κύρια λίστα εργασιών που πρέπει να εκτελεστούν από το ρόλο. Τοπεριέχειτο αρχείο main.yml για τον συγκεκριμένο ρόλο.

Χειριστές - Περιέχει χειριστές που μπορούν να χρησιμοποιηθούν από αυτόν τον ρόλο ή ακόμη και οπουδήποτε εκτός αυτού του ρόλου.

Προεπιλογές - Περιέχει τις προεπιλεγμένες μεταβλητές που πρόκειται να χρησιμοποιηθούν από αυτόν τον ρόλο.

Του οποίου - Αυτός ο κατάλογος αποτελείται από άλλες μεταβλητές που πρόκειται να χρησιμοποιηθούν από τον ρόλο. Αυτές οι μεταβλητές μπορούν να καθοριστούν στο playbook σας, αλλά είναι καλή συνήθεια να τις ορίσετε σε αυτήν την ενότητα.

Αρχεία - Περιέχει αρχεία που μπορούν να αναπτυχθούν από αυτόν τον ρόλο. Περιέχει αρχεία που πρέπει να σταλούν στους κεντρικούς υπολογιστές κατά τη διαμόρφωση του ρόλου.

Μέτα - Ορίζει μεταδεδομένα για αυτόν τον ρόλο. Βασικά, περιέχει αρχεία που δημιουργούν εξαρτήσεις ρόλων.

Κάθε έργο Ο κατάλογος πρέπει να αποτελείται από ένα main.yml αρχείο όπου γράφεται ο πραγματικός κώδικας για τον συγκεκριμένο ρόλο.

ρύθμιση διαδρομής κλάσης στην Java

Ας καταλάβουμε τώρα τη λειτουργία ή τους ρόλους με μια επίδειξη εγκατάστασης του MEAN Stack.

Επίδειξη: Εγκατάσταση του MEAN Stack χρησιμοποιώντας Ansible Roles

Θα δείξω πώς να εγκαταστήσω το MEAN Stack χρησιμοποιώντας το Ansible Roles εκτελώντας ένα μόνο playbook. Θα έχουμε τρεις ρόλους: 1) Εγκατάσταση προϋποθέσεων, 2) Εγκατάσταση του MongoDB και 3) Εγκατάσταση του NodeJS. Υποθέτω ότι το έχετε ήδη εγκατέστησε το Ansible και πραγματοποίησε σύνδεση διακομιστή-πελάτη στο Ubuntu . Ας αρχίσουμε να παίζουμε με τους Ansible Roles.

Βήμα 1 - Μεταβείτε στον κατάλογο / etc / ansible / ρόλοι και δημιουργήστε τους ρόλους για τις προϋποθέσεις, MongoDB και NodeJS.

$ cd / etc / ansible / role $ sudo ansible-galaxy init προϋποθέσεις $ sudo ansible-galaxy init mongodb $ sudo ansible-galaxy init nodejs

Τώρα πρέπει να δείτε τρεις ρόλους στον κατάλογο «ρόλων».

Βήμα 2 - Γράψτε το main.yml για προϋποθέσεις που εγκαθιστούν το Git.

$ cd prasyquisites / tasks / main.yml --- - name: Install git apt: name: git state: present update_cache: ναι

Βήμα 3 - Γράψτε το main.yml για το ρόλο MongoDB

$ cd /mongodb/tasks/main.yml --- - name: MongoDB - Import public key apt_key: keyserver: hkp: //keyserver.ubuntu.com: 80 id: EA312927 - name: MongoDB - Add repository apt_repository: όνομα αρχείου: '/etc/apt/sources.list.d/mongodb-org-3.2.list' repo: 'deb http://repo.mongodb.org/apt/ubuntu trusty / mongodb-org / 3.2 multiverse' κατάσταση: παρόν update_cache : ναι - όνομα: MongoDB - Εγκατάσταση MongoDB apt: name: mongodb-org state: present update_cache: yes - name: Start mongod shell: 'mongod &'

Βήμα 4 - Γράψτε main.yml γιακόμβοιρόλος

$ cd nodejs / tasks / main.yml --- - name: Node.js - Λήψη δέσμης ενεργειών get_url: url: 'http://deb.nodesource.com/setup_6.x' dest: '{{var_node}} / nodejs .sh '- name: Node.js - Ορισμός άδειας εκτέλεσης σε αρχείο σεναρίου: διαδρομή:' {{var_node}} / nodejs.sh 'mode:' u + x '- name: Node.js - Εκτέλεση κελύφους σεναρίου εγκατάστασης:' {{var_node}} / nodejs.sh '- name: Node.js - Κατάργηση αρχείου δέσμης ενεργειών εγκατάστασης: διαδρομή:' {{var_node}} / nodejs.sh 'κατάσταση: absent - name: Node.js - Install Node.js apt : name = {{item}} state = present update_cache = yes with_items: - build-essential - nodejs - name: Node.js - Install bower and gulp global npm: name = {{item}} state = present global = yes with_items : - bower - κόλαση

Βήμα 5 - Γράψτε το κύριο βιβλίο αναπαραγωγής σας

$ cd /etc/ansible/mean.yml --- - hosts: nodes remote_user: ansible Bec: yes be_method: sudo vars: #variable dibutuhkan κατά την εγκατάσταση κόμβου var_node: / tmp ρόλοι: - προαπαιτούμενα - mongodb - nodejs

Τώρα που έχουμε ορίσει ρόλους για την εγκατάσταση των προϋποθέσεων, MongoDB και NodeJs, ας τα αναπτύξουμε. Εκτελέστε το βιβλίο αναπαραγωγής χρησιμοποιώντας την ακόλουθη εντολή.

$sudoansible-playbook /etc/ansible/mean.yml -K

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

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

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