Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[scripts] chenvr et syndgen (chroot & install/maj déporté)
View unanswered posts
View posts from last 24 hours

Goto page 1, 2  Next  
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
kwenspc
Advocate
Advocate


Joined: 21 Sep 2003
Posts: 4954

PostPosted: Sun Sep 23, 2007 8:33 pm    Post subject: [scripts] chenvr et syndgen (chroot & install/maj déport Reply with quote

Comme prévu je post ici 2 petits scripts qui pourront, je l'espère, en aider quelques uns.

Note: GenServ est très crade et manque cruellement de pas mal de choses (voir ToDo list). Entre l'idée et l'implémentation y a un monde, avec moi... :|

I - Principe:

J'utilise actuellement ces 2 scripts dans un buts bien précis: mettre à jour mon serveur sous Gentoo, sans pour autant faire les compil sur mon serveur, et sans même que mon serveur n'ait de compilateur ni rien de relatif à portage etc... En gros j'ai un serveur Gentoo, sans tous les outils qui font une Gentoo.

L'idée de départ est basé sur deux faits:
  • mon serveur est un antique P3 600 et compiler n'est plus de son âge. :lol:
  • dans un soucis de sécurité - minimaliste, je l'avoue - un serveur n'a pas à avoir de compilateur (ni pas mal de chose d'ailleurs).


Ce qui revient à dire que le serveur doit pouvoir être mis à jour sans que lui ne fasse de grosses tâches de maj. On oublis donc distcc, car là il faut encore que le serveur travail un peu. J'ai donc opté pour la technique de la mise à jour 100% déportée. Ça revient à avoir une image, complète cette fois-ci, de votre serveur ailleurs qui elle peut donc être mise à jour. Puis ensuite il faut exporté ces mises à jours sur le serveur de la manière la plus simple qui soit.

II - Chenvr:

Site (avec ebuild cette fois): ICI

L'image complète (avec compilo, portage et cie) de mon serveur, je ne pouvais la crée sur une autre machine dédiée. La seule machine autre que j'ai c'est mon desktop. Soit utilisons le desktop. Je suis partis de ce topic --> [HOWTO]chroot 32 bit sur amd64 . Et chenvr n'est rien de moins que l'automatisation de la procédure décrite dans ce topic (merci à marvin rouge au passage pour le-dit topic)

Vous pouvez télécharger chenvr.sh ici.
Merci à adjaxio pour les tests successifs du script :wink:

L'avantage de cette technique est de pouvoir utiliser la puissance de nos desktop (leur arbre portage aussi) tout en continuant à utiliser le desktop en question pour nos autres tâches habituelles.
Bien évidemment chenvr peut servir à créer un environnement chrooté pour une utilisation comme celle décrite dans le topic de marvin rouge.

L'utilisation est très simple. La seule contrainte et de l'utiliser dans un emplacement de votre disque où il pourra disposer d'un espace suffisamment large (> 1Go "en gros") et il nécessite d'être lancé avec les droits root.
L'aide et la version:
Code:

# ./chenvr -h
...
# ./chenvr -v


chenvr parle de "'target", de cible. La cible c'est le nome de l'environnement chrooté que vous souhaitez créer. l'option -t vous permet de spécifier ce nom et -c de créer la cible proprement dite. Vous avez accès à 3 bases machines: x86 (i386), i686 et x86_64 (pour ceux qui tournent avec un desktop en amd64 bien entendu).
Code:

#./chenvr -t gnia -c i686  (va créer un environnement chrooté 32 bits appelé "gnia" sur une base i686)

chenvr télécharge de lui même le bon stage3, tout est automatique.
Pour utiliser la cible ensuite c'est très simple:
Code:

#./chenvr -t gnia


Sinon il y a l'option -b pour faire une sauvegarde de la cible et enfin l'option -r pour supprimer la cible.

J'ai personnellement plusieurs cibles gérées via chenvr: une pour mon serveur (et chenvr) une pour la maj de mon laptop et une pour pouvoir lancer certaine applis 32 bits comme epsxe par exemple.

Nouvelle version: Vous aurez remarquer le changement de nom de genenv on est possé à chenvr (CHrooted ENViRonment + jeux de mot pourri oui oui). En fait Je voudrais qu'à terme ce script puisse être utilisé pas uniquement sur/pour gentoo.

- nouveauté: finit les répertoires cachés en dehors de la cible. Là tout est DANS la cible (elle embarque son propre .chenvr à la racine)
- un script custom.sh est appelé lors de chroot: vous pouvez le modifier et lui faire faire ce que vous voulez. Il y a pas mal de tâches automatisable (export de variables d'environnement comme DISPLAY, TERM ce que vous voulez, meme des commandes comme env-update, source /etc/profile etc... et bien éviedemment plus encore.)

III - Syndgen:

Le site de syndgen.
_________________
membre officieux du SAV Ati GEntoo


Last edited by kwenspc on Thu Mar 13, 2008 2:24 pm; edited 5 times in total
Back to top
View user's profile Send private message
F!nTcH
Tux's lil' helper
Tux's lil' helper


Joined: 15 Jul 2007
Posts: 149

PostPosted: Sun Sep 23, 2007 9:46 pm    Post subject: Reply with quote

T'es énorme !!

J'ai un PIII 500 qui contient une gentoo, et ça lui ferai le plus grand bien de ne pas avoir à compiler (et moi aussi ...)
Je poste sans avoir tout lu ni tout regardé, d'autres passeront aussi. Si je trouve un peu de temps dans le courant de la semaine, je jeterai un oeil à tes scripts, et je pourrais éventuellement te proposer une idée pour le transfert de fichiers.

Pour ceux qui voudraient me devancer, je travaillerai à base d'FTP avec un serveur FTP autorisant le compte root (oui c'est pas beau, mais bon, y'a un moment où il faut savoir mesurer risques et prise de tête), et un client à base de NcFTP (copie récursive, utilisation par scripts et même dans les scripts)

PS : pour le serveur FTP, on peut le blinder un peu : accès LAN uniquement, restrictions à 1 IP, FTPs, ou même, connexion de l'admin par SSH et démarrage/arrêt manuel du serveur FTP ... et bien d'autres ... chacun se gère ... (on peut en débattre à côté dans un autre topic ;) )

On va bien trouver des gens pour t'aider à faire du ménage kwenpc ;)

Merci encore !
_________________
Y'a ceux qui murmurent aux oreilles des chevaux ...
Et puis y'a ceux qui murmurent aux cores de leurs PC ... (oui je sors ... aïe ! tapez pas !!)
Back to top
View user's profile Send private message
kwenspc
Advocate
Advocate


Joined: 21 Sep 2003
Posts: 4954

PostPosted: Mon Sep 24, 2007 7:41 am    Post subject: Reply with quote

À la limite pourquoi pas offrir plusieurs manière de déploiement. Je suis en train de voir rsync là, avec l'option --exclude=PATTERN si y a pas moyen d'exclure toute une liste de pattern ça pourrait être sympa.

[edit] ah bah ouais --> --exclude-from=FILE [/edit]
_________________
membre officieux du SAV Ati GEntoo
Back to top
View user's profile Send private message
sd44
Apprentice
Apprentice


Joined: 21 Jul 2007
Posts: 277
Location: Nantes 44

PostPosted: Sat Sep 29, 2007 2:38 am    Post subject: Reply with quote

si j'ai bien compris tu fais une sorte de depots style debian et ta machine vient chercher son package dedans ? et tu souhaite automatiser la maj

juste une suggestion pour ta premiere copie, pourquoi pas une sorte de "cp -a" + "emerge -C gcc etc ..." + emerge --depclean revdep etc

ensuite il faudrait que quand tu fait un emerge truc, il aille compiler truc sur ta machine a compiler et revienne installer le paquet sur ta machine,
pour les mise a jour, mettre a jour le srv de compil et ton srv ensuite qui ira chercher les paquets naturelement avec "emerge -uDa --getbinpkgonly world" ou un truc du genre

enfin bon c'est juste une idée en vrac :D
_________________
Pourquoi faire simple quand on peut faire compliqué ?
Back to top
View user's profile Send private message
kwenspc
Advocate
Advocate


Joined: 21 Sep 2003
Posts: 4954

PostPosted: Sat Sep 29, 2007 8:14 am    Post subject: Reply with quote

sd44 wrote:
si j'ai bien compris tu fais une sorte de depots style debian et ta machine vient chercher son package dedans ? et tu souhaite automatiser la maj

Actuellement la machine ne fait rien qui concerne la maj. Elle n'est pas capable d'aller chercher aucune mise à jour (pas de portage, pas d'emerge, pas de gcc, pas de headers dans /usr/include, bref rien qui touche à la gestion de paquet...).

Sinon merci pour l'idée, je verrais ça. Mais je suis en train de refaire genserv en Python cette fois (oui oui un beau script qui s'installe proprement avec un ebuild et tout, et qui fout pas des fichiers de config tout moisis là où il faut pas :lol:)
Je suis aussi en train de passer à rsync, mais ça demande encore à faire des tests. L'idée c'est que :
- lors de la première install, via un live cd, on fasse un rsync (avec les bons paramètres) qui ira chercher ce qu'il faut dans le serveur rsync (qui ne sera rien d'autre que l'environement chrooté avec genserv dedans pour géré le tout)
- lors de maj, pareil un rsync sur le même environnement

Rsync permet en effet l'exclusion précise de tel ou tel rep/fichiers. Maintenant reste à savoir si c'est pas trop lourd en terme de temps/performance côté client en tout cas (la machine qui se synchronise)
Au pire je laisserais le choix des méthodes (envois des tbz2 par ssh, ou rsync ou autre...). Je tente de faire un truc vraiment modulaire, facile à modifier par l'ajout de plugins. Je vous tiens au courant.
_________________
membre officieux du SAV Ati GEntoo
Back to top
View user's profile Send private message
geekounet
Bodhisattva
Bodhisattva


Joined: 11 Oct 2004
Posts: 3772
Location: Wellington, Aotearoa

PostPosted: Sat Sep 29, 2007 9:36 pm    Post subject: Reply with quote

[déconnade]
kwenspc wrote:
mon serveur est un antique P3 600 et compiler n'est plus de son âge. :lol:

F!nTcH wrote:
J'ai un PIII 500 qui contient une gentoo, et ça lui ferai le plus grand bien de ne pas avoir à compiler (et moi aussi ...)


Mais, mais, mais ... qu'est ce que vous avez contre ce bon vieux PIII auquel je voue un culte suprême ? :( (et à ces petits frères Pentium M et compagnie aussi)
Faut lui faire honneur et le laisser compiler comme les grands, il tient encore très bien la forme avec son âge ^^
[ma vie]
Mon bon vieux PIII 800 compile tranquillement ses mises à jour de FreeBSD, fait tourner un spamassassin et tout plein d'autres trucs lourds en même temps sans broncher ... bon ok, il a beaucoup de mal à faire tourner de manière décente une application RoR, mais bon c'est d'une nouvelle génération ça, ça peut se comprendre ...
[/ma vie]

Si ça continue, je vais devoir fonder un temple pour le culte du PIII, et batailler pour conserver sa gloire d'antan :lol:

Oui bon, vous savez il est tard, tout ça .... oui bon, j'y vais, oui je sais, c'est par là => ... []
[/déconnade]
Back to top
View user's profile Send private message
kwenspc
Advocate
Advocate


Joined: 21 Sep 2003
Posts: 4954

PostPosted: Sun Sep 30, 2007 11:16 am    Post subject: Reply with quote

Ah ah :lol: nan geekounet le problème est avant-tout un soucis de sécurité. Pour moi il est totalement exlut que mon serveur possède quoique ce soit qui permette de compiler. D'où l'idée de déporté la maj ailleurs et faire en sorte que la synchronisation de l'install avec le serveur évite de lui mettre gcc, etc...
_________________
membre officieux du SAV Ati GEntoo
Back to top
View user's profile Send private message
F!nTcH
Tux's lil' helper
Tux's lil' helper


Joined: 15 Jul 2007
Posts: 149

PostPosted: Sun Sep 30, 2007 8:55 pm    Post subject: Reply with quote

@geekounet

Rhooo !! mais nan !! Je suis également très fier de mon PIII 500 et jamais je l'enverrai à la poubelle (le boîtier peut-être il m'énerve...).

Après tout, il s'est compilé son kernel tout seul, j'ai simplement fait autre chose à côté (sur un PIV HT ... 8) )

