Domanda

Nel nostro progetto scriviamo molti log delle applicazioni (a volte sono molto utili) nella cartella tmp .

In questa cartella abbiamo le directory dei componenti, come:

  • api
  • Email2SMS
  • scheduled_sending
  • di fatturazione
  • ecc. Meno di 10 cartelle, in sintesi.

Il problema: la cartella del nuovo componente nasce con il tempo - ognuna di queste cartelle deve essere scrivibile.

Quindi ci vuole tempo perché ogni sviluppatore chmod ciascuna di queste cartelle nei loro ambienti locali, ci vuole tempo per chmod quelle cartelle in produzione.

Come risolvere questo problema? Come può essere automatizzato questo processo (attività di Apache Ant, proprietà SVN, script dell'applicazione - che deve essere responsabile dell'attività)?

Ambiente: Ambienti di sviluppo - Ubuntu, Windows; produzione - FreeBSD

È stato utile?

Soluzione

Il metodo rapido e sporco che ho usato nella maggior parte delle aziende per cui lavoro era qualcosa del genere:

  1. Metti tutto il codice in un sistema di versioning (come SVN o qualcosa del genere) in modo che tutti gli sviluppatori abbiano una singola fonte dei file. Ovviamente lo stai già facendo. Evviva!
  2. Inserisci nella radice di quel codice, un file chiamato setup_permissions.sh che aggiorna tutto ciò che riguarda l'ambiente locale. Ciò può includere autorizzazioni o qualsiasi altra cosa tu debba eseguire.
  3. Ogni mattina, tutti i programmatori eseguono svn update , che aggiorna i file e anche setup_permissions.sh .
  4. Tentano di eseguire il loro codice. Vedi un problema Eseguono setup_permissions.sh .
  5. Va tutto bene nel mondo!

Per quanto riguarda il contenuto di setup_permissions.sh , potrebbe essere qualcosa del tipo:

#/bin/sh
TMP=/tmp

mkdir $TMP/api
mkdir $TMP/email2sms
mkdir $TMP/scheduled_sending
mkdir $TMP/billing
chmod 777 -r $TMP/api $TMP/email2sms $TMP/scheduled_sending $TMP/billing

E aggiungi altri comandi che ritieni siano necessari.
(Oh, e non usare chmod 777 ... è un'idea terribile. Vedi questo solo come esempio.)

La chiave di questo approccio è disciplina . Devi fidarti dei tuoi programmatori per avere la disciplina necessaria per eseguire setup_permissions.sh quando aggiornano i loro ambienti locali. Lo stesso vale per chiunque aggiorni il sistema di produzione.

Devi anche avere la disciplina per aggiornare setup_permissions con tutte le modifiche apportate alla struttura della directory e qualsiasi modifica di autorizzazione di cui abbia bisogno, anziché semplicemente apportare le modifiche manualmente sul tuo computer e lasciarle a quel. (E lo stesso vale per tutti gli altri sviluppatori che apportano modifiche alla struttura delle directory.)

Altri suggerimenti

quello (programma / componente) che crea il registro dovrebbe essere responsabile per rendere i file di registro scrivibili a tutti - per usare mod = 777 (tutti scrivibili) quando vengono creati i registri.

se il processo di distribuzione ha uno script di installazione, farlo anche nello script.

mkdir e chmod in un semplice script shell dovrebbero essere sufficienti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top