Fabric

De Linuxmemo.

(Différences entre les versions)
(Définir une tache)
(Définir une tache)
Ligne 142 : Ligne 142 :
A l'exception de:
A l'exception de:
- Les fonctions qui commences par un underscore (_)
- 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 fonctions propres Fabric, tels que "run" et "sudo" ne sera pas affiché dans votre liste de tâches.

Version du 1 juillet 2012 à 20:03

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.

Outils personnels