Je pense depuis longtemps que ça fera un très très bon serveur domestique. Par contre, c'est bruyant ... (du moins pour ma part, j'ai une version en slot et pas en socket, il fout un barouf terrible :? )

Après je suis d'accord que l'arbre portage sur le serveur, ça le fait pas trop ...
_________________
Y'a ceux qui murmurent aux oreilles des chevaux ...
Et puis y'a ceux qui murmurent aux cores de leurs PC ... (oui je sors ... aïe ! tapez pas !!)
Back to top
View user's profile Send private message
kwenspc
Advocate
Advocate


Joined: 21 Sep 2003
Posts: 4954

PostPosted: Mon Oct 01, 2007 5:50 am    Post subject: Reply with quote

F!nTcH wrote:
Par contre, c'est bruyant ... (du moins pour ma part, j'ai une version en slot et pas en socket, il fout un barouf terrible :? )

Carrément. Le mien est un PII 600EB slot one. Le seul moyen que j'ai eu de le faire "taire" c'est de coller un potentiomètre sur la bornes '+', puis de réglmer afin que le ventilo ait un rapport rpm/bruit acceptable.
(d'ailleurs si vous avez un PIII 600EB slot one en rab je suis preneur 8) j'ai une CM bi-cpu qui s'ennuie là)
_________________
membre officieux du SAV Ati GEntoo
Back to top
View user's profile Send private message
bi3l
Apprentice
Apprentice


Joined: 06 Feb 2003
Posts: 268
Location: France

PostPosted: Sat Feb 02, 2008 7:25 pm    Post subject: Reply with quote

Très intéressants, ces scripts ! D'autant que j'ai un eee pc sur lequel je mettrai bien une gentoo ! Je me disais même qu'il devrait être possible de limiter encore plus les fichiers à mettre sur le client déporté en ne déployant que les paquetages en "runtime dependency" (RDEPEND). Cependant, je ne sais absolument pas comment récupérer les RDEPEND effectives d'un ebuild installé. Quelqu'un connait un script qui sait faire ça ?
Back to top
View user's profile Send private message
kwenspc
Advocate
Advocate


Joined: 21 Sep 2003
Posts: 4954

PostPosted: Mon Feb 04, 2008 2:09 pm    Post subject: Reply with quote

bi3l wrote:
Très intéressants, ces scripts ! D'autant que j'ai un eee pc sur lequel je mettrai bien une gentoo ! Je me disais même qu'il devrait être possible de limiter encore plus les fichiers à mettre sur le client déporté en ne déployant que les paquetages en "runtime dependency" (RDEPEND). Cependant, je ne sais absolument pas comment récupérer les RDEPEND effectives d'un ebuild installé. Quelqu'un connait un script qui sait faire ça ?

Ça doit pas être bien compliqué en fait.
Suffit de savoir quelle version est installée le paquet x, ensuite tu pécho la liste de soft contenu dans le fichier /var/db/pkg/x-v/RDEPEND
Sauf si tu cherches à partir d'un paquet à faire tout la liste de dépendance et de leur RDEPEND. là ça commence à être un poil plus compliqué (faire en sorte d'éviter les doublons donc les risques de tourner en rond). Mais peut-être qu'un soft fais déjà ça. (à mon avis oui)
_________________
membre officieux du SAV Ati GEntoo
Back to top
View user's profile Send private message
bi3l
Apprentice
Apprentice


