Template de fichier de conf - Shell/Batch - Programmation
Marsh Posté le 30-12-2009 à 11:47:55
je suis pas sûr d'avoir compris ta dernière phrase...
pour valoriser un template, tu peux passer par sed par exemple, assez facilement
Code :
|
Marsh Posté le 30-12-2009 à 12:00:50
Oui j'ai pensé a ca et c'est sans doute ce que je vais faire.
Le seul truc c'est que je dois écrire un sed pour chaque variable différente:
sed "s/<ip_toto>/${ip_toto}/" fichier.template > fichier.conf
sed "s/<ip_titi>/${ip_titi}/" fichier.conf > fichier.conf
...
J'aurais aimé trouver une facon de faire ca plus élégante.
Marsh Posté le 30-12-2009 à 12:26:48
ah ok je crois que je viens de comprendre. il faut parser le script bash qui contient les variables pour remplir un template?
si c'est ca ca doit se faire, avec un sed un poil plus chiadé et une chtite boucle.
tu peux mettre du contenu un peu plus précis? genre le script bash et le template en entier? (ou du moins des extraits plus conséquents?)
Marsh Posté le 30-12-2009 à 12:30:53
Pas de problème:
Un template:
|
Mon fichier de variables:
|
Si je veux ecrire un truc avec la solution que tu propose, ca ferais un truc du genre:
return sed "s/\$ip_network1/$ip_network1/" $1 | \ |
Je trouve ca bof..
Marsh Posté le 30-12-2009 à 13:32:56
nan c clair on peut faire mieux. déja tu pourrais éventuellement faire un fichier truc.sed contenant
Code :
|
et l'appeler avec
Code :
|
mais on doit pouvoir faire encore plus général... je regarde si j'arrive à trouver un truc sympa.
Marsh Posté le 30-12-2009 à 14:06:11
sinon tu peux faire ca:
tu enlève les espaces autour des "=" dans ton fichiers de variables:
Code :
|
comme ca tu peux le lancer pour créer tes variables d'environnement avec
Code :
|
et ensuite tu crée un tpl.sh qui contient
Code :
|
et tu le joue avec
Code :
|
ca me parait pas encore ultime mais c'est mieux que rien.
Marsh Posté le 30-12-2009 à 14:56:15
sinon ya les système de templates tout fais, genre ca: http://template-toolkit.org/ ca a l'air plutôt sympa.
Marsh Posté le 30-12-2009 à 15:10:47
use python
Marsh Posté le 30-12-2009 à 16:21:00
Haha merci de ton aide pataluc c'est très sympa de voir comme les gens sont patients et se prennent la tête.
Je crois que je vais rester à la première idée que j'ai déja réalisée.
Sinon j'avais bien pensé à ca pour mes templates (les mettre dans des echo) mais certains fichiers ont des syntaxes étranges et je veux pas les echapper, yen a beaucoup et c'est pas beau .
Ensuite je peux rien installer sur les machines (C'est pour du déploiement sur une version propre de redhat, donc pas de paquets en plus simplement pour déployer) donc c'est mort pour template toolkit ..
Mais merci de ton aide, je me suis au moins appercu que c'était pas si facile
Sinon python oui, il est dispo sur les machines mais en fait non, je vais me faire engueuler (Allez savoir pourquoi), en php c'est fastoche alors en python...
Donc.. toujours ouvert, mais ya plus d'urgence ^^
Encore merci
Marsh Posté le 30-12-2009 à 16:25:02
milootooloo a écrit : |
change de boulot
Marsh Posté le 30-12-2009 à 11:22:51
Bonjour,
Je cherche un moyen de créer des templates pour mes fichiers de conf que je dois déployer sur plusieurs machines.
Un exemple sera plus parlant:
j'ai des variables (dans un script bash):
ip_toto=172.89.45.32
ip_titi=172.34.23.45
J'ai un fichier de conf template:
IP=<ip_toto>
IP2=<ip_titi>
Je voudrais obtenir le fichier de conf valorisé:
IP=172.89.45.32
IP2=172.34.23.45
Ya t'il un moyen simple qui n'a pas besoin de lister toutes les variables qu'on veut remplacer?
Merci de votre aide