Il s'agit de la commande fab qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS
PROGRAMME:
Nom
fab - Outil de déploiement à distance Pythonic simple
SYNOPSIS
fab [commandes ...]
DESCRIPTION
La méthode la plus courante pour utiliser Fabric est via son outil de ligne de commande, fab, Qui
aurait dû être placé sur le chemin de l'exécutable de votre shell lors de l'installation de Fabric. fab
s'efforce d'être un bon citoyen Unix, en utilisant un style standard de commutateurs de ligne de commande,
sortie d'aide, et ainsi de suite.
UTILISATION
Basic utilisé
Dans sa forme la plus simple, fab peut être appelé sans aucune option, et avec un ou plusieurs
arguments, qui devraient être des noms de tâches, par exemple :
$ fab tâche1 tâche2
Cela fonctionnera tache 1 suivie par tache 2, en supposant que Fabric a pu trouver un fabfile
à proximité contenant des fonctions Python avec ces noms.
Cependant, il est possible d'étendre cette utilisation simple à quelque chose de plus flexible, en utilisant
les options fournies et/ou en passant des arguments aux tâches individuelles.
Arbitraire éloigné coquille commandes
Nouveau dans la version 0.9.2.
Fabric s'appuie sur une convention de ligne de commande moins connue et peut être appelé dans ce qui suit
manière:
$ fab [options] -- [commande shell]
où tout après le -- est transformé en temporaire courir appel, et n'est pas analysé pour
fab option. Si vous avez défini une liste d'hôtes au niveau du module ou sur la ligne de commande,
cette utilisation agira comme une tâche anonyme d'une ligne.
Par exemple, disons que vous vouliez juste obtenir les informations du noyau pour un tas de systèmes ; tu
pourrait faire ceci :
$ fab -H système1, système2, système3 -- uname -a
qui serait littéralement équivalent au fabfile suivant :
à partir de l'exécution d'importation de fabric.api
def anonyme () :
run("uname -a")
comme s'il était exécuté ainsi :
$ fab -H system1,system2,system3 anonyme
La plupart du temps, vous voudrez simplement écrire la tâche dans votre fabfile (tout ce que vous
utiliser une fois, vous êtes susceptible de l'utiliser à nouveau) mais cette fonctionnalité offre un moyen pratique et rapide de
lancez rapidement une commande SSH tout en exploitant les paramètres de connexion de votre fabfile.
Ligne de commande Options
Un aperçu rapide de toutes les options de ligne de commande possibles peut être trouvé via fab --Aidez-moi. Si
vous recherchez des détails sur une option spécifique, nous entrons dans les détails ci-dessous.
NOTE:
fab utilise Python optparse bibliothèque, ce qui signifie qu'elle honore le style Linux ou GNU typique
options courtes et longues, ainsi que mélanger librement les options et les arguments. Par exemple fab tache 1
-H nom d'hôte tache 2 -i chemin/vers/fichier clé est tout aussi valable que la plus simple fab
-H nom d'hôte -i chemin/vers/fichier clé tache 1 tache 2.
-une, --no_agent
Ensembles env.no_agent à Vrai, forçant notre couche SSH à ne pas parler à l'agent SSH lorsque
essayer de déverrouiller les fichiers de clé privée.
Nouveau dans la version 0.9.1.
-UNE, --agent avancé
Ensembles env.forward_agent à Vrai, en activant le transfert d'agent.
Nouveau dans la version 1.4.
--abort-on-invites
Ensembles env.abort_on_prompts à Vrai, forçant Fabric à abandonner chaque fois qu'il le demanderait
pour l'entrée.
Nouveau dans la version 1.1.
-c FICHIER RC, --config=RCFILE
Ensembles fichier env.rc au chemin de fichier donné, que Fabric essaiera de charger au démarrage
et utiliser pour mettre à jour les variables d'environnement.
-d COMMANDER, --display=COMMANDE
Imprime la docstring entière pour la tâche donnée, s'il y en a une. Pas actuellement
imprimez la signature de la fonction de la tâche, les docstrings descriptives sont donc une bonne idée.
(Ils sont toujours une bonne idée, bien sûr - juste plus ici.)
--connexion-tentatives=M, -n M
Définissez le nombre de tentatives de connexion. Ensembles env.connection_attempts.
VOIR AUSSI:
env.connection_attempts, env.timeout
Nouveau dans la version 1.4.
-RÉ, --disable-known-hosts
Ensembles env.disable_known_hosts à Vrai, empêchant Fabric de charger le SSH de l'utilisateur
hôtes_connus fichier.
-f FABFILE, --fabfile=FABFILE
Le modèle de nom de fichier fab à rechercher (par défaut fichierfab.py), ou alternativement un
chemin de fichier explicite à charger en tant que fabfile (par exemple /chemin/vers/mon/fichierfab.py.)
VOIR AUSSI:
fichiers fabuleux
-F LISTE_FORMAT, --list-format=LIST_FORMAT
Permet de contrôler le format de sortie de --liste. court équivaut à
--liste restreinte, Ordinaire revient à omettre entièrement cette option (c'est-à-dire la
par défaut), et imbriqué imprime une arborescence d'espaces de noms imbriquée.
Nouveau dans la version 1.1.
VOIR AUSSI:
--liste restreinte, --liste
-g HÔTE, --gateway=HTE
Ensembles env.passerelle à HÔTE chaîne hôte.
Nouveau dans la version 1.5.
-h, --Aidez-moi
Affiche un message d'aide standard, avec toutes les options possibles et un bref aperçu de
ce qu'ils font, puis sort.
--hide=NIVEAUX
Une liste séparée par des virgules de sortie niveaux à masquer par défaut.
-H HTES, --hosts=HTES
Ensembles env.hosts à la liste de chaînes hôte délimitée par des virgules.
-x HTES, --exclude-hosts=HTES
Ensembles env.exclude_hosts à la liste délimitée par des virgules donnée de chaînes d'hôtes pour ensuite
ne pas figurer sur la liste d'hôtes finale.
Nouveau dans la version 1.1.
-i KEY_FILENAME
Lorsqu'il est défini sur un chemin de fichier, chargera le fichier donné en tant que fichier d'identité SSH (généralement
une clé privée.) Cette option peut être répétée plusieurs fois. Définit (ou ajoute à)
env.key_filename.
-JE, --invite-de-mot-de-passe-initial
Force une invite de mot de passe au début de la session (après le chargement du fabfile et l'option
l'analyse, mais avant d'exécuter des tâches) afin de pré-remplir mot de passe env.
Ceci est utile pour les courses de type "fire-and-forget" (en particulier les sessions parallèles, dans lesquelles
la saisie au runtime n'est pas possible) lors de la définition du mot de passe via --le mot de passe ou
mise mot de passe env dans votre fabfile, est indésirable.
NOTE:
La valeur saisie dans cette invite sera écraser tout ce qui est fourni via
mot de passe env au niveau du module, ou via --le mot de passe.
VOIR AUSSI:
gestion des mots de passe
-k Ensembles env.no_keys à Vrai, forçant la couche SSH à ne pas rechercher la clé privée SSH
fichiers dans son répertoire personnel.
Nouveau dans la version 0.9.1.
--keepalive=GARDER EN DIRECT
Ensembles env.keepalive à la valeur (entière) donnée, en spécifiant un keepalive SSH
intervalle.
Nouveau dans la version 1.1.
--lignewise
Force la sortie à être mise en mémoire tampon ligne par ligne au lieu d'octet par octet. Souvent utile ou
requis pour parallèle efficace.
Nouveau dans la version 1.3.
-l, --liste
Importe un fabfile comme d'habitude, mais imprime ensuite une liste de toutes les tâches découvertes et
sorties. Imprimera également la première ligne de la docstring de chaque tâche, si elle en a une, ensuite
à lui (en tronquant si nécessaire.)
Modifié dans la version 0.9.1 : docstring ajouté à la sortie.
VOIR AUSSI:
--liste restreinte, --liste-format
-p LE MOT DE PASSE, --password=MOT DE PASSE
Ensembles mot de passe env à la chaîne donnée ; il sera alors utilisé comme mot de passe par défaut
lors de l'établissement de connexions SSH ou de l'appel du sudo .
VOIR AUSSI:
--invite-de-mot-de-passe-initial
-P, --parallèle
Ensembles env.parallèle à Vrai, provoquant l'exécution des tâches en parallèle.
Nouveau dans la version 1.3.
VOIR AUSSI:
/utilisation/parallèle
--non-pty
Ensembles env.always_use_pty à Faux, provoquant tout courir/sudo appelle à se comporter comme si l'on
avait précisé pty=Faux.
Nouveau dans la version 1.0.
-r, --reject-hôtes-inconnus
Ensembles env.reject_unknown_hosts à Vrai, provoquant l'abandon de Fabric lors de la connexion à
hôtes introuvables dans le SSH de l'utilisateur hôtes_connus fichier.
-R LES RÔLES, --roles=ROLES
Ensembles env.rôles à la liste de noms de rôles séparés par des virgules.
--ensemble CLÉ=VALEUR,...
Vous permet de définir des valeurs par défaut pour des variables d'environnement Fabric arbitraires. Valeurs définies de cette façon
ont une faible priorité - ils ne remplaceront pas les variables d'environnement plus spécifiques qui sont
également spécifié sur la ligne de commande. Par exemple:
fab --set password=foo --password=bar
aura pour résultat mot de passe env = 'bar', Pas 'foo'
Multiple CLÉ=VALEUR les paires peuvent être séparées par des virgules, par exemple fab --ensemble
var1=val1,var2=val2.
Outre les valeurs de chaîne de base, vous pouvez également définir env vars sur True en omettant le
=VALEUR (par exemple fab --ensemble clé - KEY), et vous pouvez définir des valeurs sur la chaîne vide (et donc un
Valeur faussement équivalente) en gardant le signe égal, mais en omettant VALEURE (par exemple fab
--ensemble CLÉ =.)
Nouveau dans la version 1.4.
-s COQUILLE, --shell=COQUILLE
Ensembles env.shell à la chaîne donnée, en remplaçant le shell wrapper par défaut utilisé pour
exécuter des commandes à distance.
--liste restreinte
Similaire à --liste, mais sans aucune embellissement, juste des noms de tâches séparés par
des nouvelles lignes sans indentation ni docstrings.
Nouveau dans la version 0.9.2.
VOIR AUSSI:
--liste
--show=NIVEAUX
Une liste séparée par des virgules de sortie niveaux à ajouter à ceux qui sont indiqués par
défaut.
VOIR AUSSI:
courir, sudo
--ssh-config-chemin
Ensembles env.ssh_config_path.
Nouveau dans la version 1.4.
VOIR AUSSI:
ssh-config
--skip-mauvais-hôtes
Ensembles env.skip_bad_hosts, ce qui oblige Fabric à ignorer les hôtes indisponibles.
Nouveau dans la version 1.4.
--skip-tâches-inconnues
Ensembles env.skip_unknown_tasks, ce qui oblige Fabric à ignorer les tâches inconnues.
VOIR AUSSI:
env.skip_unknown_tasks
--timeout=N, -t N
Définissez le délai d'expiration de la connexion en secondes. Ensembles env.timeout.
VOIR AUSSI:
env.timeout, env.connection_attempts
Nouveau dans la version 1.4.
--command-timeout=N, -T N
Définissez le délai d'expiration de la commande à distance en secondes. Ensembles env.command_timeout.
VOIR AUSSI:
env.command_timeout,
Nouveau dans la version 1.6.
-u UTILISATEUR, --user=UTILISATEUR
Ensembles env.utilisateur à la chaîne donnée ; il sera ensuite utilisé comme nom d'utilisateur par défaut
lors de l'établissement de connexions SSH.
-V, --version
Affiche le numéro de version de Fabric, puis se ferme.
-w, --avertissement uniquement
Ensembles env.warn_only à Vrai, ce qui oblige Fabric à continuer l'exécution même lorsque les commandes
rencontrer des conditions d'erreur.
-z, --pool-taille
Ensembles env.pool_size, qui spécifie le nombre de processus à exécuter simultanément pendant
exécution parallèle.
Nouveau dans la version 1.3.
VOIR AUSSI:
/utilisation/parallèle
Par tâche arguments
Les options proposées dans options de ligne de commande s'appliquer à l'invocation de fab dans son ensemble; même
si l'ordre est mélangé, les options s'appliquent toujours à toutes les tâches données de manière égale.
De plus, comme les tâches ne sont que des fonctions Python, il est souvent souhaitable de transmettre
arguments à eux au moment de l'exécution.
Le concept d'"arguments par tâche" répond à ces deux besoins, qui est un
syntaxe que vous pouvez ajouter à la fin de n'importe quel nom de tâche :
· Utilisez un deux-points (:) pour séparer le nom de la tâche de ses arguments ;
· Utilisez des virgules (,) pour séparer les arguments les uns des autres (peut être échappé en utilisant un
barre oblique inverse, c'est-à-dire \,);
· Utilisez des signes égal (=) pour les arguments de mot-clé, ou omettez-les pour les arguments de position. Peut
également être échappé avec des barres obliques inverses.
De plus, étant donné que ce processus implique une analyse de chaîne, toutes les valeurs deviendront Python
ficelles, alors planifiez en conséquence. (Nous espérons améliorer cela dans les futures versions de Fabric,
à condition qu'une syntaxe intuitive puisse être trouvée.)
Par exemple, une tâche « créer un nouvel utilisateur » peut être définie ainsi (en omettant la plupart des
logique réelle pour la brièveté):
def new_user(username, admin='no', comment="Aucun commentaire fourni") :
print("Nouvel utilisateur (%s): %s" % (nom d'utilisateur, commentaire))
pass
Vous pouvez spécifier uniquement le nom d'utilisateur :
$ fab new_user:monnom d'utilisateur
Ou traitez-le comme un argument de mot-clé explicite :
$ fab new_user:username=monusername
Si les deux arguments sont donnés, vous pouvez à nouveau les donner comme arguments positionnels :
$ fab new_user:myusername, yes
Ou mix and match, comme en Python :
$ fabuleux new_user : mon nom d'utilisateur, admin = oui
Le impression call ci-dessus est utile pour illustrer les virgules échappées, comme ceci :
$ fab new_user:myusername,admin=no,comment='Gary\, nouveau développeur (commence lundi)'
NOTE:
Citer la virgule échappée de la barre oblique inverse est nécessaire, car ne pas le faire provoquera un shell
erreurs de syntaxe. Les guillemets sont également nécessaires chaque fois qu'un argument implique d'autres éléments liés au shell
des caractères tels que des espaces.
Tout ce qui précède est traduit dans les appels de fonction Python attendus. Par exemple, le
dernier appel ci-dessus deviendrait :
>>> new_user('myusername', admin='yes', comment='Gary, new developer (start Monday)')
Rôles et hôtes
Comme mentionné dans le on tâche efficace, il existe une poignée de mots clés par tâche
arguments (hôte, hôtes, rôle de l' et rôle) qui ne correspondent pas réellement aux fonctions de tâche
eux-mêmes, mais sont utilisés pour définir des listes d'hôtes et/ou de rôles par tâche.
Ces kwargs spéciaux sont enlevé des args/kwargs envoyés à la fonction de tâche elle-même ;
c'est pour que vous ne rencontriez pas d'erreurs de type si votre tâche ne définit pas les kwargs dans
question. (Cela signifie également que si vous do définissez des arguments avec ces noms, vous ne serez pas
capable de les spécifier de cette manière - un sacrifice regrettable mais nécessaire.)
NOTE:
Si le pluriel et le singulier de ces kwargs sont donnés, la valeur du
le pluriel l'emportera et le singulier sera écarté.
Lorsque vous utilisez la forme plurielle de ces arguments, il faut utiliser des points-virgules (;) depuis les virgules
sont déjà utilisés pour séparer les arguments les uns des autres. De plus, puisque votre
shell est susceptible de considérer les points-virgules comme un caractère spécial, vous voudrez citer l'hôte
chaîne de liste pour empêcher l'interprétation du shell, par exemple :
$ fab new_user:myusername,hosts="host1;host2"
Encore une fois, puisque le hôtes kwarg est supprimé de la liste d'arguments envoyée au nouvel utilisateur tâche
fonction, l'invocation réelle de Python serait new_user('myusername'), et la fonction
serait exécuté sur une liste d'hôtes de ['hôte1', 'hôte2'].
Paramètres fichiers
Fabric respecte actuellement un simple fichier de paramètres utilisateur, ou tissurc (pense bashrc mais pour
fab) qui doit contenir une ou plusieurs paires clé-valeur, une par ligne. Ces lignes seront
sujet à string.split('='), et ne peut donc actuellement être utilisé que pour spécifier une chaîne
Les paramètres. Toutes ces paires clé-valeur seront utilisées pour mettre à jour env quand fab s'exécute et est chargé
avant le chargement de tout fabfile.
Par défaut, Fabric recherche ~/.fabricrc, et cela peut être remplacé en spécifiant le -c
drapeau à fab.
Par exemple, si votre nom d'utilisateur de connexion SSH type diffère de celui de votre poste de travail,
et tu ne veux pas modifier env.utilisateur dans le fabfile d'un projet (peut-être parce que vous attendez
d'autres à l'utiliser également), vous pouvez écrire un tissurc fichier comme ceci :
utilisateur = ssh_user_name
Ensuite, lors de l'exécution fab, votre fabfile se chargerait avec env.utilisateur ajuster à 'ssh_user_name'.
D'autres utilisateurs de ce fabfile pourraient faire de même, permettant au fabfile lui-même d'être proprement
agnostique concernant le nom d'utilisateur par défaut.
Utilisez fab en ligne en utilisant les services onworks.net
