Edito
Voila voila, je refais mon infra…
Et j'ai donc envie de participer a une oeuvre commune :
Antoine.
Pub
Désolé de vous incommoder avec cela, c'est un mal aujourd'hui nécessaire. Je le souhaite juste utile, on verra.
Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.
docs:hard_hack:synclef [2010/07/03 17:25] 127.0.0.1 édition externe |
docs:hard_hack:synclef [2018/01/07 16:27] (version actuelle) |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Méthodes possibles ====== | + | Merci d'aller voire pour le moment [[docs:hard_hack:synclef_old|Objectifs & Etat des lieux]] |
- | + | ||
- | - Rallonge USB : simple pas de travail trop intellectuel, enfin si passer le câble, et la ca deviens vite moins souple | + | |
- | - Modifier mon nslu2 pour qu'il exporte un rsync de la clef | + | |
- | - Utiliser simplement le paquet UsbIP | + | |
- | + | ||
- | ===== Quid de la technicité des choix ? ===== | + | |
- | + | ||
- | ==== NSLU2 ==== | + | |
- | - autofs pour montage de la clef dans un rep avec le numéro de série comme point de montage | + | |
- | - synchro sur un disque local | + | |
- | - des que le serveur de synchro passe, il y a les données | + | |
- | - Être bien attentif a gérer l'arrachage a chaud de la clef | + | |
- | * Montage en RO | + | |
- | * Faire clignoter une Led ? | + | |
- | ==== UsbIp ==== | + | |
- | - Dés insertion d'un perif USB : auto-export de celui ci | + | |
- | - Le "ping" de Backuppc est modifier pour chercher la présence du périphérique a backuper sur le Nslu2 | + | |
- | * Si le perif a été démonté volontairement mais pas débranché, en tenir compte | + | |
- | - Être bien attentif a gérer l'arrachage a chaud de la clef | + | |
- | * Montage en RO | + | |
- | * Faire clignoter une Led ? | + | |
- | * [[http://www.nslu2-linux.org/wiki/HowTo/UseUsbIpOnTheNSLU2|Comment faire sur NSLU2]] mais j'aime pas : cross-compil | + | |
- | -> Et si je faisait ca plutôt sur mon "cadavre" d'eepc (un eepc 701 acheté pas cher car clavier HS) | + | |
- | + | ||
- | ===== Pourquoi choisir UsbIP ? ===== | + | |
- | + | ||
- | - Plus le temps va passer plus il sera difficile de trouver les binaires pour piloter mes modules USB que je vais brancher dépasseront mon NSLU2 (déjà que...) | + | |
- | - Une Rallonge USB c'est incompatible avec la virtualisation, enfin généralement (y un hack pour Xen ;) ) | + | |
- | - Je veux faire marcher mon pingouin magique, comme il est USB, ca serait sympa d'avoir un "standard" de l'USB a la maison ! | + | |
- | * Pour le TuxDroid s'appuyer sur la superbe Doc http://tux.serviceinformatique06.com/ | + | |
- | - J'aime les trucs complétement portables (oui y a le client pour windows :)))))) ) | + | |
- | - J'aime les trucs qui sortent de l'ordinaire | + | |
- | - J'aime l'ouverture que ca propose (oui, je ne suis plus limité a du FileSysteme, cf le TuxDroid, mais aussi la pleine synchro du GSM, en BT !!!) | + | |
- | + | ||
- | ====== Ce qui fonctionne ====== | + | |
- | A ete mis en place pour le moment : | + | |
- | * Un Eepc d'occasion le relais, sans clavier (donc pas cher, et potentiellement en wifi, donc mettable partout :) ) | + | |
- | * Un serveur BackupPC (deja existant) avec des hostes au parametrage specifique | + | |
- | ===== Manipulation faites sur le relais ===== | + | |
- | ==== Creation d'un script php ==== | + | |
- | pour permettre au serveur **BackupPC** de: | + | |
- | - //pinger// la clef USB | + | |
- | - Lancer un dump avant le backuppc | + | |
- | + | ||
- | FIXME: a terme ce dump permettras aussi, idealement bkp table de partition mbr | + | |
- | + | ||
- | <xtermrtf> | + | |
- | <? | + | |
- | + | ||
- | # Rappelons nous les 3 etats de la mati^WClef | + | |
- | # ? Inséré : renvoyer un errcode http | + | |
- | # ! Prete : permet de lancer a terme un dump du mbr, etc ... | + | |
- | # ! Demounte : permet de demonter le device (coté secu c'est funcky, mais bon, j'aime le risque) | + | |
- | + | ||
- | # Les params seront | + | |
- | # Key : Label de la clef | + | |
- | # Ordre : dump/umount (si vide, alors c'est une demande si inséré ou pas | + | |
- | + | ||
- | + | ||
- | $label=basename($_GET["label"]); | + | |
- | if(file_exists("/media/".$label)) { | + | |
- | if($_GET["go"]=="dump") { | + | |
- | } | + | |
- | elseif($_GET["go"]=="umount") { | + | |
- | echo "Demande arret"; | + | |
- | system("/usr/bin/sudo /usr/sbin/umount.hal /media/$label"); | + | |
- | } | + | |
- | else { | + | |
- | echo "OK"; | + | |
- | } | + | |
- | } | + | |
- | else { | + | |
- | header("HTTP/1.0 404 Not Found"); | + | |
- | ###header("HTTP/1.0 404 Not Found",false,404); | + | |
- | } | + | |
- | ?> | + | |
- | </xtermrtf> | + | |
- | + | ||
- | ==== Configuration de sudo ==== | + | |
- | Permettre a www-data de démonter la clef en fin de backup | + | |
- | <xtermrtf> | + | |
- | # /etc/sudoers | + | |
- | # | + | |
- | # This file MUST be edited with the 'visudo' command as root. | + | |
- | # | + | |
- | # See the man page for details on how to write a sudoers file. | + | |
- | # | + | |
- | Defaults env_reset | + | |
- | + | ||
- | # Host alias specification | + | |
- | # User alias specification | + | |
- | # Cmnd alias specification | + | |
- | Cmnd_Alias UMOUC = /usr/sbin/umount.hal | + | |
- | + | ||
- | # User privilege specification | + | |
- | root ALL=(ALL) ALL | + | |
- | + | ||
- | Runas_Alias UMOUU = root | + | |
- | + | ||
- | + | ||
- | # Allow members of group sudo to execute any command after they have | + | |
- | # provided their password | + | |
- | # (Note that later entries override this, so you might need to move | + | |
- | # it further down) | + | |
- | %sudo ALL=(ALL) ALL | + | |
- | # | + | |
- | #includedir /etc/sudoers.d | + | |
- | + | ||
- | # Members of the admin group may gain root privileges | + | |
- | %admin ALL=(ALL) ALL | + | |
- | www-data ALL =(UMOUU) NOPASSWD: UMOUC | + | |
- | </xtermrtf> | + | |
- | ==== Configuration de l'automount ==== | + | |
- | - apt-get install halevt | + | |
- | === Configurations d'halevt === | + | |
- | dans le fichier /etc/halevt/halevt.xml, modifier le bon (hihihi) paragraphe | + | |
- | <xtermrtf> | + | |
- | <halevt:Device match="hal.block.device & hal.block.is_volume = true & hal.volume.mount_point"> | + | |
- | <halevt:Property name="hal.volume.is_mounted"> | + | |
- | <halevt:Action value="true" exec="halevt-mount -s;/usr/local/sbin/call_bkppc true $hal.udi$ $hal.volume.mount_point$"/> | + | |
- | </halevt:Property> | + | |
- | </halevt:Device> | + | |
- | </xtermrtf> | + | |
- | A ete rajouté //;/usr/local/sbin/call_bkppc true $hal.udi$ $hal.volume.mount_point$// cela lancera le script | + | |
- | + | ||
- | FIXME: dans le meme paragraphe dont //Action value="false"// nous pourrons l'employer pour faire changer la led de l'arduino | + | |
- | + | ||
- | Execution du script qui demande le backup (**/usr/local/sbin/call_bkppc**) | + | |
- | <xtermrtf> | + | |
- | #!/bin/bash | + | |
- | + | ||
- | # true /org/freedesktop/Hal/devices/volume_uuid_F03F_F5A8 /media/CLEFRBS00 | + | |
- | mntype=$1 | + | |
- | uidclef=$2 | + | |
- | nomclef=`echo $3 | sed -s "s=^/media/==g" | tr "[:upper:]" "[:lower:]"` | + | |
- | sleep 5 | + | |
- | wget -qO /dev/null "http://backuppc:AUTH@adlp.org/backuppc/index.cgi?host=$nomclef&hostIP=$HOSTNAME&doit=1&action=Start_Incr_Backup" | + | |
- | + | ||
- | </xtermrtf> | + | |
- | + | ||
- | FIXME: ici il faudra changer la couleur de la Led | + | |
- | + | ||
- | ==== Configuration du rsync ==== | + | |
- | - ajout d'un partage rsync | + | |
- | <xtermrtf> | + | |
- | [media] | + | |
- | use chroot = false | + | |
- | read only = true | + | |
- | uid = root | + | |
- | gid = root | + | |
- | hosts allow = 10.0.10.51 | + | |
- | comment = Bkp | + | |
- | path = /media | + | |
- | auth users = backuppc | + | |
- | secrets file = /etc/rsyncd.secrets | + | |
- | </xtermrtf> | + | |
- | - Autres ameliorations | + | |
- | * Integrer un systeme pour backuper le MBR et la table de partition du device | + | |
- | * Gerer les conflits de labels ? | + | |
- | * Indiquer la fin du backup (euh, au hasard, un arduino? :) ) | + | |
- | ===== Serveur de Backup ===== | + | |
- | + | ||
- | * Je part du principe que le relais est deja correctement backupé/able | + | |
- | - Integration d'un nouvel hote, au nom du label de la clef (ouinnnn) | + | |
- | - Configuration comme suis: (ici la clef, et le nom de la //machine// est ROMPAQ | + | |
- | <xtermrtf> | + | |
- | $Conf{TarShareName} = [ | + | |
- | '/' | + | |
- | ]; | + | |
- | + | ||
- | $Conf{TarClientCmd} = '$tarPath -c -v -f - -C $shareName+ --totals'; | + | |
- | + | ||
- | # remove extra shell escapes ($fileList+ etc.) that are | + | |
- | # needed for remote backups but may break local ones | + | |
- | $Conf{TarFullArgs} = '$fileList'; | + | |
- | $Conf{TarIncrArgs} = '--newer=$incrDate $fileList'; | + | |
- | + | ||
- | $Conf{TarClientPath} = '/usr/bin/sudo /etc/backuppc/tar-create'; | + | |
- | $Conf{RsyncShareName} = [ | + | |
- | 'media' | + | |
- | ]; | + | |
- | $Conf{ClientNameAlias} = 'burma'; | + | |
- | $Conf{BackupFilesExclude} = { | + | |
- | 'temporaires' => [], | + | |
- | 'tmp' => [ | + | |
- | '*/tmp/*', | + | |
- | '*/temp/*' | + | |
- | ] | + | |
- | }; | + | |
- | $Conf{BackupsDisable} = '1'; | + | |
- | $Conf{PingCmd} = '/usr/bin/wget -qO /dev/null http://$host/media/ROMPAQ'; | + | |
- | $Conf{BackupFilesOnly} = { | + | |
- | '*' => [ | + | |
- | '/ROMPAQ' | + | |
- | ] | + | |
- | }; | + | |
- | $Conf{DumpPostShareCmd} = '/usr/bin/wget -qO /dev/null http://$host/media/ROMPAQ/FINI'; | + | |
- | $Conf{DumpPreUserCmd} = '/usr/bin/wget -qO /dev/null http://$host/media/ROMPAQ/DEBUT'; | + | |
- | </xtermrtf> | + | |
- | + | ||
- | + | ||
- | + | ||
- | ===== Manipulation a faire pour l'arduino ===== | + | |
- | + | ||
- | * Bien retrouver sur quel port du hub est branchée la clef, faire le lien entre lsusb et ce que l'on reçoit lors du branchement de la clef | + | |
- | * Les etats a allumer: | + | |
- | - Orange : clef montée, en attente de backup | + | |
- | - Rouge : Backup en cours | + | |
- | - Vert : Backup fini | + | |
- | - Eteint : Si tout ce passe bien, il n'y a rien dans ce port. | + | |
- | + | ||
- | FIXME | + | |
- | * Mieux gérer le nom de la "machine", c'est peu lisible | + | |
- | * Mieux gérer le nom fictif de la machine pour la passer aux scripts => minimiser les paramétrages | + | |
- | * Pb de casse pour automatiser sur le nom de la partitions | + | |
- | * Pas regarde pour le multipartitionning | + | |
- | * Mieux gerer les auth | + | |
- | - Creer un compte sur le backuppc juste pour la demande de backup des clefs | + | |
- | - Gerer un login/mdp //uniquement// pour la demande de dump et cette de demontage | + |