Outils personnels

Fabric : installation sur Debian : Différence entre versions

De wikiGite

(TIPS)
(TIPS)
Ligne 16 : Ligne 16 :
  
 
= TIPS =
 
= TIPS =
 +
== APIs ==
 
Les fichiers se trouvent dans /usr/share/pyshared/fabric.
 
Les fichiers se trouvent dans /usr/share/pyshared/fabric.
  
Ligne 21 : Ligne 22 :
 
  from fabric.contrib.files import sed
 
  from fabric.contrib.files import sed
  
 +
== Roles ==
 
Pour définir des rôles (exemple : des types d'OS), utiliser :
 
Pour définir des rôles (exemple : des types d'OS), utiliser :
 
  from fabric.api import run,env,roles
 
  from fabric.api import run,env,roles
Ligne 35 : Ligne 37 :
 
  def inst_mn_cent():
 
  def inst_mn_cent():
 
       run('yum install munin-node')
 
       run('yum install munin-node')
 +
 +
== Variables ==
 +
On peut assigner et utiliser une variable simplement :
 +
opsys = run('uname -s')
 +
if opsys == 'Linux':
 +
  .....
 +
 +
Ou l'assigner à l'exécution. Le code :
 +
def upgrade(do_upgrade=no):
 +
    if do_upgrade='yes':
 +
      run('apt-get upgrade')
 +
exécute un upgrade si on le lance par
 +
fab -f fabtest.py upgrade:do_upgrade=yes

Version du 9 décembre 2011 à 17:51

Facile !

apt-get install fabric

Utilisation

création d'un fichier test

vi fabtest.py
from fabric.api import run,env
env.hosts = ['server.domain.net']

def uptime():
   run('uptime')

Echange des clés SSH avec le client, puis :

fab -f fabtest.py uptime

TIPS

APIs

Les fichiers se trouvent dans /usr/share/pyshared/fabric.

Pour charger des fonctions supplémentaires, par exemple "sed", il peut être nécessaire de charger d'autres APIs. En cherchant dans /usr/share/pyshared/fabric, on voit que la fonction sed se trouve dans contrib/files.py. On chargera donc cette API et cette focntion par :

from fabric.contrib.files import sed

Roles

Pour définir des rôles (exemple : des types d'OS), utiliser :

from fabric.api import run,env,roles
env.roledefs = {
   'debian' : ['server1','server2']
   'centos' : ['server3']
}

On pourra alors soit utiliser ces rôles dans le code des fonctions :

@roles('debian')
def inst_mn_deb():
      run('apt-get install munin-node')

@roles('centos')
def inst_mn_cent():
      run('yum install munin-node')

Variables

On peut assigner et utiliser une variable simplement :

opsys = run('uname -s')
if opsys == 'Linux':
  .....

Ou l'assigner à l'exécution. Le code :

def upgrade(do_upgrade=no):
   if do_upgrade='yes':
      run('apt-get upgrade')

exécute un upgrade si on le lance par

fab -f fabtest.py upgrade:do_upgrade=yes