Joined: 06 Feb 2003
Posts: 268
Location: France

PostPosted: Mon Feb 04, 2008 4:35 pm    Post subject: Reply with quote

kwenspc wrote:
Suffit de savoir quelle version est installée le paquet x, ensuite tu pécho la liste de soft contenu dans le fichier /var/db/pkg/x-v/RDEPEND

Sauf que le fichier RDEPEND contient les dépendances "non résolues", c'est-à-dire la recopie exacte du RDEPEND de l'ebuild avec les USE et les >=, =, ||, ... C'est tout de suite moins facile...
Back to top
View user's profile Send private message
kwenspc
Advocate
Advocate


Joined: 21 Sep 2003
Posts: 4954

PostPosted: Mon Feb 04, 2008 6:11 pm    Post subject: Reply with quote

bi3l wrote:

Sauf que le fichier RDEPEND contient les dépendances "non résolues", c'est-à-dire la recopie exacte du RDEPEND de l'ebuild avec les USE et les >=, =, ||, ... C'est tout de suite moins facile...

Tu veux dire que dans le RDEPEND il liste tous les ebuild sans appliquer ce qu'on aura pas sur le système pour couse de USE non inclus?

C'est pas génial dans ce cas en effet. Du coup mieux vaut encore rester sur un rsync de la partition (avec exclusion des reps/binaires inutiles) même si c'est pas un travail en 2 commandes.
_________________
membre officieux du SAV Ati GEntoo
Back to top
View user's profile Send private message
Mickael
Advocate
Advocate


