DeploYML
¶ ↑
-
[Email](postmodern.mod3 at gmail.com)
Description¶ ↑
DeploYML
is a simple deployment solution that uses a single YAML file, Git and SSH.
Features¶ ↑
-
Requires only one YAML file (
config/deploy.yml
) with a minimum of two settings (source
anddest
). -
Supports multiple deployment environments (
config/deploy/staging.yml
). -
Supports multiple deployment destinations.
-
Supports Git.
-
Can deploy Ruby web applications or static sites.
-
Supports common Web Servers:
-
Supports common Web Application frameworks:
-
-
ActiveRecord
-
Does not require anything else to be installed on the servers.
-
Does not use
net-ssh
. -
Supports any Operating System that supports Ruby and SSH.
-
Provides a simple command-line interface using Thor.
Configuration Examples¶ ↑
Specifying source
and dest
URIs as Strings:
source: git@github.com:user/project.git dest: deploy@www.example.com/var/www/site
Specifying dest
URI as a Hash:
source: git@github.com:user/project.git dest: user: deploy host: www.example.com path: /var/www/site
Specify multiple dest
URIs:
source: git@github.com:user/project.git dest: - deploy@www1.example.com/var/www/site - deploy@www2.example.com/var/www/site - deploy@www3.example.com/var/www/site
Specifying a server
option:
source: git@github.com:user/project.git dest: deploy@www.example.com/var/www/site server: apache
Specifying a server
with options:
source: git@github.com:user/project.git dest: deploy@www.example.com/var/www/site server: name: thin options: servers: 4 deamonize: true socket: /var/run/thin.sock rackup: true
Multiple environments:
# config/deploy.yml source: git@github.com:user/project.git framework: rails orm: datamapper # config/deploy/staging.yml dest: ssh://deploy@www.example.com/srv/staging server: name: thin options: config: /etc/thin/staging.yml socket: /tmp/thin.staging.sock # config/deploy/production.yml dest: ssh://deploy@www.example.com/srv/project server: name: thin options: config: /etc/thin/example.yml socket: /tmp/thin.example.sock
Specifying before/after commands:
before: restart: rm public/some/file after: install: - mkdir tmp - mkdir tmp/pids - mkdir log update: rake post_deploy
Synopsis¶ ↑
Cold-Deploy a new project:
$ deployml deploy
Redeploy a project:
$ deployml redeploy
Run a rake task on the deploy server:
$ deployml rake 'db:automigrate'
Execute a command on the deploy server:
$ deployml exec 'whoami'
SSH into the deploy server:
$ deployml ssh
List available tasks:
$ deployml help
Requirements¶ ↑
-
ruby >= 1.8.6
-
addressable ~> 2.2
-
rprogram ~> 0.2
-
thor ~> 0.14
Install¶ ↑
$ sudo gem install deployml
Copyright¶ ↑
Copyright © 2010-2012 Hal Brodigan
See {file:LICENSE.txt} for license information.