Oui, vous pouvez exécuter fab localement par l'aide de la méthode locale au lieu de l'exécuter. Ce que je fais généralement est de disposer de méthodes pour la configuration de l'environnement, et d'appeler ces méthodes d'abord, avant d'appeler la tâche réelle. Permettez-moi d'illustrer cela avec un exemple pour vos questions spécifiques
fabfile.py
from fabric.operations import local as lrun, run
from fabric.api import task
from fabric.state import env
@task
def localhost():
env.run = lrun
env.hosts = ['localhost']
@task
def remote():
env.run = run
env.hosts = ['some.remote.host']
@task
def install():
env.run('deploymentcmd')
Et en fonction de l'environnement, vous pouvez effectuer les opérations suivantes
Installer sur localhost:
fab localhost install
Installer sur la machine distante:
fab remote install