Joined: 05 Sep 2005
Posts: 2387
Location: ~Belfort! - France - EU

PostPosted: Wed Feb 06, 2008 9:57 am    Post subject: Reply with quote

Juste comme ça, peut-être une bonne idée de parler de tes scripts dans la prochaine GMN, non?
_________________
À LIRE : COMMENT POSTER ET OBTENIR DE L'AIDE ?
Qui suis-je ? Bon j'ai relu, comme d'habitude, je suis bon a rien le vendredi
Qui suis-je ? Je ne serai jamais modo
Back to top
View user's profile Send private message
kwenspc
Advocate
Advocate


Joined: 21 Sep 2003
Posts: 4954

PostPosted: Fri Feb 08, 2008 6:52 am    Post subject: Reply with quote

Mickael wrote:
Juste comme ça, peut-être une bonne idée de parler de tes scripts dans la prochaine GMN, non?

Serieusement? non :lol:
Le code est pas génial. (soyons francs)

J'ai refait genenv il y a peu (toujours pas posté) et genserv est obsolète. Je dois le refaire mais... le baobab dans la main :?

Et je me tâte toujours quand à les passer en full python, plutôt que de rester en bash (d'autant que là je suis même pas sûr qu'il soit posix, c'est mêmé certain...donc pour zsh et autres c'est mort.)
_________________
membre officieux du SAV Ati GEntoo
Back to top
View user's profile Send private message
adjaxio
n00b
n00b


