2015-09-08 16 views
8

Ho alcune domande e problemi con la mia soluzione CI e CD.Come dare l'accesso SSH Circle CI al mio server?

Rails: 4.2

Capistrano: 3.4.0

L'applicazione è ospitata su un server privato.

In questo momento ho il flusso di lavoro che funziona con la distribuzione dello sviluppo, la gestione temporanea e la produzione tramite il terminale. Ho anche collegato Circle CI lavorando bene su questi rami.

Non riesco a trovare come impostare CI cerchio per utilizzare Capistrano per la distribuzione. Tutto è configurato con l'utente del server nella configurazione di Capistrano.

Come posso fornire l'accesso SSI Circle CI al mio utente deploy? Perché ora devo fornire una password per l'utente.

risposta

0

In realtà non so se si suppone che funzioni come segue. Ma questo è l'unico modo in cui l'ho eseguito alla fine dopo aver provato tutte le possibili combinazioni di posizionamenti di chiave SSH pubblici/privati.

  1. Sul server git clone Repository GitHub in una nuova cartella. Ceckout sviluppare ramo.
  2. Sul server creare un nuovo utente, aggiungerlo al gruppo www-data, chown alla cartella.
  3. Sul server generare una coppia di chiavi SSH per il nuovo utente.
  4. Sul server aggiungere la chiave pubblica del nuovo utente al file authorized_keys del nuovo utente.
  5. Aggiungere la chiave pubblica come chiave di distribuzione al repository su GitHub.
  6. Aggiungere la chiave privata al progetto su Cerchio (Impostazioni progetto> Autorizzazioni> Autorizzazioni SSH) e assicurarsi di avere un nome host impostato.
  7. Aggiungere il seguente alla fine del vostro circle.yml:

    # These commands are triggered only after a successful (green) build. 
    deployment: 
        dev: 
        branch: develop 
        commands: 
         - ssh [email protected] 'cd /path/to/my/repo && git pull origin develop' 
    
  8. Commit e spingere questo nel ramo svilupparsi.
  9. Sul server accedere come nuovo utente, checkout sviluppo ramo e pull almeno una volta.
  10. Sul computer locale, sul ramo di sviluppo, creare un nuovo commit e inserirlo. Vai a costruire build in esecuzione su Circle CI.
Problemi correlati