Il s'agit d'une question très spécifique à Fabric, mais les pirates informatiques plus expérimentés pourraient être en mesure de répondre à cette question, même s'ils ne connaissent pas Fabric.Comment découvrir le rôle actuel dans Python Fabric
Je suis en train de spécifier le comportement différent dans une commande en fonction du rôle qu'il est en cours d'exécution pour, à savoir:
def restart():
if (SERVERTYPE == "APACHE"):
sudo("apache2ctl graceful",pty=True)
elif (SERVERTYPE == "APE"):
sudo("supervisorctl reload",pty=True)
je Hacking cela avec des fonctions comme celui-ci:
def apache():
global SERVERTYPE
SERVERTYPE = "APACHE"
env.hosts = ['xxx.xxx.com']
Mais ce n'est évidemment pas très élégant et je viens de découvrir les rôles, donc ma question est:
Comment puis-je savoir à quel rôle appartient une instance actuelle?
env.roledefs = {
'apache': ['xxx.xxx.com'],
'APE': ['yyy.xxx.com'],
}
Merci!
merci pour cette mise à jour. ma vieille réponse est très démodée/non pertinente ces jours-ci. – rdrey
Cela ne fonctionne pas non plus avec le format de ligne de commande 'fab testrole: roles =" staging, prod "'. Trop limité pour une utilisation réelle. – Rockallite
@Rockallite C'est la syntaxe pour passer des params aux tâches. J'ai effectivement trouvé [votre exemple dans les docs] (http://docs.fabfile.org/fr/1.8/usage/fab.html?highlight=roles#roles-and-hosts). Mais je n'ai pas pu utiliser cette syntaxe pour spécifier les rôles (voir [transcript] (https://gist.github.com/exhuma/8348976)). Pourquoi ne pas simplement utiliser '-R'? Est-il possible que les documents de tissu sont périmés? – exhuma