06 Οκτ 2017

Πώς να εγκαταστήσετε την Ansible στο Debian 8

Πώς να εγκαταστήσετε την Ansible στο Debian 8

Η Αnsible είναι μια πλατφόρμα αυτοματοποίησης ανοιχτού κώδικα. Όταν κάνουμε εγκατάσταση την Ansible στον υπολογιστή μας , μπορούμε να κάνουμε πολλές εργασίες σε κάθε client που είναι συνδεδεμένος με αυτόν  , αρκεί να υπάρχει μια SSH σύνδεση . 'Ετσι η Ansible είναι ένα πολύ χρήσιμο εργαλείο για τους system administrators , που μπορούν να ελέγχουν απο τον προσωπικό τους υπολογιστή πολλαπλούς server . Ας δούμε τώρα  πως γίνεται η εγκατάσταση και οι βασικές ρυθμίσεις της Ansible σε ένα σύστημα Debian 8:

Βήμα 1 Εγκατάσταση της Ansible

 Ο πιο εύκολος τρόπος να εγκαταστήσουμε την Ansible στο Debian είναι προσθέτοντας στο source της apt get το repository της .

sudo apt-add-repository ppa:ansible/ansible 

Πατάμε ENTER για αποδοχή και έπειτα κάνουμε install με την apt get

sudo apt-get update

sudo apt-get install ansible

Βήμα 2 Ρύθμιση των Ansible Hosts

Η ansible κρατάει σε ένα αρχείο όλους τους hosts που ‘γνωρίζει’ . Οπότε πριν αρχίσουμε να επικοινωνούμε με αλλους hosts , πρέπει να τους ορίσουμε στο αρχείο αυτό : 

sudo vi  /etc/ansible/hosts

 Μόλις ανοίξουμε το αρχείο  θα δούμε ότι υπάρχουν πολλά παραδείγματα απο hosts . Θα κάνουμε όλους τους hosts comment out (με τη χρήση #) και θα ορίσουμε τους δικούς μας hosts .

 Example hosts file

[group_name]

alias ansible_ssh_host=your_server_ip

Αυτό είναι η γενική μορφή που ορίζουμε έναν hosts . Τώρα , πιο συγκεκριμένα , ας πούμε ότι θέλουμε να ορίσουμε 3 hosts . Τότε το αρχείο μας θα μοιάζει κάπως έτσι :

[servers]

host1 ansible_ssh_host=192.0.2.1

host2 ansible_ssh_host=192.0.2.2

host3 ansible_ssh_host=192.0.2.3

 

Βήμα 3 Χρησιμοποιώντας απλές εντολές

Μπορούμε να κάνουμε ping όλους τους hosts που ορίσαμε πριν με την εντολή :

ansible -m ping all

Ping output

host1 | SUCCESS => {

   "changed": false,

   "ping": "pong"
}

host3 | SUCCESS => {
 
  "changed": false,

   "ping": "pong"
}

host2 | SUCCESS => {

   "changed": false,

   "ping": "pong"
}

Αυτό είναι το βασικό τεστ για να δούμε ότι η Ansible έχει συνδεθεί σε όλους τους hosts . 

Το all στην παραπάνω εντολή σήμαινε κάνε ping σε ΟΛΟΥΣ τους hosts . Μπορούμε όμως να προσδιορίσουμε και ένα συγκεκριμένο group .

Πχ μπορούμε να κάνουμε ping σε έναν μόνο host :

ansible -m ping host1

Η σε περισσότερους από έναν hosts :

ansible -m ping host1:host2

Η σε ένα συγκεκριμένο group :

ansible -m ping servers

Το -m κομμάτι στις παραπάνω εντολές σημαίνει χρησιμοποίησε το module ‘ping’ . Τα modules είναι εντολές , που μπορούμε  να τις τρέξουμε σε απομακρυσμένους hosts  μέσω της ansible .

Η ping που χρησιμοποιήσαμε πριν δεν παίρνει κάποιο όρισμα σαν εντολή . Ας δούμε τώρα μια διαφορετική περίπτωση , που η εντολή παίρνει και όρισμα :

Θέλουμε να βρούμε το memory use στον remote host1 . Θα χρησιμοποιήσουμε την ‘shell module ‘ που επιστρέφει αποτελέσματα .

ansible -m shell -a 'free -m' host1

 Shell output

host1 | SUCCESS | rc=0 >>
 
           total       used       free     shared    buffers     cached

Mem:          3954        227       3726          0         14         93

-/+ buffers/cache:        119       3834

Swap: