Sto configurando un server per eseguire la distribuzione automatica da un repository git Bitbucket, utilizzando la funzione di postback di Bitbucket.
In breve, come funziona:
- Mi impegno su Bitbucket
- POST di Bitbucket a uno script specificato (che viene eseguito solo se chiamato dall'indirizzo IP di BB)
- Il mio script si collega alla directory appropriata, esegue git reset e git pull per aggiornarlo alla versione più recente (è uno script php che usa exec ()).
Ho avuto l'idea da:
E nel complesso sembra ok, ma ha per me un'importante preoccupazione per la sicurezza: per farlo funzionare, dovresti dare accesso / proprietà della directory del sito di apache per eseguire la distribuzione. Mi sembra una cattiva idea, perché un utente malintenzionato utilizza apache per scrivere file arbitrari all'interno della directory.
La mia idea in alternativa è:
- Crea un altro utente, "deploy", quindi rendi l'utente proprietario della directory del sito.
- Usa sudoers per consentire ad apache di eseguire uno script di shell specifico come utente deploy, e metti il mio git reset, comando di pull ecc in quello script di shell.
- Nelle mie chiamate exec (), ad es. "sudo -u deploy shell-script.sh"
Qualcuno può vedere difetti / buchi con questo?