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
