Πώς να δημιουργήσετε και να κατεβάσετε ρόλους στο Ansible Galaxy και να τους χρησιμοποιήσετε - Μέρος 9


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

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

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

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

Δημιουργώντας έναν υπεύθυνο ρόλο

Για να δημιουργήσετε έναν ρόλο στο Ansible, απλώς χρησιμοποιήστε τη σύνταξη.

ansible-galaxy init role_name 

Θα δημιουργηθούν πολλοί κατάλογοι και αρχεία στον τρέχοντα κατάλογο εργασίας σας. Σε αυτήν την περίπτωση, αποφάσισα να δημιουργήσω έναν ρόλο στον κατάλογο /etc/ansible/roles.

Ας δημιουργήσουμε έναν ρόλο που ονομάζεται apache.

ansible-galaxy init apache

Χρησιμοποιήστε την εντολή δέντρου για να ρίξετε μια ματιά στη δομή του καταλόγου του ρόλου.

tree apache

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

Τώρα, για να χρησιμοποιήσετε τον νεοδημιουργημένο ρόλο σας σε ένα playbook, ορίστε μια εργασία στο αρχείο main.yml που περιέχεται στον κατάλογο εργασιών του νέου σας ρόλου.

/apache/tasks/main.yml

---

- hosts: database_servers

  tasks:

    - name: Install Apache2 on Ubuntu webserver
      apt:
         name: apache2
         state: installed

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

--- 
- hosts: webservers
  roles:
   - apache

Εγκατάσταση ρόλου από το Ansible Galaxy

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

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

Για να αναζητήσετε έναν ρόλο στο Ansible Galaxy, απλώς εκτελέστε την εντολή.

ansible-galaxy search <role>

Για παράδειγμα, για να αναζητήσετε έναν ρόλο με το όνομα mysql εκτελέστε.

ansible-galaxy search mysql

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

Για να συγκεντρώσετε περισσότερες πληροφορίες σχετικά με έναν ρόλο, απλώς εκτελέστε την εντολή Ansible:

ansible-galaxy info 5KYDEV0P5.skydevops-mysql

Στο παράδειγμά μας, θα εγκαταστήσουμε τον ρόλο 5KYDEV0P5.skydevops-mysql.

ansible-galaxy install 5KYDEV0P5.skydevops-mysql

Ο ρόλος γίνεται λήψη και εξαγωγή στον προεπιλεγμένο κατάλογο ρόλων που βρίσκεται στη διεύθυνση /etc/ansible/roles.

Ο ρόλος μπορεί στη συνέχεια να κληθεί σε ένα βιβλίο παιχνιδιού, για παράδειγμα:

---
- name: Install MySQL server
  hosts: webservers

 roles:
    • 5KYDEV0P5.skydevops-mysql

Τώρα μπορείτε να εκτελέσετε με ασφάλεια το βιβλίο αναπαραγωγής Ansible όπως φαίνεται.

ansible-playbook install_mysql.yml

Επιπλέον, μπορείτε να επισκεφτείτε το Ansible Galaxy μέσω του προγράμματος περιήγησής σας στον ιστό και να αναζητήσετε μη αυτόματα ρόλους για την εκτέλεση διαφόρων εργασιών, όπως περιγράφεται από τον πίνακα εργαλείων.

Για παράδειγμα, για να αναζητήσετε έναν ρόλο παρακολούθησης, όπως elasticsearch, κάντε κλικ στην επιλογή «Παρακολούθηση» και αναζητήστε τον ρόλο όπως φαίνεται.

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

Σε ένα playbook, μπορείτε επίσης να καθορίσετε περισσότερους από έναν ρόλους, για παράδειγμα.

---
- name: Install MySQL server
  hosts: webservers

 roles:
    • 5KYDEV0P5.skydevops-mysql
    • Aaronpederson.mariadb

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

ansible-galaxy list

συμπέρασμα

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