Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 05/06/2023, à 00:42

Sankaman77

Script pour création vm virtualbox automatique

Bonjour,

Je me bat depuis plusieurs jours sur mon problème suivant.
Je crée une machine depuis un script Windows de manière totalement automatique avec virtualbox.
Je génère un script vboxpostinstall.sh qui se place dans /root/vboxpostinstall.sh

La manip actuelle qui fonctionne:
- j’exécute mon script Windows.
- Ubuntu s’installe parfaitement avec user et pass,
- ajout du user dans sudo et autres paramètres.
- la manuellement, j’ouvre la sessions, puis le terminal
- j’exécute sudo /root/vboxpostinstall.sh
- shutdown, fini

Je recherche à automatiser cette dernière manipulation
Mais impossible de lancer mon script avec mon utilisateur sous sudo.
Du coup les applis et fichiers ne copient pas.

J’ai essayé plein de trucs et la, ben j’ai besoin d’aide.
J’installe la version 20 d’ubuntu Desktop.

Merci pour vos éclaircissement et vos idée

A bientôt smile

Dernière modification par Sankaman77 (Le 16/06/2023, à 11:48)

Hors ligne

#2 Le 05/06/2023, à 05:16

jplemoine

Re : Script pour création vm virtualbox automatique

Je pense qu'il faut changer ta manière de voir.
Il ne faut pas chercher à lancer le script en sudo mais le lancer au démarrage de la machine.
- @reboot dans crontab
- rc.local ou rc5
IL suffit juste que le script se "suicide" à la fin ou mettre un indicateur quelconque pour ne pas l’exécuter à chaque fois.


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne

#3 Le 05/06/2023, à 14:00

Watael

Re : Script pour création vm virtualbox automatique

@reboot, c'est simple, c'est bien.

et à la fin du script exécuté au redémarrage :

crontab -l | grep -v '^@reboot.*nomDuScript | crontab

Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#4 Le 05/06/2023, à 14:45

jplemoine

Re : Script pour création vm virtualbox automatique

@Watael : pas tout à fait d'accord avec toi...

De mémoire, on ne doit plus utiliser le fichier crontab mais /etc/cron.d/xxxx
mais le principe reste le même.

