Fabric
De Linuxmemo.
(→Définir une tache) |
|||
| Ligne 145 : | Ligne 145 : | ||
- Les fonctions propres Fabric, tels que "run" et "sudo" ne sera pas affiché dans votre liste de tâches. | - Les fonctions propres Fabric, tels que "run" et "sudo" ne sera pas affiché dans votre liste de tâches. | ||
| + | |||
| + | ===Les modules de Fabric=== | ||
| + | fabric.colors | ||
| + | fabric.context_managers | ||
| + | fabric.contrib.console | ||
| + | fabric.contrib.django | ||
| + | fabric.contrib.files | ||
| + | fabric.contrib.project | ||
| + | fabric.decorators | ||
| + | fabric.network | ||
| + | fabric.operations | ||
| + | fabric.tasks | ||
| + | fabric.utils | ||
Version du 1 juillet 2012 à 20:12
http://docs.fabfile.org/en/1.4.2/index.html
Sommaire |
Installation
apt-get install fabric
ou bien
apt-get install python-pip pip install fabric
Commande "fab"
fab -H localhost,linuxbox fonction fab -R role fonction
fab -H localhost -f fabfile.py fonction fab -H localhost -f fabfile.py -l
Fichier de commande: "fabfile"
Variables d’environnement
abort_on_prompts all_hosts always_use_pty combine_stderr command command_prefixes connection_attempts cwd disable_known_hosts exclude_hosts fabfile host_string forward_agent host hosts keepalive key_filename linewise local_user no_agent no_keys parallel password passwords path pool_size port real_fabfile rcfile reject_unknown_hosts roledefs roles shell skip_bad_hosts ssh_config_path sudo_prefix sudo_prompt timeout use_shell use_ssh_config user version warn_only
Modèle d’exécution
Exécution en série
Exécution en parallèle
Importer des modules de "fabric.api"
les modules: abort, cd, env, get, hide, hosts, local, prompt, put, require, roles, run, runs_once, settings, show, sudo, warn
import urllib
ou
from fabric.api import env run
ou
from fabric.api import *
Définir une lite de machines
Globale:
env.hosts = ['host1', 'host2']
Roles:
from fabric.api import env
env.roledefs = {
'web': ['www1', 'www2', 'www3'],
'dns': ['ns1', 'ns2']
}
Via la ligne de commande "fab"
fab -H host1,host2 mytask fab -R roles
Ordre de préférence:
-Per-task, command-line host lists (fab mytask:host=host1) override absolutely everything else.
-Per-task, decorator-specified host lists (@hosts('host1')) override the env variables.
-Globally specified host lists set in the fabfile (env.hosts = ['host1']) can override
such lists set on the command-line, but only if you’re not careful (or want them to.)
-Globally specified host lists set on the command-line (--hosts=host1) will initialize the env variables, but that’s it.
Définir une fonction de base
def host_type():
run('uname -s')
Définir une tache
- Encapsuler les fonctions de base de travail avec le mot clé "@task".
from fabric.api import task, run
@task
def mytask():
run("a command")
Lorsque ce mot clé est utilisé, il signale à Fabric que seules les fonctions enveloppés dans "@task" doivent être chargés en tant tâches valables. (Quand il n'est pas présent, le comportement tâche "classique de style" entre en jeu.)
Arguments:
-"task_class": The Task subclass used to wrap the decorated function. Defaults to WrappedCallableTask.
-"aliases": An iterable of string names which will be used as aliases for the wrapped function. See Aliases for details.
-"alias": Like aliases but taking a single string argument instead of an iterable. If both alias and aliases are specified, aliases will take precedence.
from fabric.api import task @task(alias='dwm') def deploy_with_migrations(): pass
-"default": A boolean value determining whether the decorated task also stands in for its containing module as a task name
@task(default=True) def full_deploy(): pass
- classique de style
Faric examinera n'importe quel objet appelable trouvé dans votre "fabfile".
A l'exception de:
- Les fonctions qui commences par un underscore (_)
- Les fonctions propres Fabric, tels que "run" et "sudo" ne sera pas affiché dans votre liste de tâches.
Les modules de Fabric
fabric.colors fabric.context_managers fabric.contrib.console fabric.contrib.django fabric.contrib.files fabric.contrib.project fabric.decorators fabric.network fabric.operations fabric.tasks fabric.utils