• [^] # Re: clonezilla ?

    Posté par . En réponse au message "Cloner" une ubuntu 18.04 LTS. Évalué à 1.

    Pas s'il fait du DHCP simple....

    De nos jours, les noms des interfaces réseau sont "prévisible", générées à partir d'inforamtions techniques. Du coup, le fichier /etc/network/interfaces doit être patché. Les fichiers /etc/hosts (pour associer le hostname à 127.0.1.1 qui est utilisé par sudo) et /etc/hostname (le nom de la machine) également.
    Encore que, pour le fichier interfaces, si un gestionnaire réseau graphique est utilisé, c'est inutile, puisqu'ils remplacent le fichier interfaces me semble.

    Enfin, je dirais que si:

    • les machines ne disposent que d'une seule interface réseau filaire;
    • les machines disposent d'au moins un disque SATA;
    • avoir un hostname généré n'est pas gênant;

    alors y'a moyen de scripter ça vite fait mal fait (code pas testé donc a vérifier et corriger sur machine non nécessaire avant usage):

    test -e /var/firstboost.sh && . /var/firstboost.sh
    
    NEW_IFACE=$(ip -o link | grep -v '\<lo\>' | cut -f2 -d:)
    OLD_IFACE=$(grep inet /etc/network/interfaces|tail -n1 | cut -f2 -d' ')
    sed -i "s/\\<$OLD_IFACE\\>/$NEW_IFACE/g" /etc/network/interfaces
    NEW_HOST=$(printf "%s-%s\n" $(hostname) $(udevadm info --query=all --name=sda | awk -F'=' '/ID_SERIAL=/{n=split(tolower(2ドル),array,"_"); print array[n]}'))
    OLD_HOST=$(hostname)
    echo $NEW_HOST > /etc/hostname
    hostname $NEW_HOST
    sed -i "s/\\<$OLD_HOST\\>/NEW_HOST/g" /etc/hosts
    rm /var/firstboot.sh
    

    En gros, ce script altère les fichiers hosts, hostname et interface pour remplacer le nom de l'interface réseau Éthernet filaire (dans mon cas enpXsY, YMMV) et les noms de la machine par le nom de la dernière interface interface réseau trouvée sur la nouvelle machine (si n'y en a pas, ça pète!) et un nom composé de celui du modèle ainsi que du numéro de série du disque dur sda (idem, s'il n'y en a pas, ça pète, cas qui se présenteras notamment sur des beaglebone black qui n'ont pas de carte mémoire, leurs "disques" internes étant notés "mmcblkX").

    Encore une fois, lire, comprendre et tester sur machine pas critique: certaines données sur lesquelles je me suis basé peuvent varier en fonction des logiciels systèmes utilisés ou du hardware!