@ -25,11 +25,12 @@
* Δημιουργούμε ένα σμήνος x κόμβων, δηλώνοντας τον αριθμό αυτό στο size.
* Δημιουργούμε ένα σμήνος x κόμβων, δηλώνοντας τον αριθμό αυτό στο size.
**sudo ../swarmlab-sec/install/usr/share/swarmlab.io/sec/swarmlab-sec up size=5**
**sudo ../swarmlab-sec/install/usr/share/swarmlab.io/sec/swarmlab-sec up size=5**
* Συνδεόμαστε στον master του σμήνους μας.
* Συνδεόμαστε στον master του σμήνους μας.
**sudo ../swarmlab-sec/install/usr/share/swarmlab.io/sec/swarmlab-sec login**
**sudo ../swarmlab-sec/install/usr/share/swarmlab.io/sec/swarmlab-sec login**
____________________________________________________________________________________
____________________________________________________________________________________
Για τις ανάγκες της εργασίας, εγκαθιστούμε την Ansible με το script **installAnsible.sh** που περιέχει τις εξής εντολές:
Για τις ανάγκες της εργασίας, εγκαθιστούμε την Ansible με το script **installAnsible.sh** που περιέχει τις εξής εντολές:
@ -37,18 +38,18 @@ ________________________________________________________________________________
* Ελέγχουμε για updates και εγκαθιστούμε την ansible
* Ελέγχουμε για updates και εγκαθιστούμε την ansible
**apt update ; apt install ansible -y**
**apt update ; apt install ansible -y**
* Περνάμε την εντολή στο ansible.cfg
* Περνάμε την εντολή στο ansible.cfg
**sed -i '13i host_key_checking = False' /etc/ansible/ansible.cfg v**
**sed -i '13i host_key_checking = False' /etc/ansible/ansible.cfg v**
* Eγκαθιστούμε το sshpass
* Eγκαθιστούμε το sshpass
**apt-get install sshpass**
**apt-get install sshpass**
To script τρέχει με τις εντολές
To script τρέχει με τις εντολές
**sudo su (Password:docker)** και ** ./installAnsible.sh**
**sudo su (Password:docker)** και ** ./installAnsible.sh**
_______________________________________________________________________________________
_______________________________________________________________________________________
Με την εντολή login όπως αναφέρθηκε και πιο πάνω, συνδεόμαστε με τον master.
Με την εντολή login όπως αναφέρθηκε και πιο πάνω, συνδεόμαστε με τον master.
@ -59,18 +60,28 @@ ________________________________________________________________________________
Μεταξύ άλλων, αυτό επιλύεται στο script **run.sh** :
Μεταξύ άλλων, αυτό επιλύεται στο script **run.sh** :
* Το αρχείο inventory.yml, περιέχει τις ip διευθύνσεις του σμήνους. Επομένως, το ανοίγουμε για να τις καταγράψουμε.
* Το αρχείο inventory.yml, περιέχει τις ip διευθύνσεις του σμήνους. Επομένως, το ανοίγουμε για να τις καταγράψουμε.
**echo "[service]" > inventory.yml **
**echo "[service]" > inventory.yml **
* Κάνουμε ifconfig και μέσω παραμέτρων εμφωλεύουμε στην μεταβλητή my_ip την ip του κόμβου στον οποίο βρισκόμαστε.
**my_ip=$(ifconfig eth0 | grep 'inet' | cut -d: -f2 | awk '{print $2}')**
* Στη μεταβλητή my_ip1 περνάμε τροποποιημένο το περιεχόμενο της my_ip, αφού έχουμε αλλάξει το τελευταίο ψηφίο της διεύθυνσης σε * .
**my_ip1=$(echo $my_ip | sed 's/.[0-9]$/.*/')**
* Τώρα που έχουμε την ip στην επιθυμητή μορφή, μπορούμε να κάνουμε nmap με την εντολή my_ip1 και να λάβουμε όλες τις ip του σμήνους
**my_ip=$(ifconfig eth0 | grep 'inet' | cut -d: -f2 | awk '{print $2}')**
**nmap -sP -oG - $my_ip1 | grep Up | cut -d ' ' -f2 | tail -n +2 >> **
**my_ip1=$(echo $my_ip | sed 's/.[0-9]$/.*/')**
* Με αυτό το script, ενημερωνομαστε για τις ip, άρα μπορούμε να συνδεθούμε σε όποιο κόμβο θέλουμε.
**nmap -sP -oG - $my_ip1 | grep Up | cut -d ' ' -f2 | tail -n +2 >> **
Εκτελούνται όμως και άλλες διεργασίες. (a) Tο αποτέλεσμα του nmap, καταγράφεται στο inventory.
**inventory.yml**
**inventory.yml**
(b) Εκτελούμε το αρχείο test.yml - Όλες οι ip που αναφέρονται στο inventory (ip του σμήνους) εκτελούν τις εντολές του test.yml (το οποίο περιέχει μέσα δοκιμαστικές εντολές).
**ansible-playbook -u docker -i inventory.yml test.yml -f 5 --ask-pass --ask-become-pass**
**ansible-playbook -u docker -i inventory.yml test.yml -f 5 --ask-pass --ask-become-pass**