Πώς να εγκαταστήσετε και να ρυθμίσετε το εργαλείο αυτοματισμού «Ansible» για τη διαχείριση IT - Μέρος 1


Το Ansible είναι ένα ανοιχτού κώδικα, ισχυρό λογισμικό αυτοματισμού για τη διαμόρφωση, τη διαχείριση και την ανάπτυξη εφαρμογών λογισμικού στους κόμβους χωρίς κανένα χρόνο διακοπής λειτουργίας μόνο με τη χρήση SSH. Σήμερα, τα περισσότερα από τα εργαλεία IT Automation εκτελούνται ως πράκτορας σε απομακρυσμένο κεντρικό υπολογιστή, αλλά χρειάζεται απλώς μια σύνδεση SSH και Python (2.4 ή μεταγενέστερη) να εγκατασταθεί στους απομακρυσμένους κόμβους για να εκτελέσει τη δράση της.

Πώς λειτουργεί το Ansible;

Υπάρχουν πολλά παρόμοια εργαλεία αυτοματισμού διαθέσιμα όπως Puppet, Capistrano, Chef, Salt, Space Walk κ.λπ., αλλά το Ansible κατηγοριοποιείται σε δύο τύπους διακομιστών: μηχανές ελέγχου και κόμβους.

Το μηχάνημα ελέγχου, όπου είναι εγκατεστημένο το Ansible και οι Κόμβοι διαχειρίζονται από αυτό το μηχάνημα ελέγχου μέσω SSH. Η θέση των κόμβων καθορίζεται από το μηχάνημα ελέγχου μέσω του καταλόγου του.

Το μηχάνημα ελέγχου (Ansible) αναπτύσσει μονάδες σε κόμβους χρησιμοποιώντας πρωτόκολλο SSH και αυτές οι μονάδες αποθηκεύονται προσωρινά σε απομακρυσμένους κόμβους και επικοινωνούν με το μηχάνημα Ansible μέσω μιας σύνδεσης JSON μέσω της τυπικής εξόδου.

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

Το Ansible μπορεί να χειριστεί 100 κόμβους από ένα μεμονωμένο σύστημα μέσω σύνδεσης SSH και ολόκληρη η λειτουργία μπορεί να χειριστεί και να εκτελεστεί από μία μόνο εντολή "ansible". Ωστόσο, σε ορισμένες περιπτώσεις, όπου απαιτείται να εκτελέσετε πολλές εντολές για μια ανάπτυξη, εδώ μπορούμε να δημιουργήσουμε βιβλία αναπαραγωγής.

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

Ποια είναι η χρήση του Ansible

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

Συγκεντρώσαμε μια σειρά για το Ansible, με τίτλο «Προετοιμασία για την ανάπτυξη της υποδομής πληροφορικής σας με το Ansible IT Automation Tool», μέσα από τα μέρη 1-4 και καλύπτει τα ακόλουθα θέματα.

Σε αυτό το άρθρο, θα σας δείξουμε πώς να εγκαταστήσετε το 'Ansible' σε συστήματα RHEL/CentOS 7/6, Fedora 21-19, Ubuntu 14.10-13.04 και Debian 7/6 και επίσης θα δούμε μερικά βασικά για τον τρόπο διαχείρισης ένας διακομιστής εγκαθιστώντας πακέτα, εφαρμόζοντας ενημερώσεις και πολλά άλλα από βασικό έως επαγγελματία.

Προαπαιτούμενα

  1. Λειτουργικό σύστημα: RHEL/CentOS/Fedora και Ubuntu/Debian/Linux Mint
  2. Jinja2: Μια σύγχρονη, γρήγορη και εύκολη στη χρήση αυτόνομη μηχανή προτύπων για την Python.
  3. PyYAML: Ένας αναλυτής και εκπομπός YAML για τη γλώσσα προγραμματισμού Python.
  4. parmiko: Μια εγγενής βιβλιοθήκη καναλιών Python SSHv2.
  5. httplib2: Μια ολοκληρωμένη βιβλιοθήκη πελάτη HTTP.
  6. sshpass: Ένας μη διαδραστικός έλεγχος ταυτότητας κωδικού πρόσβασης ssh.

Η ρύθμιση του περιβάλλοντος μου

Μηχανή ελέγχου – Ansible
Operating System :	Linux Mint 17.1 Rebecca
IP Address	 :	192.168.0.254
Host-name	 :	tecmint.instrcutor.com
User		 :	tecmint
Απομακρυσμένοι κόμβοι
Node 1: 192.168.0.112
Node 2: 192.168.0.113
Node 3: 192.168.0.114

Βήμα 1: Εγκατάσταση Controlling Machine – Ansible

1. Πριν εγκαταστήσετε το "Ansible" στον διακομιστή, ας επαληθεύσουμε πρώτα τα στοιχεία του διακομιστή, όπως το όνομα κεντρικού υπολογιστή και τη διεύθυνση IP. Συνδεθείτε στον διακομιστή ως χρήστης root και εκτελέστε την παρακάτω εντολή για να επιβεβαιώσετε τις ρυθμίσεις συστήματος που πρόκειται να χρησιμοποιήσουμε για αυτήν τη ρύθμιση.

sudo ifconfig | grep inet

2. Μόλις επιβεβαιώσετε τις ρυθμίσεις του συστήματός σας, ήρθε η ώρα να εγκαταστήσετε το λογισμικό "Ansible" στο σύστημα.

Σε Ubuntu/Debian/Linux Mint

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

sudo apt-add-repository ppa:ansible/ansible -y
sudo apt-get update && sudo apt-get install ansible -y

Σε RHEL/CentOS/Fedora

Δυστυχώς, δεν υπάρχει επίσημο αποθετήριο Ansible για κλώνους που βασίζονται στο RedHat, αλλά μπορούμε να εγκαταστήσουμε το Ansible ενεργοποιώντας το αποθετήριο epel στο RHEL/CentOS 6, 7 και στις διανομές Fedora που υποστηρίζονται αυτήν τη στιγμή.

Οι χρήστες του Fedora μπορούν να εγκαταστήσουν απευθείας το Ansible μέσω του προεπιλεγμένου αποθετηρίου, αλλά εάν χρησιμοποιείτε RHEL/CentOS 6, 7, πρέπει να ενεργοποιήσετε το EPEL repo.

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

sudo yum install ansible -y

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

ansible --version

Βήμα 2: Προετοιμασία κλειδιών SSH σε απομακρυσμένους κεντρικούς υπολογιστές

4. Για να εκτελέσουμε οποιαδήποτε ανάπτυξη ή διαχείριση από τον localhost σε απομακρυσμένο κεντρικό υπολογιστή, πρέπει πρώτα να δημιουργήσουμε και να αντιγράψουμε τα κλειδιά ssh στον απομακρυσμένο κεντρικό υπολογιστή. Σε κάθε απομακρυσμένο κεντρικό υπολογιστή θα υπάρχει ένας λογαριασμός χρήστη tecmint (στην περίπτωσή σας μπορεί να είναι διαφορετικός χρήστης).

Αρχικά, ας δημιουργήσουμε ένα κλειδί SSH χρησιμοποιώντας την παρακάτω εντολή και αντιγράψουμε το κλειδί σε απομακρυσμένους κεντρικούς υπολογιστές.

ssh-keygen -t rsa -b 4096 -C "[email "

5. Αφού δημιουργήσετε με επιτυχία το κλειδί SSH, αντιγράψτε τώρα το κλειδί που δημιουργήθηκε και στους τρεις απομακρυσμένους διακομιστή.

ssh-copy-id [email 
ssh-copy-id [email 
ssh-copy-id [email 

6. Αφού αντιγράψετε όλα τα κλειδιά SSH στον απομακρυσμένο κεντρικό υπολογιστή, εκτελέστε τώρα έναν έλεγχο ταυτότητας κλειδιού ssh σε όλους τους απομακρυσμένους κεντρικούς υπολογιστές για να ελέγξετε εάν ο έλεγχος ταυτότητας λειτουργεί ή όχι.

ssh [email 
ssh [email 
ssh [email