Donc, si on utilise un fichier spécifique, on doit pouvoir le supprimer (mais on perd l'historique) ou mettre un # devant les lignes qui n'en ont pas.
Voir même ne le "supprimer" que s'il est sans erreur.


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne

#5 Le 05/06/2023, à 15:04

Watael

Re : Script pour création vm virtualbox automatique

De mémoire, on ne doit plus utiliser le fichier crontab mais /etc/cron.d/xxxx

je n'ai pas vu passer l'info.
au quotidien, ça s'entend bien, moins pour une tâche aussi ponctuelle que la fin d'une installation.

d'ailleurs, alors, pourquoi le proposes-tu ? smile

l'important c'est que ce soit simple et limpide pour l'utilisateur.
rm /etc/cron.d/xxxx, c'est simple aussi.

--
ps: voire

Dernière modification par Watael (Le 05/06/2023, à 15:05)


Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#6 Le 06/06/2023, à 09:36

Sankaman77

Re : Script pour création vm virtualbox automatique

Bonjour tout le monde.

Merci pour toutes vos réponses, j’ai presque réussi avec un mélange de RC.local et crontab.

C’est du bricolage et compliqué mais je n’ai pas réussi à faire mieux.
En fait vboxpostinstall est exécuté 3 fois.
- Une fois par root, la session utilisateur n’est pas encore crée ou accessible et ne peut donc pas installer les programmes que je demande dans vboxpostinstall.
Je crée donc à ce moment là le RC.local puis reboot
- au reboot, le RC.local re exécuté vboxpostinstall, qui crée le crontab puis le script de reboot sur le bureau
- je double clique sur le script, ça reboot puis va execute le vboxpostinstall depuis le crontab utilisateur, et la, enfin, ça installe les programmes.

Dans vboxpostinstall, Je crée un fichier différent à chaque étape pour savoir ce qu’il doit executer.

J’ai l’impression que si, manuellement, je ne rentre pas dans la session au moins une fois,
Toutes mes commandes impliquant l’utilisateur ne fonctionnent pas

Hors ligne

#7 Le 06/06/2023, à 10:25

jplemoine

Re : Script pour création vm virtualbox automatique

@Watael :
Oui pour voire.
Depuis plusieurs versions (12.04 de mémoire), pour beaucoup de paramétrage : il y a eu la création de répertoire xxx.d pour ne pas perdre le personnalisation lors d'une mise à jour.
Je trouve que le fait d'utiliser un fichier par fonction dans /etc/cron.d est plus facile à gérer qu'un gros crontab (en pro, j'en ai vu avec plusieurs dizaines de lignes).

@Sankaman77 :
Je pense que je n'ai pas compris la demande et j'ai induis les autres en erreur.
Je ne comprends pas pourquoi tu installes les programmes en tant que l'utilisateur + sudo et non directement en root (via la @reboot du crontab).
Dans le cas où il faut personnaliser pour un utilisateur donné, c'est effectivement à l'ouverture de sa session (*) qu'il faut la faire (il y a un script qui est utilisé mais je n'ai plus le nom en tête).
Après il y a des programmes qu'il faut installer en sudo car il y a création d'un certain nombres de fichiers / répertoires dans le $HOME.

(*) : il faut tester s'il faut obligatoirement une session graphique ou si une simple connexion ssh peut suffire. (il y a .bashrc par exemple)


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne

#8 Le 07/06/2023, à 03:40

MicP

Re : Script pour création vm virtualbox automatique

Bonjour

Dans son message #1, Sankaman77 a écrit :


Je génère un script vboxpostinstall.sh qui se place dans /root/vboxpostinstall.sh

Quel est le contenu du fichier /root/vboxpostinstall.sh ?

Dernière modification par MicP (Le 07/06/2023, à 13:58)

Hors ligne

#9 Le 16/06/2023, à 11:49

Sankaman77

Re : Script pour création vm virtualbox automatique

Bonjour, désolé pour la réponse tardive, j'ai renommé le post et je vais détailler un peu plus ce que je souhaite faire.

A partir d'un fichier .bat sur Windows (ou d'un .sh sur ubuntu par la suite), je souhaite :

- créer une machine virtuelle via virtualbox avec une configuration spécifique,
- créer une session utilisateur
- créer un partage réseau entre la machine hôte et la machine virtuelle
- Installer des packages spécifiques
- créer divers raccourcis sur le Desktop
- éteindre la machine virtuelle

Particularité importante :
- Au moment de la création de la machine virtuelle, il n'y a pas d'accès internet. Il faut donc que tous les packages et leurs dépendances soient stockés sur la machine hôte
- Il faut aussi que le partage réseau soit connecté au démarrage de la machine virtuelle.
- par simplicité et afin de pouvoir créer des machines virtuelles en boucle, je passe un paramètre unique à vboxmanage qui est utilisé pour le nom de la machine virtuelle, le nom d'utilisateur et son mot de passe.
- cela veut dire que le vboxmanage est créé à la volée dans le .bat car les chemins dans chaque machine virtuelles changent en fonction du nom de l'utilisateur

Voilà ce que je souhaite faire et j'ai quasiment réussi.
je ne peux pas coller le contenu du vboxpostinstall là tout de suite. je dois retirer pas mal de choses dedans.
je vous le mettrai plus tard.

en tous cas, le problème principal à tout ça, c'est que la session utilisateur n'est pas créée/activée au moment de la première exécution du vboxpostinstall. Du coup, il faut ruser et créer des crontab ou autre pour qu'au reboot, il relance vboxpostinstall en utilisant des conditions sur des fichiers créés pour savoir ou reprendre le script.

Je suis sur qu'il y a un truc plus rapide à faire dans le script ou voir même dans vboxmanage au tout départ.

Bonne journée tout le monde smile

Hors ligne