Deploying                       • Corey Purcell                       • @coreypurcell                       • Thanks to Da...
About Me             Penn United Technologies            We make stuff, like things you                   can touch!Friday...
My Environment                       • Oracle                       • All internal applications (currently)               ...
Moonshine                 Moonshine is an opensource configuration management                   and deployment system that ...
ruby script/plugin install git://github.com/railsmachine/moonshine.git               ruby script/generate moonshine       ...
capify .                       #deploy.rb                       server "rails-box", :app, :web, :db, :primary => true     ...
The Good                       • Capistrano Based                       • Plugins                       • Puppet based    ...
The Ugly (to me)                       • Capistrano Based                       • Templates are stored in app/manifests   ...
Git Pusshuten                   A Git-based application deployment tool that allows                   you to define your en...
gem install gitpusshuten                       ten initialize                       #creates .gitpusshuten/               ...
ten user install-root-ssh-key to staging                       #enter root password                       ten rvm install ...
#edit vhost on your local machine, .gitpusshuten/apache/staging.vhost                <VirtualHost *:80>                  S...
ten push branch master to staging                       Done!                       ten active_record upload_config to sta...
Git Pusshu Ten [Aliases]     gitpusshuten, heavenly, ten [Commands]   active_record [Module] Active Record commands.   apa...
The Good                       • separation of deployment from code                       • deploy from any branch, ref, t...
The Ugly                       • Not that many modules                       • Not very activeFriday, June 3, 2011
Friday, June 3, 2011
Friday, June 3, 2011
Thanks                       • https://github.com/railsmachine/moonshine                       • http://gitpusshuten.comFr...
Shameless Plug                                http://bit.ly/ep-runwalk                       5K Run for Epilepsy Foundatio...
Upcoming SlideShare
Loading in...5
×

Deployment presentation

573

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
573
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Deployment presentation

  1. 1. Deploying • Corey Purcell • @coreypurcell • Thanks to Daniel CarperFriday, June 3, 2011
  2. 2. About Me Penn United Technologies We make stuff, like things you can touch!Friday, June 3, 2011
  3. 3. My Environment • Oracle • All internal applications (currently) • Low traffic • Managing deployment with MoonshineFriday, June 3, 2011
  4. 4. Moonshine Moonshine is an opensource configuration management and deployment system that follows the Rails way, simplifying server configuration, dependency management, and Rails application deployment, using Ruby and Puppet.Friday, June 3, 2011
  5. 5. ruby script/plugin install git://github.com/railsmachine/moonshine.git ruby script/generate moonshine #Editing Moonshine.yml :ruby: ree187 :application: moonshine-test :deploy_to: /var/applications/moonshine-test :repository: git@github.com:coreypurcell/moonshine-test.git :domain: tooling.pennunited.com :shared_config: - config/database.ymlFriday, June 3, 2011
  6. 6. capify . #deploy.rb server "rails-box", :app, :web, :db, :primary => true cap deploy:setup cap deployFriday, June 3, 2011
  7. 7. The Good • Capistrano Based • Plugins • Puppet based • 15 minutes to build a serverFriday, June 3, 2011
  8. 8. The Ugly (to me) • Capistrano Based • Templates are stored in app/manifests • Slow to deploy (5-10 minutes) • Mixes deployment with server managmentFriday, June 3, 2011
  9. 9. Git Pusshuten A Git-based application deployment tool that allows you to define your environment by utilizing modules and provision your server with basic deployment needsFriday, June 3, 2011
  10. 10. gem install gitpusshuten ten initialize #creates .gitpusshuten/ pusshuten Hello Git Pusshu Ten, :staging, :production do configure do |c| c.user = gitpusshuten c.ip = 172.16.3.142 # c.password = my-password # c.passphrase = my-ssh-passphrase # c.port = 22 c.path = /var/applications/ end modules do |m| m.add :bundler m.add :active_record m.add :passenger # m.add :nginx m.add :apache # m.add :nanoc m.add :rvm # m.add :mysql # m.add :redis end endFriday, June 3, 2011
  11. 11. ten user install-root-ssh-key to staging #enter root password ten rvm install to staging # 1.9.2 ten passenger install to staging #errors!!!!!!! ten rvm install to staging ten passenger install to staging # select apache ten user add to staging #choose passwordFriday, June 3, 2011
  12. 12. #edit vhost on your local machine, .gitpusshuten/apache/staging.vhost <VirtualHost *:80> ServerName pusshuten.local ServerAlias www.pusshuten.local DocumentRoot /var/applications/hello_git_pusshu_ten.staging/public <Directory /var/applications/hello_git_pusshu_ten.staging/public> AllowOverride all Options -MultiViews </Directory> SetEnv LD_LIBRARY_PATH /opt/oracle/instantclient_11_2 SetEnv TNS_ADMIN /opt/oracle/instantclient_11_2/network </VirtualHost>Friday, June 3, 2011
  13. 13. ten push branch master to staging Done! ten active_record upload_config to staging ten apache upload-vhost to stagingFriday, June 3, 2011
  14. 14. Git Pusshu Ten [Aliases] gitpusshuten, heavenly, ten [Commands] active_record [Module] Active Record commands. apache [Module] Apache commands. bundler [Module] Bundler commands. delete Deletes the application of the specified environment. help Displays the command list, or the help screen for a specific command. initialize Initializes Git Pusshu Ten with the working directory. passenger [Module] Phusion Passenger commands. push Pushes a branch, tag or ref to the specified environment. remote Performs a command on the remote server for the specified environment from the application root. rvm [Module] Ruby Version Manager (RVM) commands. user Interacts with users, based on the <app_root>/.gitpusshuten/config.rb file. version Displays the current version of Git Pusshu Ten [Command Specific Help] heavenly help <command>Friday, June 3, 2011
  15. 15. The Good • separation of deployment from code • deploy from any branch, ref, tag • server setup in 15-30 mins • deploys take around 30 secondsFriday, June 3, 2011
  16. 16. The Ugly • Not that many modules • Not very activeFriday, June 3, 2011
  17. 17. Friday, June 3, 2011
  18. 18. Friday, June 3, 2011
  19. 19. Thanks • https://github.com/railsmachine/moonshine • http://gitpusshuten.comFriday, June 3, 2011
  20. 20. Shameless Plug http://bit.ly/ep-runwalk 5K Run for Epilepsy Foundation - June 25 Please Donate.Friday, June 3, 2011
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×