Il opsworks_ruby cookbook on the Supermarket è praticamente tutto ciò che serve. Mette anche le app nelle stesse directory (es. /srv/www/app_name/
), imposta il database.yml, ecc. Ecc.
La differenza principale tra questa ricetta e altre ricette non OpsWorks è che questo estrae tutto dal programma. Configurazione OpsWorks per te. Non devi personalizzare le ricette, ma assicurati che l'app e i livelli siano denominati correttamente: creerà tutto da lì, inclusa la configurazione RDS per database.yml!
La differenza principale è che i livelli in OpsWorks non saranno "Ruby aware", quindi non avrai campi per le cose Rails-ish o Ruby-ish e invece dovrai gestirli altrove. Anche il modo in cui VAR viene caricato è un po 'diverso.
Assicuratevi inoltre di leggere sull'implementazione di AWS di Chef 12 per OpsWorks. Hanno tecnicamente in mano due libri di cucina per chef, il loro interno e il tuo. La loro gestione dell'agente è aggiornata, il caricamento degli utenti (per ssh), il monitoraggio del cablaggio, ecc. Dovrai gestire il resto.
Abbiamo sostituito le cose dal loro enorme libro di cucina con singoli libri di cucina del supermercato o semplicemente riscritto. Ad esempio, il vecchio chef 11 opsworks_initial_setup ha avuto un paio di cose attorno alle impostazioni di rete e linux modificate - l'abbiamo ricreato.
Inoltre non usa distribuire agli utenti come applicabili, per esempio:
$ ps -eo user,command USER COMMAND // snip root nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf aws opsworks-agent: master 10820 aws opsworks-agent: keep_alive of master 10820 aws opsworks-agent: statistics of master 10820 aws opsworks-agent: process_command of master 10820 deploy unicorn_rails master --env production --daemonize -c /srv/www/app/shared/config/unicorn.conf deploy unicorn_rails worker[0] --env production --daemonize -c /srv/www/app/shared/config/unicorn.conf deploy unicorn_rails worker[1] --env production --daemonize -c /srv/www/app/shared/config/unicorn.conf deploy unicorn_rails worker[2] --env production --daemonize -c /srv/www/app/shared/config/unicorn.conf deploy unicorn_rails worker[3] --env production --daemonize -c /srv/www/app/shared/config/unicorn.conf nginx nginx: worker process nginx nginx: worker process
solo un piccolo esempio degli stivali d'uscita di processo, ma alla radice le cose come necessario e ogni processo utilizza i propri utenti per limitare i diritti e accesso.
Grazie, questo è un buon esempio ma è molto semplice. Quando ho parlato dei vantaggi delle ricette Opsworks intendevo che la ricetta 'deploy' creerebbe una struttura di directory che imita la distribuzione capistrano ('/srv/www/app/releases', '/ srv/www/app/shared','/srv/www/app/current'), preparare l'utente 'deploy' per ogni app con il suo' ssh_key', sostituire 'database.yml' con valori corretti rispetto all'ambiente. – vlgs
Potresti seguire questa strada ma non la consiglierei. La risorsa 'deploy' è più fragile di quanto valga. – coderanger
Ok, grazie @coderanger! – vlgs