IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Fichier de configuration unique


Sujet :

Shell et commandes GNU

  1. #1
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mars 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Mars 2017
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Fichier de configuration unique
    Bonjour à tou(te)s,
    Etant encore profane sous linux, j’éprouve de nombreuses difficultés pour réaliser exactement ce que je désire. Heureusement que le web est là pour me permettre d’avancer mais, hélas, on n’y trouve pas toujours tout….
    J’ai créé un serveur sous Debian Jessie (plus exactement Raspbian) sur lequel j’ai installé différents programmes que j’ai configuré plus ou moins aisément.
    L’idée serait d’avoir un fichier unique de configuration contenant les paramètres sous la forme :

    Emplacement/fichier_de_conf|paramètre valeur

    Par exemple :
    /etc/default/inadyn|RUN_DAEMON="yes"
    /etc/inadyn.conf|system default@no-ip.com
    /etc/inadyn.conf|username mon_compte_utilisatur
    /etc/inadyn.conf|password mon_mot_de_passe
    /etc/inadyn.conf|alias mon_host
    /etc/inadyn.conf|period 600
    /etc/mysql/my.cnf|bind-address = 0.0.0.0
    /etc/ssmtp/ssmtp.conf|AuthUser=mon_adresse_email
    /etc/ssmtp/ssmtp.conf|AuthPass=mon_mot_de_passe_email


    Le programme permettrait d’ouvrir les différents fichiers de conf et de les modifier avec les valeurs inscrites dans les fichiers au bon endroit en supprimant les valeurs par défaut.

    Je pensais faire cela en shell mais je ne suis pas sûr que cela soit le mieux pour faire ce genre d’opération.

    Merci pour votre contribution.

  2. #2
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 729
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 729
    Points : 15 133
    Points
    15 133
    Par défaut
    Citation Envoyé par NuM82 Voir le message
    L’idée serait d’avoir un fichier unique de configuration contenant les paramètres sous la forme :
    [...]
    Le programme permettrait d’ouvrir les différents fichiers de conf et de les modifier avec les valeurs inscrites dans les fichiers au bon endroit en supprimant les valeurs par défaut.
    Mais à quoi ça servirait ?

    Parce que, que tu paramètres un seul gros fichier de conf puis que tu écrives un script qui va le lire pour ensuite aller modifier les fichiers de conf propres à chaque prog, script qu'il va falloir tester et débugguer et retester pendant un temps dément, à mon avis tu as plus vite fait de modifier directement les fichiers de conf des prog's à la mano et sans te prendre la tête, d'autant plus qu'une fois un fichier de conf bien configuré, il n'y a plus à y revenir.

    Donc ton script ne servirait qu'une fois pour chaque prog : aucun intérêt, à part pour apprendre à programmer en shell.
    Ou alors je n'ai rien compris.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  3. #3
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mars 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Mars 2017
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Mais à quoi ça servirait ?
    Cela servirait à centraliser l'ensemble des modifications ou réglages d'un serveur pour permettre de ne rien oublier quand plusieurs années après, on doit remettre les mains dedans ...

    Actuellement, je contourne le problème en copiant les fichiers de conf.
    Un seul fichier à modifier me semble bien plus simple pour ne rien oublier plutôt qu'une multitude de fichiers éparpillés.
    Le script permettrait (à mon avis) d'aller plus vite pour l'installation d'un nouveau serveur similaire.

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 550
    Points : 19 383
    Points
    19 383
    Par défaut
    Citation Envoyé par NuM82 Voir le message
    Actuellement, je contourne le problème en copiant les fichiers de conf.
    ça semble le plus simple et pratique, en effet.
    Citation Envoyé par NuM82 Voir le message
    Un seul fichier à modifier me semble bien plus simple pour ne rien oublier plutôt qu'une multitude de fichiers éparpillés.
    pourquoi les copies devraient-elles être éparpillés ?
    crée un répertoire dédié, qui reproduira sous une forme ou une autre la hiérarchie des répertoires/fichiers de conf.
    tu peux y ajouter un paramètre temporel pour retrouver tes anciennes conf fonctionnelle.
    ça requiert un peu d'organisation, tu y gagneras.
    Citation Envoyé par NuM82 Voir le message
    Le script permettrait (à mon avis) d'aller plus vite pour l'installation d'un nouveau serveur similaire.
    hmm, non.
    copier ce qui existe dans le répertoire dédié me paraît plus rapide.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 446
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 446
    Points : 43 090
    Points
    43 090
    Par défaut
    Cela servirait à centraliser l'ensemble des modifications ou réglages d'un serveur pour permettre de ne rien oublier quand plusieurs années après, on doit remettre les mains dedans ...
    Quand après plusieurs années tu dois remettre les mains dedans, les fichiers peuvent avoir changé de noms, d'emplacement, ou morcelés en plusieurs sous-fichiers. Des petites changements pas spécifiquement bloquant pour un sysadmin, mais suffisant pour planter un script.

    Tu peux par contre tout à fait envisager de te créer une matrice pour réinstaller un serveur dans une config bien précise. En cas de mise à jour de version (système ou appli), celle-ci devra être modifiée en conséquence.

    C'est d'ailleurs le principe des dockerfiles utilisé par Docker.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  6. #6
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mars 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Mars 2017
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Merci pour vos retours.
    Effectivement, le fichier unique ne me semble plus la solution idéale et pratique que j'espérais.
    Vos regards extérieurs m'ont ouvert les yeux ... j'étais parti pour tuer une mouche au bazooka!
    Je vais me documenter sur le principe des dockerfiles pour ma culture et non pour l'exploitation dans mon cas.

  7. #7
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 101
    Points : 5 849
    Points
    5 849
    Par défaut
    Citation Envoyé par NuM82 Voir le message
    Le programme permettrait d’ouvrir les différents fichiers de conf et de les modifier avec les valeurs inscrites dans les fichiers au bon endroit en supprimant les valeurs par défaut.

    Je pensais faire cela en shell mais je ne suis pas sûr que cela soit le mieux pour faire ce genre d’opération.
    Si tu veux vraiment tout mettre dans un seul fichier, voici une ébauche de la possibilité qui me paraît la plus simple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    # inadyn
     
    inadyn=/etc/default/inadyn
     
    rm -rf $inadyn
     
    cat > $inadyn << EOT
    RUN_DAEMON="yes"
    EOT
     
    inadyn_conf=/etc/inadyn.conf
     
    rm -rf $inadyn_conf
     
    cat > $inadyn_conf << EOT
    system default@no-ip.com
    username mon_compte_utilisatur
    password mon_mot_de_passe
    alias mon_host
    period 600
    EOT
     
    # mysql
     
    my_cnf=/etc/mysql/my.cnf
     
    rm -rf $my_cnf
     
    cat > $my_cnf << EOT
    bind-address = 0.0.0.0
    EOT
     
    # ssmtp
     
    ssmtp_conf=/etc/ssmtp/ssmtp.conf
     
    rm -rf $ssmtp_conf
     
    cat > $ssmtp_conf << EOT
    AuthUser=mon_adresse_email
    AuthPass=mon_mot_de_passe_email
    EOT
    Améliorations possibles (voire nécessaires)
    • Gérer les erreurs (fichier ou répertoire inexistant, insuffisance de droits, etc.)
    • Gérer les droits des fichiers produits (propriétaire, groupe, droits unix)
    • Gérer un ou plusieurs backups des versions précédentes des fichiers
    • Proposer une interaction (comparaison entre existant et nouvelle version avant écrasement)


    Avantages:
    • Tout dans un même fichier
    • Simple à maintenir (pour l'instant)


    Inconvénients
    • Dangereux (détruit ou déplace des fichiers existants)
    • Fait fi de toute configuration préalable
    • Tout dans un même fichier: si un programme ou un administrateur veut modifier une valeur, il doit le faire dans le script... même s'il n'est pas au courant qu'il existe un script qui centralise la gestion des valeurs...
    • Le script contient les mots de passe en clair.

  8. #8
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mars 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Mars 2017
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Merci jack-ft pour ta contribution.

    Si j'ai bien compris ton code, il effectue les tâches suivantes :

    • suppression du fichier de conf.
    • écriture d'un nouveau fichier de conf contenant les nouvelles valeurs.


    Le soucis est que les paramètres qui ne doivent pas être actualisés sont perdus.

    Je cherchais à mettre à jour certaines valeurs et pas toutes.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Fichier de configuration
    Par Xavinou dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 26/09/2005, 23h02
  2. Réponses: 4
    Dernier message: 09/09/2005, 12h59
  3. [Log4j] fichier de configuration ou XML ?
    Par nabilblk dans le forum Logging
    Réponses: 2
    Dernier message: 02/09/2005, 16h42
  4. [langage] Lire un fichier de configuration
    Par bobinoo dans le forum Langage
    Réponses: 3
    Dernier message: 04/08/2004, 15h53
  5. Les fichiers de configuration de comptes avec Samba
    Par tomnie dans le forum Réseau
    Réponses: 4
    Dernier message: 18/03/2004, 08h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo