• Jump To … +
    basics.rb s3_backup.rb s3_basics.rb s3_sandbox.rb ssh_basics.rb ssh_deployment.rb ssh_sandbox.rb
  • ssh_deployment.rb

  • ¶

    Example of Application Deployment using Virtual File System.

    In this example we uploading sample app files to remote server, write database configuration file and restart the server on remote machine.

  • ¶

    Adding examples folder to load paths.

    $LOAD_PATH << File.expand_path("#{__FILE__}/../..")
  • ¶

    Connecting to SFTP and preparing sandbox. You may take a look at the docs/ssh_sandbox.rb to see the actual code.

    require 'docs/ssh_sandbox'
    sandbox = $sandbox
  • ¶

    Preparing sample files located in our local folder in current directory.

    current_dir = __FILE__.to_entry.parent
    sample_app = current_dir['ssh_deployment/app']
  • ¶

    Copying application files to remote machine.

    app = sandbox['apps/app']
    sample_app.copy_to app
    p app['app.rb'].exist?                          # => true
  • ¶

    Writing database configuration file.

    config = app['config.yml']
    config.write "database: mysql"
    config.append "name: app_production"
    p app['config.yml'].exist?                       # => true
  • ¶

    Updating gems and restarting the server.

    p app.bash("echo 'bundle install'")              # => bundle install
    p app.bash("echo 'server start'")                # => server start