Questo è il comando fab che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre molteplici workstation online gratuite come Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS
PROGRAMMA:
NOME
fab - Semplice strumento di distribuzione remota Pythonic
SINOSSI
fab [comandi ...]
DESCRIZIONE
Il metodo più comune per utilizzare Fabric è tramite il suo strumento da riga di comando, fab, quale
avrebbe dovuto essere posizionato nel percorso eseguibile della shell quando Fabric è stato installato. fab
si sforza di essere un buon cittadino Unix, usando uno stile standard di opzioni da riga di comando,
output di aiuto, e così via.
USO
Basic uso
Nella sua forma più semplice, fab può essere chiamato senza alcuna opzione e con una o più
argomenti, che dovrebbero essere nomi di attività, ad esempio:
$ favoloso compito1 compito2
Questo verrà eseguito compito1 seguito da compito2, supponendo che Fabric fosse in grado di trovare un fabfile
nelle vicinanze contenente funzioni Python con quei nomi.
Tuttavia, è possibile espandere questo semplice utilizzo in qualcosa di più flessibile, utilizzando
le opzioni fornite e/o il passaggio di argomenti alle singole attività.
Arbitrario a distanza conchiglia comandi
Novità nella versione 0.9.2.
Fabric sfrutta una convenzione della riga di comando meno nota e può essere chiamata in seguito
maniera:
$ fab [opzioni] -- [comando shell]
dove tutto dopo il -- si trasforma in temporaneo eseguire il chiamare e non viene analizzato per
fab opzioni. Se hai definito un elenco di host a livello di modulo o sulla riga di comando,
questo utilizzo agirà come un'attività anonima di una riga.
Ad esempio, supponiamo che tu voglia solo ottenere le informazioni sul kernel per un gruppo di sistemi; tu
potrebbe fare questo:
$ fab -H sistema1,sistema2,sistema3 -- uname -a
che sarebbe letteralmente equivalente al seguente fabfile:
da fabric.api import run
def anonimo():
run("uname -a")
come se fosse eseguito così:
$ fab -H sistema1,sistema2,sistema3 anonimo
La maggior parte delle volte vorrai semplicemente scrivere l'attività nel tuo fabfile (qualsiasi cosa tu
usa una volta, probabilmente lo userai di nuovo) ma questa funzione fornisce un modo pratico e veloce per
lancia rapidamente un comando basato su SSH sfruttando le impostazioni di connessione del tuo fabfile.
Riga di comando Opzioni
Una rapida panoramica di tutte le possibili opzioni della riga di comando può essere trovata tramite fab --Aiuto. Se
stai cercando dettagli su un'opzione specifica, entriamo nei dettagli di seguito.
NOTA:
fab usa Python optare libreria, il che significa che onora il tipico stile Linux o GNU
opzioni brevi e lunghe, oltre a mescolare liberamente opzioni e argomenti. Per esempio fab compito1
-H hostname compito2 -i percorso/a/file di chiavi è valido tanto quanto il più semplice fab
-H hostname -i percorso/a/file di chiavi compito1 compito2.
-un, --nessun_agente
Set env.no_agent a I veri, costringendo il nostro livello SSH a non parlare con l'agente SSH quando
cercando di sbloccare i file della chiave privata.
Novità nella versione 0.9.1.
-UN, --forward-agente
Set env.forward_agent a I veri, abilitando l'inoltro dell'agente.
Novità nella versione 1.4.
--abort-su-prompt
Set env.abort_on_prompts a I veri, costringendo Fabric ad abortire ogni volta che lo richiederebbe
per input.
Novità nella versione 1.1.
-c FILE RC, --config=RCFILE
Set fileenv.rc al percorso del file specificato, che Fabric proverà a caricare all'avvio
e utilizzare per aggiornare le variabili di ambiente.
-d COMANDO, --display=COMANDO
Stampa l'intera docstring per l'attività specificata, se presente. Non attualmente
stampa la firma della funzione dell'attività, quindi le docstring descrittive sono una buona idea.
(Loro sono sempre una buona idea, ovviamente -- solo di più qui.)
--tentativi-di-connessione=M, -n M
Imposta il numero di tentativi di connessione. Imposta env.connection_attempts.
VEDERE INOLTRE:
env.connection_attempts, timeout ambiente
Novità nella versione 1.4.
-D, --disabilita-host-conosciuti
Set env.disable_known_hosts a I veri, impedendo a Fabric di caricare l'SSH dell'utente
host_conosciuti file.
-f FILE FAVOLOSO, --fabfile=FABFILE
Il modello del nome del file fab da cercare (predefinito su fabfile.py), o in alternativa an
percorso del file esplicito da caricare come fabfile (es /percorso/al/mio/fabfile.py.)
VEDERE INOLTRE:
fabfile
-F LIST_FORMAT, --list-format=LIST_FORMAT
Consente il controllo sul formato di output di --elenco. corto è equivalente
--lista ristretta, normale è lo stesso che semplicemente omettere completamente questa opzione (cioè il
predefinito), e annidato stampa un albero dello spazio dei nomi nidificato.
Novità nella versione 1.1.
VEDERE INOLTRE:
--lista ristretta, --elenco
-g OSPITE, --gateway=HOST
Set inv.gateway a HOST stringa ospite.
Novità nella versione 1.5.
-H, --Aiuto
Visualizza un messaggio di aiuto standard, con tutte le opzioni possibili e una breve panoramica di
cosa fanno, poi esce.
--hide=LIVELLI
Un elenco separato da virgole di produzione livelli nascondere per impostazione predefinita.
-H OSPITI, --hosts=HOST
Set env.host all'elenco di stringhe host delimitato da virgole specificato.
-x OSPITI, --exclude-hosts=HOST
Set env.exclude_hosts all'elenco di stringhe host delimitato da virgole fornito per poi
tieniti fuori dalla lista finale degli host.
Novità nella versione 1.1.
-i NOME_FILE_CHIAVE
Se impostato su un percorso file, caricherà il file specificato come file di identità SSH (di solito
una chiave privata.) Questa opzione può essere ripetuta più volte. Imposta (o aggiunge a)
env.key_nomefile.
-IO, --prompt-password-iniziale
Forza una richiesta di password all'inizio della sessione (dopo il caricamento e l'opzione fabfile
l'analisi, ma prima di eseguire qualsiasi attività) per precompilare password.avv.
Questo è utile per le esecuzioni "fire-and-forget" (specialmente le sessioni parallele, in cui
l'immissione di runtime non è possibile) quando si imposta la password tramite --parola d'ordine oppure
regolazione password.avv nel tuo fabfile, è indesiderabile.
NOTA:
Il valore inserito in questo prompt sarà sovrascrivere qualsiasi cosa fornita tramite
password.avv a livello di modulo, o tramite --parola d'ordine.
VEDERE INOLTRE:
gestione delle password
-k Set env.no_keys a I veri, costringendo il livello SSH a non cercare la chiave privata SSH
file nella propria directory home.
Novità nella versione 0.9.1.
--keepalive=MANTENERE VIVO
Set env.keepalive al valore (intero) dato, specificando un keepalive SSH
intervallo.
Novità nella versione 1.1.
--lineare
Forza il buffering dell'output riga per riga anziché byte per byte. Spesso utile o
richiesto per parallelo esecuzione.
Novità nella versione 1.3.
-l, --elenco
Importa un fabfile normalmente, ma poi stampa un elenco di tutte le attività scoperte e
esce. Stamperà anche la prima riga della docstring di ogni attività, se ne ha una, successiva
ad esso (troncando se necessario.)
Modificato nella versione 0.9.1: aggiunta docstring all'output.
VEDERE INOLTRE:
--lista ristretta, --elenco-formato
-p PAROLA D'ORDINE, --password=PASSWORD
Set password.avv alla stringa data; verrà quindi utilizzata come password predefinita
quando si effettuano connessioni SSH o si chiama il sudo .
VEDERE INOLTRE:
--prompt-password-iniziale
-P, --parallelo
Set inv.parallelo a I veri, causando l'esecuzione parallela delle attività.
Novità nella versione 1.3.
VEDERE INOLTRE:
/uso/parallelo
--no-pty
Set env.always_use_pty a Falso, causando tutto eseguire il/sudo invita a comportarsi come se si
aveva specificato pty=Falso.
Novità nella versione 1.0.
-R, --reject-sconosciuti-host
Set env.reject_unknown_hosts a I veri, causando l'interruzione di Fabric durante la connessione a
host non trovati nell'SSH dell'utente host_conosciuti file.
-R RUOLI, --roles=RUOLI
Set env.ruoli all'elenco di nomi di ruolo separato da virgole fornito.
--impostato CHIAVE=VALORE,...
Consente di impostare valori predefiniti per variabili di ambiente Fabric arbitrarie. Valori impostati in questo modo
hanno una precedenza bassa: non sovrascriveranno le variabili env più specifiche che sono
specificato anche sulla riga di comando. Per esempio:
fab --set password=pippo --password=bar
si tradurrà in password.avv = 'sbarra'non, 'pippo'
multiplo CHIAVE=VALORE le coppie possono essere separate da virgole, ad es fab --impostato
var1=val1,var2=val2.
Oltre ai valori di stringa di base, puoi anche impostare env vars su True omettendo
=VALORE (per esempio fab --impostato KEY), e puoi impostare i valori sulla stringa vuota (e quindi a
Valore falso-equivalente) mantenendo il segno di uguale, ma omettendo VALORE (per esempio fab
--impostato = CHIAVE.)
Novità nella versione 1.4.
-s GUSCIO, --shell=GUSCI
Set env.shell alla stringa data, sovrascrivendo il wrapper di shell predefinito usato per
eseguire comandi remoti.
--lista ristretta
Simile a --elenco, ma senza abbellimenti, solo nomi di attività separati da
newline senza indentazione o docstring.
Novità nella versione 0.9.2.
VEDERE INOLTRE:
--elenco
--show=LIVELLI
Un elenco separato da virgole di produzione livelli da aggiungere a quelli indicati da
predefinito.
VEDERE INOLTRE:
eseguire il, sudo
--ssh-config-percorso
Set env.ssh_config_path.
Novità nella versione 1.4.
VEDERE INOLTRE:
ssh-config
--skip-bad-host
Set env.skip_bad_hosts, facendo in modo che Fabric ignori gli host non disponibili.
Novità nella versione 1.4.
--skip-compiti-sconosciuti
Set env.skip_unknown_tasks, facendo in modo che Fabric salti le attività sconosciute.
VEDERE INOLTRE:
env.skip_unknown_tasks
--timeout=N, -t N
Imposta il timeout della connessione in secondi. Imposta timeout ambiente.
VEDERE INOLTRE:
timeout ambiente, env.connection_attempts
Novità nella versione 1.4.
--timeout comando=N, -T N
Imposta il timeout del comando remoto in secondi. Imposta env.command_timeout.
VEDERE INOLTRE:
env.command_timeout,
Novità nella versione 1.6.
-u UTENTE, --user=UTENTE
Set ambiente.utente alla stringa data; verrà quindi utilizzato come nome utente predefinito
quando si effettuano connessioni SSH.
-V, --versione
Visualizza il numero di versione di Fabric, quindi esce.
-w, --solo avviso
Set env.warn_only a I veri, facendo sì che Fabric continui l'esecuzione anche quando i comandi
riscontrare condizioni di errore.
-z, --dimensione della piscina
Set env.pool_size, che specifica quanti processi eseguire contemporaneamente durante
esecuzione parallela.
Novità nella versione 1.3.
VEDERE INOLTRE:
/uso/parallelo
Per-attività argomenti
Le opzioni fornite in opzioni della riga di comando applicare all'invocazione di fab nel complesso; anche
se l'ordine è misto, le opzioni si applicano ugualmente a tutte le attività date.
Inoltre, poiché le attività sono solo funzioni Python, è spesso desiderabile passare
argomenti a loro in fase di esecuzione.
Rispondendo a entrambe queste esigenze c'è il concetto di "argomenti per task", che è speciale
sintassi che puoi aggiungere alla fine di qualsiasi nome di attività:
· Usa i due punti (:) per separare il nome dell'attività dai relativi argomenti;
· Usa le virgole (,) per separare gli argomenti l'uno dall'altro (può essere evitato usando a
barra rovesciata, cioè \,);
· Utilizzare i segni di uguale (=) per gli argomenti delle parole chiave o omettili per gli argomenti posizionali. Maggio
anche essere sfuggito con le barre rovesciate.
Inoltre, poiché questo processo implica l'analisi delle stringhe, tutti i valori finiranno come Python
stringhe, quindi pianifica di conseguenza. (Speriamo di migliorarlo nelle versioni future di Fabric,
purché sia possibile trovare una sintassi intuitiva.)
Ad esempio, un'attività "crea un nuovo utente" potrebbe essere definita in questo modo (omettendo la maggior parte dei
logica reale per brevità):
def new_user(username, admin='no', comment="Nessun commento fornito"):
print("Nuovo utente (%s): %s" % (nome utente, commento))
passare
Puoi specificare solo il nome utente:
$ favoloso nuovo_utente:mionomeutente
Oppure trattalo come un argomento di una parola chiave esplicita:
$ favoloso nuovo_utente:nomeutente=mionomeutente
Se vengono forniti entrambi gli argomenti, puoi darli di nuovo come argomenti posizionali:
$ favoloso nuovo_utente:mionomeutente,sì
Oppure mescola e abbina, proprio come in Python:
$ fab new_user:myusername,admin=sì
Il stampare la chiamata sopra è utile per illustrare le virgole di escape, in questo modo:
$ fab new_user:myusername,admin=no,comment='Gary\, nuovo sviluppatore (inizia lunedì)'
NOTA:
È necessario citare la virgola con escape backslash, poiché non farlo causerà shell
errori di sintassi. Le virgolette sono necessarie anche ogni volta che un argomento coinvolge altri argomenti relativi alla shell
caratteri come gli spazi.
Tutto quanto sopra viene tradotto nelle chiamate di funzione Python previste. Ad esempio, il
l'ultima chiamata sopra diventerebbe:
>>> new_user('myusername', admin='yes', comment='Gary, nuovo sviluppatore (inizia lunedì)')
Ruoli e padroni di casa
Come menzionato in , il pagina on compito esecuzione, ci sono una manciata di parole chiave per attività
argomenti (host, padroni di casa, ruolo e ruoli) che in realtà non si associano alle funzioni dell'attività
stessi, ma vengono utilizzati per impostare host per attività e/o elenchi di ruoli.
Questi kwarg speciali sono rimosso dagli args/kwargs inviati alla funzione task stessa;
questo è così che non ti imbatti in TypeErrors se il tuo compito non definisce i kwargs in
domanda. (Significa anche che se tu do definire argomenti con questi nomi, non lo sarai
in grado di specificarli in questo modo - un sacrificio deplorevole ma necessario.)
NOTA:
Se si danno sia la forma plurale che quella singolare di questi kwarg, il valore di
il plurale prevarrà e il singolare sarà scartato.
Quando si utilizza la forma plurale di questi argomenti, è necessario utilizzare il punto e virgola (;) poiché le virgole
sono già utilizzati per separare gli argomenti l'uno dall'altro. Inoltre, poiché il tuo
shell è probabile che consideri il punto e virgola un carattere speciale, ti consigliamo di citare l'host
list string per impedire l'interpretazione della shell, ad esempio:
$ favoloso nuovo_utente:mionomeutente,hosts="host1;host2"
Ancora una volta, dal momento che padroni di casa kwarg viene rimosso dall'elenco degli argomenti inviato a nuovo utente compito
funzione, l'effettiva invocazione di Python sarebbe new_user('mionomeutente'), e la funzione
verrebbe eseguito su un elenco di host di ['host1', 'ospite2'].
Impostazioni profilo file
Fabric attualmente rispetta un semplice file di impostazioni utente, oppure tessutorc (pensare bashrc ma per
fab) che dovrebbe contenere una o più coppie chiave-valore, una per riga. Queste linee saranno
soggetto a string.split('='), e quindi attualmente può essere utilizzato solo per specificare string
impostazioni. Qualsiasi coppia chiave-valore di questo tipo verrà utilizzata per l'aggiornamento ENV quando fab corre ed è caricato
prima del caricamento di qualsiasi fabfile.
Per impostazione predefinita, Fabric cerca ~/.tessutorc, e questo può essere sovrascritto specificando il -c
bandiera a fab.
Ad esempio, se il tuo nome utente di accesso SSH tipico è diverso dal nome utente della tua workstation,
e non vuoi modificare ambiente.utente nel fabfile di un progetto (probabilmente perché ti aspetti
anche altri per usarlo) potresti scrivere a tessutorc file in questo modo:
utente = ssh_user_name
Poi, durante l'esecuzione fab, il tuo fabfile si caricherebbe con ambiente.utente impostato 'ssh_nome_utente'.
Altri utenti di quel fabfile potrebbero fare lo stesso, consentendo al fabfile stesso di essere pulito
agnostico per quanto riguarda il nome utente predefinito.
Usa fab online utilizzando i servizi onworks.net