Questa sembra una domanda strana e semplice, ma sto cercando di capire il principio di " non controllare mai una chiave privata nel controllo di versione ".
Sto provando a creare una sorta di avvio, in cui i client hanno distribuzioni private / separate basate su una piattaforma comune.
Per gestire tutto questo il codice per ogni client verrà archiviato in un repository GitLab privato (memorizzato su GitLab.com) e verrà quindi distribuito su Amazon Web Services per gestire l'implementazione e la scalabilità . Spero di ridimensionarlo a un numero elevato di client, quindi l'automazione è la chiave.
Ho trovato una serie di scenari ciascuno con pro / contro, ma tutti cadono fuori strada delle "no chiavi private" nel problema dei repository.
- Utilizzare pipeline / runner GitLab per testare il codice e quindi distribuire in produzione ... tranne per fare ciò, il corridore GitLab richiederà l'accesso ad AWS che richiede una chiave privata. E la chiave sarà in tutti i repository client.
- Fai in modo che ogni implementazione AWS effettui periodicamente il polling degli aggiornamenti, scarichi dal repository GitLab e installi gli aggiornamenti ... a parte questo script AWS richiede l'accesso a GitLab che richiede una chiave privata.
- Crea un sistema di gestione che gestisca le distribuzioni di codice da GitLab a AWS ... ma richiede comunque chiavi private per entrambi. Fortunatamente le chiavi sono solo in un posto.
Supponendo che il repository GitLab sia privato e accessibile solo a me stesso (o eventualmente ai dipendenti fidati) come fai a realizzare un'integrazione continua tra servizi privati?