Joined: 06 Mar 2006
Posts: 54

PostPosted: Sat Feb 09, 2008 1:54 pm    Post subject: Reply with quote

Merci .
Je vais enfin pouvoir passer mon serveur sous gentoo (il est en se moment avec fedora).
Consernant zsh ca fonctionne bien avec pour le genenv.sh

AdJaXiO
Back to top
View user's profile Send private message
kwenspc
Advocate
Advocate


Joined: 21 Sep 2003
Posts: 4954

PostPosted: Sat Feb 09, 2008 6:09 pm    Post subject: Reply with quote

adjaxio wrote:

Consernant zsh ca fonctionne bien avec pour le genenv.sh
AdJaXiO


Ah merci d'avoir testé :)
_________________
membre officieux du SAV Ati GEntoo
Back to top
View user's profile Send private message
adjaxio
n00b
n00b


Joined: 06 Mar 2006
Posts: 54

PostPosted: Sat Feb 09, 2008 8:50 pm    Post subject: Reply with quote

Pour le moment je fait des teste sur une machine virtuel mais j'aime bien le principe
Back to top
View user's profile Send private message
kwenspc
Advocate
Advocate


Joined: 21 Sep 2003
Posts: 4954

PostPosted: Mon Feb 11, 2008 10:39 am    Post subject: Reply with quote

