script για ανανέωση custom ρυθμίσεων ανά mac-address

Ξεκίνησε από apapakL, 20 Νοε 2013, 01:25:20 ΠΜ

« προηγούμενο - επόμενο »

apapakL

Σε κάποιες περιπτώσεις για να ξεκινάνε σωστά κάποιοι clients χρειάζονται ειδικές ρυθμίσεις (π.χ nomodeset) στο αρχείο /var/lib/tftpboot/ltsp/i386/pxelinux.cfg/default. Μπορούμε να κάνουμε αυτές τις ρυθμίσεις μόνο για τους clients που τις χρειάζονται δημιουργώντας αντίγραφα του default και ονομάζοντας τα με ονόματα του τύπου 01-macaddress. Είναι απαραίτητο η mac address να ξεκινάει με 01 και να ακολουθεί το υπόλοιπο με (-) ως διαχωριστικό ανάμεσα στα αλφαριθμητικά και με πεζά γράμματα. Μετά τη δημοσίευση του εικονικού δίσκου (όταν έχουμε νέο πυρήνα) τα custom αρχεία δεν προσαρμόζονται στο νέο πυρήνα. Αν δε, κάνουμε και συντήρηση εικονικού δίσκου οι παλαιοί πυρήνες απομακρύνονται με αποτέλεσμα να μην ξεκινάνε οι clients με τις ειδικές ρυθμίσεις... Προς το παρόν χρησιμοποιώ κάτι τέτοιο για να κάνει τη δουλειά.

#! /bin/bash
cd /var/lib/tftpboot/ltsp/i386/pxelinux.cfg
echo 01-* > /tmp/pxemacs.txt
read pxemacs < /tmp/pxemacs.txt
kernel_version=`uname -r`
echo "Θα προσαρμοστούν τα ακόλουθα αρχεία στο νέο πυρήνα: "$kernel_version 
echo $pxemacs
read -p "Πληκτρολογίστε yes για να συνεχίσετε " answer
if [ "$answer" = "yes" ]; then
for p in $pxemacs ; do
sudo sed -i "/kernel vmlinuz-/c\kernel vmlinuz-$kernel_version" $p
sudo sed -i "/append ro initrd=initrd.img-/c\append ro initrd=initrd.img-$kernel_version init=/sbin/init-ltsp nomodeset root=/dev/nbd0" $p
done
echo "Οι εγγραφές προσαρμόστηκαν στο νέο πυρήνα: " $kernel_version
fi
sudo rm /tmp/pxemacs.txt
read -p "Πατήστε οτιδήποτε για να τερματίσετε το πρόγραμμα και να κλείσετε το παράθυρο..."


TODO: Να μπει στη μεταβλητή $kernel_version ο πυρήνας που υπάρχει στον εικονικό δίσκο (από τη σχετική εγγραφή στο default), και όχι ο πυρήνας του ltsp server

Μπορεί να μπει μια τέτοια λογική στα sch-scripts;

alkisg

Το LTSP δημιουργεί symlinks κάθε φορά για τον τελευταίο πυρήνα,
οπότε, στα 01-mac-address αρχεία, χρησιμοποίησε το vmlinuz και το initd.img αντί για τα vmlinuz-νούμερο,
και έτσι δεν θα χρειάζεσαι αλλαγές στα 01-mac-address αρχεία,
και επομένως δεν χρειάζεται καν το script... :)

Κώδικας: Bash
alkisg@alkis:/var/lib/tftpboot/ltsp/i386$ ls -lha vmlinuz initrd.img
lrwxrwxrwx 1 root root 27 Οκτ  19 14:49 initrd.img -> initrd.img-3.8.0-33-generic
lrwxrwxrwx 1 root root 24 Οκτ  19 14:49 vmlinuz -> vmlinuz-3.8.0-33-generic

apapakL

 ;D Δεν ήξερες! Δε ρώταγες;  ;D Ευχαριστώ Άλκη!