Fabric : installation sur Debian : Différence entre versions
De wikiGite
(→Utilisation) |
|||
Ligne 20 : | Ligne 20 : | ||
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 : | 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 | from fabric.contrib.files import sed | ||
+ | |||
+ | Pour définir des rôles (exemple : des types d'OS), utiliser : | ||
+ | env.roledefs = { | ||
+ | 'debian' : ['server1','server2'] | ||
+ | 'centos' : ['server3'] | ||
+ | } | ||
+ | On pourra alors soit utiliser ces rôles dans le code des fonctions : | ||
+ | from fabric.api import run,roles | ||
+ | @roles('debian') | ||
+ | def inst_mn_deb(): | ||
+ | run('apt-get install munin-node') | ||
+ | |||
+ | @roles('centos') | ||
+ | def inst_mn_cent(): | ||
+ | run('yum install munin-node') |
Version du 9 décembre 2011 à 17:43
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
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
Pour définir des rôles (exemple : des types d'OS), utiliser :
env.roledefs = { 'debian' : ['server1','server2'] 'centos' : ['server3'] }
On pourra alors soit utiliser ces rôles dans le code des fonctions :
from fabric.api import run,roles @roles('debian') def inst_mn_deb(): run('apt-get install munin-node')
@roles('centos') def inst_mn_cent(): run('yum install munin-node')