Στο δεύτερο άρθρο της σειράς [εδώ], ασχολήθηκα με την επιλογή λειτουργικού συστήματος (με το Linux να αποτελεί ουσιαστικά την μοναδική επιλογή) και με τη διαμόρφωση του τοπικού δικτύου. Στο άρθρο αυτό θα αναφερθώ στην εγκατάσταση ενός σταθμού εργασίας αλλά και στις διαχειριστικές εφαρμογές που χρησιμοποιώ καθημερινά ώστε να κάνω τη δουλειά μου αποδοτικότερη.
Στα αρχικά βήματα της εγκατάστασης, ως λογαριασμό χρήστη επιλέγω τη δημιουργία ενός λογαριασμού με όνομα χρήστη labroot και δικαιώματα διαχειριστή. Όταν ολοκληρωθεί η εγκατάσταση σε κάθε υπολογιστή, εκτελώ [αυτό το script] το οποίο:
• ενεργοποιεί τη χρήση sudo χωρίς password για τον λογαριασμό διαχειριστή του σταθμού εργασίας (λογαριασμός labroot)
• προσθέτει μια εγγραφή στο αρχείο hosts που απεικονίζει το url sxoleio.pw στον υπολογιστή μου (192.168.1.200)
• προσθέτει έναν χρήστη με όνομα user για τον οποίο δεν ζητείται password όταν κάνει login
• ρυθμίζει proxy για το apt τον υπολογιστή μου (192.168.1.200) ώστε μην κατεβάζει ενημερώσεις και εφαρμογές απεύθείας από το διαδίκτυο αλλά μέσω proxy (βέλτιστη διαχείριση bandwidth)
• ρυθμίζει τις απαραίτητες άδειες ώστε να μπορεί να χρησιμοποιηθεί το hub του κιτ ρομποτικής Lego Wedo 1.0 (υπήρχε μια περίοδος που το χρησιμοποιούσα συστηματικά, πλέον το χρησιμοποιώ από ελάχιστα ως καθόλου).
• απενεργοποιεί τις αυτόματες ενημερώσεις (ώστε να γίνονται μόνο όταν το επιθυμώ) αλλά και τις ειδοποιήσεις τους
• ρωτάει τι IP να χρησιμοποιήσει για τον συγκεκριμένο σταθμό εργασίας (χρησιμοποιώ στατικές ip, όπως έχω αναφέρει στο προηγούμενο post)
Όταν ολοκληρωθεί η εκτέλεση του παραπάνω script, κάνω επανεκκίνηση και login ως user. Κάνω μια σειρά από ρυθμίσεις όπως απενεργοποίηση του screensaver, μεταφορά της taskbar στο κάτω μέρος της οθόνης, προσθήκη ενδεικτικού αλλαγής διάταξης πληκτρολογίου και ρύθμιση του firefox ώστε να μην διατηρεί ιστορικό.
Ο σταθμός εργασίας είναι σχεδόν έτοιμος. Απομένει να αντιγραφούν σε αυτόν μια σειρά από εφαρμογές (κυρίως standalone flash) οι οποίες αντιγράφονται από τον server με χρήση rsync.
Στο αρχικό post της σειράς [εδώ], είχα συγκεντρώσει μια λίστα από διαχειριστικές δυνατότητες τις οποίες θέλω να έχει το εργαστήριο μου ώστε να μπορώ να κάνω καλύτερα το μάθημα μου. Για να καλυφθούν όλα τα bullets της λίστας, χρησιμοποιώ 1 + 2 εφαρμογές. Τη μια την έχουν φτιάξει μια ομάδα από εξαιρετικά ταλαντούχους συναδέλφους [εδώ] ενώ οι άλλες 2 είναι δικές μου (και δυστυχώς δεν πλησιάζουν ούτε κατ’ ελάχιστον την τεχνική αρτιότητα της πρώτης).
Η πρώτη είναι οι epoptes [εδώ]. Νομίζω δεν χρειάζονται περισσότερα λόγια για την εφαρμογή αυτή. Είναι μια must have εφαρμογή σε εργαστήριο Πληροφορικής που βασίζεται σε Linux.
Οι 2 δικές μου εφαρμογές, βασίζονται στο ότι αν έχεις πρόσβαση ssh στους σταθμούς εργασίας, μπορείς να κάνεις κυριολεκτικά οτιδήποτε σε αυτούς χωρίς να χρειαστεί να σηκωθείς από την καρέκλα σου. Όπως θα γράψω και στο επόμενο post, που θα αφορά την εγκατάσταση του server, όταν τελειώσει η εγκατάσταση ενός βασικού σταθμού εργασίας, το πρώτο που θα κάνω από τον server μου είναι το ssh-copy-id ώστε να μπορώ να συνδέομαι ανά πάσα στιγμή χωρίς να χρειάζεται password. Η μη χρήση password έχει να κάνει και με την ευκολία του να μην χρειάζεται να πληκτρολογείς συνεχώς κωδικούς αλλά κυρίως έχει να κάνει με την αυτοματοποίηση των λειτουργιών. Πχ όταν πρέπει να γίνει μια συγκεκριμένη εργασία 13 ή 15 φορές (ή όσοι τέλος πάντων είναι οι σταθμοί εργασίας στο εργαστήριο), δεν μπορώ να είμαι πάνω στον υπολογιστή μου και να πληκτρολογώ κωδικούς. Οι εργασίες ξεκινούν και γίνονται με τη σειρά χωρίς να υπάρχει ανάγκη για πληκτρολόγηση κωδικών. Έτσι οι εργασίες αυτές μπορούν να γίνουν στο διάλειμμα μου ή ακόμη και στην ώρα του μαθήματος αφού δεν απαιτούν την προσοχή μου.
Η πρώτη “εφαρμογή” είναι ένα απλό bash script, το οποίο έχω ονομάσει run_command, διαθέσιμο [εδώ]. Αυτό το script ήταν η πρώτη προσπάθεια που έκανα να αυτοματοποιήσω μια σειρά από διαχειριστικές εργασίες όπως αποστολή αρχείων στην Επιφάνεια εργασίας των σταθμών εργασίας, λήψη αρχείων από την Επιφάνεια εργασίας, καθαρισμός επιφάνειας εργασίας, αλλαγή ρυθμίσεων εφαρμογών μαζικά κ.λ.π. Σαν τρόπος λειτουργούσε αποτελεσματικά αλλά λόγω της χρήσης bash αλλά και σειριακής (και όχι παράλληλης) εκτέλεσης των εργασιών ήταν λίγο αργός ορισμένες φορές. Σήμερα το χρησιμοποιώ λιγότερο απ’ ότι παλιότερα αλλά αποτελεί βασικότατο εργαλείο για το εργαστήριο μου. Το παραπάνω script, παίρνει 2 arguments: (0) τον αριθμό ή το id του σχολείου στο οποίο θέλω να γίνει η εργασία (κάθε χρόνο διδάσκω σε 3 Δημοτικά σχολεία και διαχειρίζομαι τα αντίστοιχα εργαστήρια υπολογιστών), και (1) το αναγνωριστικό του action. Στις πρώτες σειρές του script ορίζονται μια σειρά από αναγνωριστικά πχ screenshot όπου όταν εκτελείται παίρνει ένα screenshot της οθόνης του σταθμού εργασίας και στη συνέχεια ο server “μαζεύει” τα screenshots από τους επιμέρους υπολογιστές.
Η δεύτερη εφαρμογή, είναι μια πλήρης εφαρμογή με την έννοια ότι έχει και GUI. Την έχω ονομάσει lab_organizr και είναι διαθέσιμη [εδώ]. Η εφαρμογή αυτή είναι γραμμένη σε python3. Όπως έγραψα και παραπάνω, μετά τα πρώτα χρόνια ως υπεύθυνος εργαστηρίου και χρήσης του run_command, χρειαζόμουν ένα εργαλείο ακόμη πιο γρήγορο και εύχρηστο. Οπότε αποφάσισα να φτιάξω μια πλήρη εφαρμογή. Το lab_organizr είναι ο καρπός αυτής της προσπάθειας. Για να την χρησιμοποιήσει κάποιος στο εργαστήριο του πρέπει να μετονομάσει το αρχείο assets/settings.sample.json σε assets/settings.json να συμπληρώσει/αφαιρέσει σταθμούς εργασίας, IPs και συνδυασμούς usernames/passwords. Η εφαρμογή αυτή λειτουργεί με threads οπότε είναι πολύ πιο γρήγορη από το run_command. Επίσης απαιτεί την εγκατάσταση μιας σειράς πρόσθετων της python3 (προτείνεται η εγκατάσταση μέσω pip3) τα οποία μπορεί να δει κανείς στις πρώτες γραμμές του αρχείου [lab_organizr3.py].
Ο αναγνώστης που θα βρει τις παραπάνω εφαρμογές ενδιαφέρουσες και κάνει τον κόπο να μελετήσει τον κώδικα, σίγουρα θα βρει λάθη, παραλείψεις και αστοχίες. Θα χαρώ πολύ να μάθω ότι κάποιος συνάδελφος βρήκε τους παραπάνω κώδικες χρήσιμους και τους έχει βελτιώσει, τροποποιήσει ή έκανε οτιδήποτε άλλο σκέφτηκε με αυτούς. Σε περίπτωση bug, θα εκτιμήσω να με ενημερώσει ώστε να κάνω τις απαραίτητες διορθώσεις.
Πριν από 10 μέρες περίπου, έπεσα πάνω σε μια εξαιρετικά ενδιαφέρουσα εφαρμογή το pussh [εδώ] και ήδη κάνω ριζικές αλλαγές ειδικά στο run_command ώστε να εκμεταλλευτώ αυτό το καταπληκτικό εργαλείο που με έχει ενθουσιάσει!
Κλείνοντας το άρθρο αυτό, θα αναπαράγω την bullet list με τις διαχειριστικές δυνατότητες που θέλω να υπάρχουν στο εργαστήριο μου και δίπλα στην καθεμιά θα γράψω ποια από τις εφαρμογές την καλύπτει.
ΜΕΡΟΣ Γ – Δυνατότητες διαχείρισης από τον Υπολογιστή του εκπαιδευτικού
Ως εκπαιδευτικός πληροφορικής θέλω:
(0) Να κλειδώνω τις οθόνες ώστε να τραβάω την προσοχή χωρίς να φωνάζω. (epoptes)
(1) Να προβάλω την οθόνη μου στις οθόνες των σταθμών εργασίας ως εναλλακτική προτζέκτορα. (epoptes)
(2) Να μπορώ να ανοίγω εφαρμογές από τον Υπολογιστή μου (εξαιρετικά χρήσιμο για μικρές τάξεις). (epoptes)
(3) Να μπορώ να κλείνω εφαρμογές (τερματισμός διεργασίας) απομακρυσμένα από τον Υπολογιστή μου. (lab_organizr)
(4) Να μπορώ να στέλνω συντομεύσεις εφαρμογών στην Επιφάνεια Εργασίας των σταθμών εργασίας απομακρυσμένα από τον Υπολογιστή μου. (lab_organizr)
(5) Να μπορώ να στέλνω συνδέσμους (links) για σελίδες στο διαδίκτυο στην Επιφάνεια εργασίας των σταθμών εργασίας απομακρυσμένα από τον Υπολογιστή μου. (lab_organizr)
(6) Να μπορώ να στέλνω και να λαμβάνω αρχεία από την Επιφάνεια εργασίας (ή άλλους φακέλους) των σταθμών εργασίας απομακρυσμένα από τον Υπολογιστή μου. (lab_organizr)
(7) Να μπορώ να εγκαθιστώ / απεγκαθιστώ εφαρμογές απομακρυσμένα από τον Υπολογιστή μου. Επίσης να μπορώ να συγχρονίζω τα αρχεία με τις ρυθμίσεις των εφαρμογών ώστε να ανοίγουν όλες με τις ίδιες, καθορισμένες από εμένα, ρυθμίσεις. (run_command)
(8) Να μπορώ να κάνω ενημερώσεις στους σταθμούς εργασίας απομακρυσμένα από τον Υπολογιστή μου. (run_command)
(9) Να μπορώ να cachάρω τις ενημερώσεις/εφαρμογές προς εγκατάσταση στον Υπολογιστή μου ώστε όταν γίνεται ενημέρωση να μην κατεβαίνουν ξανά και ξανά τα ίδια αρχεία (καλύτερη διαχείριση της σύνδεσης στο internet) (apt-cacher-ng)
(10) Να μπορώ να καθαρίζω την Επιφάνεια εργασίας των σταθμών εργασίας απομακρυσμένα από τον Υπολογιστή μου πριν μπει νέο τμήμα στο εργαστήριο. (lab_organizr)
(11) Να μπορώ να κλείνω ή να ανοίγω τον ήχο (mute off – mute on) απομακρυσμένα από τον Υπολογιστή μου. (lab_organizr)
(12) Να επανεκκινώ το GUI του Λειτουργικού συστήματος στην περίπτωση που κολλήσει (ναι το γραφικό περιβάλλον, όχι ο πυρήνας, του Linux μπορεί να κολλήσει 1-2 φορές κάθε σχολική χρονιά) απομακρυσμένα από τον Υπολογιστή μου. (lab_organizr)
(13) Να μπορώ να παίρνω screenshots των σταθμών εργασίας απομακρυσμένα από τον Υπολογιστή μου. (run_command)
(14) Να μπορώ να ρυθμίζω το wallpaper των σταθμών εργασίας απομακρυσμένα από τον Υπολογιστή μου. (run_command)
(15) Να βλέπω μια λίστα με τα ποσοστά μπαταριών των laptops (αν φυσικά υπάρχουν laptops) του εργαστηρίου απομακρυσμένα από τον Υπολογιστή μου. (run_command)
(16) Να βλέπω μια λίστα από ανοιχτά παράθυρα εφαρμογών του κάθε σταθμού εργασίας απομακρυσμένα από τον Υπολογιστή μου. (run_command)
Στο επόμενο, και τελευταίο post της σειράς, θα αναφερθώ με περισσότερες λεπτομέρειες στην εγκατάσταση του server του εργαστηρίου.