Fabric: configuration des hôtes dans la v2

Créé le 14 mai 2018  ·  4Commentaires  ·  Source: fabric/fabric

Salut! Est-il possible de spécifier hosts soit dans un fichier de configuration, soit dans le fabfile lui-même ?

Je sais que je peux les fournir via CLI ( -H ), mais si le fabfile est conçu pour communiquer avec un serveur spécifique, cela oblige simplement l'utilisateur à faire des choses supplémentaires sans raison valable.

La "meilleure" solution que j'ai pu trouver était de créer la connexion à la main, par exemple

<strong i="10">@task</strong>
def my_ls(c):
    conn = Connection('myhost')
    conn.run('ls')

mais cela semble assez sale car j'ai besoin de (1) le dupliquer partout et (2) cela rend l'argument de contexte inutile.

Commentaire le plus utile

D'accord avec tout ce qui précède. L'ancien paramètre env.hosts me manque vraiment. C'était magnifiquement simple.

-1 pour avoir besoin d'un autre fichier de configuration comme invoke.yaml ou autre. Je préférerais de loin un patch de singe ou une sorte de crochet d'importation qui me permette d'indiquer les hôtes.

Il m'a également fallu un certain temps pour comprendre que ctx.local n'est pas présent si aucun hôte n'est spécifié :(

Tous les 4 commentaires

J'ai la même question. J'ai trouvé une solution consistant à mettre conn = Connection('myhost') au début du fabfile pour qu'il ressemble à ceci :

conn = Connection('myhost')

<strong i="7">@task</strong>
def my_ls(c):
    conn.run('ls')

<strong i="8">@task</strong>
def my_cd(c):
    conn.run('cd')

....

Mais je n'aime pas la solution et je pense qu'il devrait y avoir un moyen d'injecter une connexion par défaut dans le contexte.

J'aimerais bien savoir aussi. Ce serait pratique de pouvoir mettre des hôtes dans le fichier de configuration.

De plus, ne pas fournir de liste d'hôtes (avec -H) est par défaut localhost. J'aimerais voir une option pour empêcher cette erreur/provoquer une erreur.

D'accord avec tout ce qui précède. L'ancien paramètre env.hosts me manque vraiment. C'était magnifiquement simple.

-1 pour avoir besoin d'un autre fichier de configuration comme invoke.yaml ou autre. Je préférerais de loin un patch de singe ou une sorte de crochet d'importation qui me permette d'indiquer les hôtes.

Il m'a également fallu un certain temps pour comprendre que ctx.local n'est pas présent si aucun hôte n'est spécifié :(

Voir #4 !

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

peteruhnak picture peteruhnak  ·  6Commentaires

supriyopaul picture supriyopaul  ·  4Commentaires

TimotheeJeannin picture TimotheeJeannin  ·  3Commentaires

haydenflinner picture haydenflinner  ·  5Commentaires

bitprophet picture bitprophet  ·  4Commentaires