2014-11-07 15 views
9

Sto provando a distribuire uno script shellscript per installare un programma quando i trigger automatici vengono avviati sul beanstalk elastico aws.Creazione della cartella .ebextensions in aws beanstalk elastico

Ho cercato su google e tutto punta alla creazione di .ebextensions per utilizzare un file di configurazione per installare il programma all'avvio May so come posso creare questo?

Molte grazie per l'aiuto in anticipo

+0

Quale programma si desidera installare? A seconda della risposta, ci sono diversi approcci per installare cose all'avvio. – Tal

+0

Hi Tal, Ho sottoscritto il servizio di sicurezza profonda di trend micro. Mi hanno fornito uno script di avvio. Vorrei lanciare questo script di avvio quando un'istanza si genera a causa della scalabilità automatica – AWSLearner

risposta

13

È necessario eseguire le seguenti operazioni (ovviamente catering per le vostre esigenze):

Nella root sul vostro pacchetti di software crea una cartella chiamata .ebextensions

drwxr-xr-x 4 root root  4096 Sep 30 13:39 . 
dr-xr-x--- 7 root root  4096 Nov 4 15:22 .. 
drwxr-xr-x 2 root root  4096 Nov 4 15:22 .ebextensions 

Negli .ebextensions cartella creare due file chiamati 02_files.config e 03_container_comm ands.config

-rw-r--r-- 1 root root 11334 Jul 25 12:26 02_files.config 
-rw-r--r-- 1 root root 960 Nov 4 11:22 03_container_commands.config 

Il contenuto di 02_files.config deve contenere il contenuto del tuo script di shell:

files: 

    "/path/to/your/shellscript/myscript.sh" : 
    mode: "000755" 
    owner: root 
    group: root 
    content: | 
     #!/bin/sh 
     echo "Hello World!" >> /var/log/myscript.out 

Il contenuto di 03_container_commands.config dovrebbe contenere il comando per eseguire il shell script:

container_commands: 

    01_runmyshellscript: 
    command: "/path/to/your/shellscript/myscript.sh" 

Ora quando si carica il tuo codice creerà il tuo script di shell in /path/to/your/shellscript/myscript.sh e poi lo eseguirà inviando Hello World! a /var/log/myscript.out

+0

Correggetemi se sbaglio, dovrei creare le .ebextensions sulla mia istanza di beanstalk elastico? Poiché la mia applicazione è ospitata da Trend Micro – AWSLearner

+0

Non si deve creare nulla sull'istanza di beanstalk elastico. Si crea la directory sulla macchina locale, la si comprime e si carica lo zip su EB tramite la console. Lo trovi sotto Application Versions –

4

Hai bisogno di capire che Elastic Beanstalk non è magia. Semplicemente lancia i server EC2 e gestisce un gruppo di script di shell su di essi in un ordine specifico. Una volta che te ne rendi conto, puoi chiedere a Elastic Beanstalk di eseguire lo script anche quando avvia il server. La documentazione completa su come chiedere a EB di eseguire i tuoi dati è here.
Nel tuo caso, devi chiedere a EB di eseguire uno container_commands che è fondamentalmente uno script da eseguire dopo l' l'applicazione è configurata.
Quindi, per prima cosa è necessario aggiungere lo script micro di tendenza alle origini dell'applicazione in modo che possa essere trovato in fase di esecuzione. Supponiamo che sia a scripts/trendmicro.sh Quindi, chiedere a EB di eseguire uno script è semplice come aggiungere un file alle origini dell'applicazione.

È possibile aggiungere un file chiamato /.ebextensions/container_commands.config con il seguente:

container_commands: 

    trent_micro_startup: 
    command: "scripts/trendmicro.sh" 
+0

"scripts" è nella root del file zip che carichi? – red888

+0

@ red888 Sì, nell'esempio di Tal la directory degli script si trova nella radice del progetto. Dovresti impegnare i tuoi file/script di configurazione EB nella gestione del codice sorgente proprio come il tuo altro codice. –

Problemi correlati