2015-04-20 37 views
10

Quindi sto tentando di installare CodeDeploy per la mia applicazione e continuo a ricevere un errore durante la parte di installazione di BeforeInstall. Di seguito è l'errore.Codice AWS Errore di distribuzione prima dell'installazione Impossibile risolvere

Error Code UnknownError 
Script Name 
Message No such file or directory - /opt/codedeploy-agent/deployment-root/06100f1b-5495-42d9-bd01-f33d59fb5deb/d-NL5K1THE8/deployment-archive/appspec.yml 
Log Tail 

Ho pensato che questo significasse che il file YAML era nel posto sbagliato. Comunque è nella directory radice della mia revisione. Ho provato a utilizzare un semplice file AppSpec come tale invece di uno più complesso.

## YAML Template. 
--- 
version: 0.0 
os: linux 
files: 
    - source:/
    destination: /home/ubuntu/www 

Più o meno dal momento che questo è un primo schieramento lo voglio per aggiungere tutti i file nella revisione della directory pubblica sul server web.

Mi sto strappando i capelli e sento che è un problema semplice. Ho i criteri e i ruoli IAM corretti e ho installato e implementato CodeDeploy sulla mia istanza a cui sto tentando di eseguire il deployment.

+3

hai mai trovato una soluzione a questo ?? – Joshua

+1

Ho lo stesso problema. Qualche fortuna? CodeDeploy è terribile. Penso che potrei tornare a Jenkins – Yonkee

risposta

0

Quando si effettua il login all'host, viene visualizzato il file appspec.yml nella directory lì? Se non sei positivo, è stato archiviato con il resto del tuo codice distribuito?

+0

È la prima distribuzione quindi non c'è ancora una directory nell'host che abbia il file AppSpec.yml. Lo vedo nella directory root nel file tar compresso che è stato configurato per la revisione in distribuire in S3 – wmfrancia

+0

Hrmm, che tarball dovrebbe finire in/opt/codedeploy-agent/deployment-root///indipendentemente da un errore o meno (per quanto ne so) anche se è il primo schieramento.Finirà lì con il resto dei tuoi contenuti o no? –

20

Sembra che tu abbia avuto una distribuzione di successo ad un certo punto.

Andare in/opt/codedeploy-agent/deployment-root/deployment-instructions/ed eliminare tutti i file presenti. Quindi non cercherà quest'ultima distribuzione.

+2

Questa è in realtà la risposta (o almeno era nel mio caso). – mcarpenter

+0

Ha funzionato anche per me !!! Grazie amico –

+0

Ha funzionato, tranne che ero su Windows, quindi il percorso è 'C: \ ProgramData \ Amazon \ CodeDeploy \ deployment-instructions' –

4

Ho appena avuto questo problema SAME e l'ho capito! Assicurati che il tuo file AppSpec abbia la giusta ESTENSIONE! Stavo usando yaml e non yml, ora tutto funziona perfettamente.

+0

Ha funzionato come un fascino! –

+0

L'errore indica specificamente appspec.yml. L'ho provato e non ho fatto la differenza –

+0

Hai salvato la mia giornata! –

2

ho fatta lavorare in questo modo:

ho avuto un paio di distribuzioni non riuscite per vari motivi. Il fatto è che il CD rimane nell'istanza EC2 e nel percorso /opt/codedeploy-agent/deployment-root/ una cartella denominata dall'ID della distribuzione fallita [una puntura alfanumerica molto lunga]. Elimina questa cartella e crea una nuova distribuzione [dalla console UI aws] e ridistribuisci l'applicazione. In questo modo il file appspec.yml che si trova nel posto sbagliato verrà eliminato. Ora dovrebbe avere successo.

Avviso Extra:

CD non riscrivere i file [che non sono stati creati da esso è l'implementazione specifica] CodeDeploy non distribuisce in una cartella che v'è già codice [file] in quanto non vuole interferire con diverse distribuzioni di CD e/o altri strumenti CI/CD [come Jenkins]. Distribuisce solo in un percorso che ha già distribuito il codice con la distribuzione specifica.

È possibile svuotare la cartella in cui si desidera eseguire la distribuzione e ridistribuire il codice tramite CD.

+0

L'eliminazione delle vecchie distribuzioni è stata "la soluzione" anche per noi. –

Problemi correlati