Fabric

De Linuxmemo.

(Différences entre les versions)
(Définir une tache)
(Définir une tache)
Ligne 115 : Ligne 115 :
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.
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.)
(Quand il n'est pas présent, le comportement tâche "classique de style" entre en jeu.)
 +
 +
Arguments:
 +
*classique de style
*classique de style

Version du 1 juillet 2012 à 19:55

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

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:


  • 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