Ça me motive pour continuer!

Les dernières modifs que j'ai faites sont centrées sur la flexibilité. On oublis les reps cachés externes tout crades pour garder la config des target. Cette fois chaque target possède sa propre config et, de plus, il est possible d'étendre par scripts interposés l'automatisation de commandes lors du chroot. Ce qui me permet à moi de passer la variable d'environnement à TERM=xterm (sinon j'ai des erreurs quand ça reste à rxvt-unicode) mais aussi de loggé en user, puis d'eporter la variable DISPLAY afin de pouvoir lancer des applis dans le Xorg courant à partir du chroot (pratique pour epsxe qui n'a pas été porté en x86_64 :wink: )
Je vais tenter de poster cette nouvelle version. Je suis passé au repos funtoo aussi pour les stages 3.

maintenant faut que fasse genserv en python, depuis que je le dis.
_________________
membre officieux du SAV Ati GEntoo
Back to top
View user's profile Send private message
adjaxio
n00b
n00b


Joined: 06 Mar 2006
Posts: 54

PostPosted: Mon Feb 11, 2008 5:24 pm    Post subject: Reply with quote

J'attent avec impatience les nouveautés
Back to top
View user's profile Send private message
kwenspc
Advocate
Advocate


Joined: 21 Sep 2003
Posts: 4954

PostPosted: Wed Feb 13, 2008 12:12 pm    Post subject: Reply with quote

adjaxio wrote:
J'attent avec impatience les nouveautés

T'as reçus mon MP?
_________________
membre officieux du SAV Ati GEntoo
Back to top
View user's profile Send private message
adjaxio
n00b
n00b


Joined: 06 Mar 2006
Posts: 54

PostPosted: Wed Feb 13, 2008 3:41 pm    Post subject: Reply with quote

kwenspc wrote:
adjaxio wrote:
J'attent avec impatience les nouveautés

T'as reçus mon MP?


Je vien de voir ton Mp je teste et je te tien au courant
Back to top
View user's profile Send private message
xaviermiller
Bodhisattva
Bodhisattva


Joined: 23 Jul 2004
Posts: 8706
Location: ~Brussels - Belgique

PostPosted: Tue Feb 19, 2008 12:21 pm    Post subject: Reply with quote

Pas mal !

Y-a-t-il déjà un article décrivant comment créer une Gentoo "user-only", sans les "build tools" ?
_________________
Kind regards,
Xavier Miller
Back to top
View user's profile Send private message
bi3l
Apprentice
Apprentice


Joined: 06 Feb 2003
Posts: 268
Location: France

PostPosted: Tue Feb 19, 2008 12:39 pm    Post subject: Reply with quote

XavierMiller wrote:
Y-a-t-il déjà un article décrivant comment créer une Gentoo "user-only", sans les "build tools" ?

Tu peux t'inspirer de http://fr.gentoo-wiki.com/Asus_Eee_Pc_701
Back to top
View user's profile Send private message
xaviermiller
Bodhisattva
Bodhisattva


Joined: 23 Jul 2004
Posts: 8706
Location: ~Brussels - Belgique

PostPosted: Tue Feb 19, 2008 2:30 pm    Post subject: Reply with quote

moui, j'aime pas trop l'approche qui évite des répertoires plutôt que de n'installer que les packages nécessaires (via des qpkg)
_________________
Kind regards,
Xavier Miller
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum