CLOUD CONCEPT
Νερατζιωτίσσης 15, Μαρούσι, Αθήνα, 15124, Αττική
+30 211 8005 401
info@c2.gr
Η Αnsible είναι μια πλατφόρμα αυτοματοποίησης ανοιχτού κώδικα. Όταν κάνουμε εγκατάσταση την Ansible στον υπολογιστή μας , μπορούμε να κάνουμε πολλές εργασίες σε κάθε client που είναι συνδεδεμένος με αυτόν , αρκεί να υπάρχει μια SSH σύνδεση . 'Ετσι η Ansible είναι ένα πολύ χρήσιμο εργαλείο για τους system administrators , που μπορούν να ελέγχουν απο τον προσωπικό τους υπολογιστή πολλαπλούς server . Ας δούμε τώρα πως γίνεται η εγκατάσταση και οι βασικές ρυθμίσεις της Ansible σε ένα σύστημα Debian 8:
Ο πιο εύκολος τρόπος να εγκαταστήσουμε την 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
Η 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
Μπορούμε να κάνουμε 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: