2010-03-31 16 views
5

Fabric è diventato il mio strumento di distribuzione di scelta sia per la distribuzione di progetti Django sia per la configurazione iniziale di Ubuntu slices. Tuttavia, il mio attuale flusso di lavoro con Fabric non è molto DRY, come mi ritrovo:Condivisione di un fabfile su più progetti

  1. copiando il fabfile.py da un Django progetto ad un altro e
  2. modificando il fabfile.py come necessario per ogni progetto (ad esempio, la modifica del Attività webserver_restart da Apache a Nginx, configurazione dell'host e della porta SSH, ecc.).

Uno dei vantaggi di questo flusso di lavoro è che la fabfile.py diventa parte del mio repository Git, quindi tra il fabfile.py e piprequirements.txt, ho un recreateable processo virtualenv e la distribuzione. Voglio mantenere questo vantaggio, pur diventando sempre più DRY. Sembra che ho potuto migliorare il mio flusso di lavoro:

  1. essere in grado di pip install le attività comuni definiti nel fabfile.py e
  2. avere un file fab_config contenente le informazioni di configurazione host per ogni progetto e sovrascrivendo qualsiasi attività come necessario

Eventuali suggerimenti su come aumentare DRY del mio flusso di lavoro Fabric?

risposta

2

Ho lavorato in questa direzione con "definizioni server" basate sulla classe che includono informazioni sulla connessione e possono sovrascrivere i metodi per eseguire attività specifiche in un modo diverso. Quindi il mio magazzino fabfile.py (che non cambia mai) chiama solo il metodo giusto sull'oggetto definizione server.

Problemi correlati