ubistrano 1.2.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,32 @@
1
+ NameVirtualHost *:80
2
+ <% unless ssl.empty? %>
3
+ NameVirtualHost *:443
4
+ <% end %>
5
+
6
+ <VirtualHost *:80>
7
+ <% unless domains.empty? %>
8
+ ServerName <%= domains.first %>
9
+ <% if domains.length > 1 %>
10
+ ServerAlias <%= domains[1..-1].join ' ' %>
11
+ <% end %>
12
+ <% end %>
13
+ DocumentRoot <%= deploy_to %>/current/public
14
+ ErrorLog <%= deploy_to %>/current/log/error.log
15
+ CustomLog <%= deploy_to %>/current/log/access.log combined
16
+ <% unless ssl.empty? %>
17
+ Redirect / https://<%= ssl.first %>/
18
+ <% end %>
19
+ </VirtualHost>
20
+
21
+ <% ssl.each do |s| %>
22
+ <VirtualHost *:443>
23
+ ServerName <%= s %>
24
+ DocumentRoot <%= deploy_to %>/current/public
25
+ ErrorLog <%= deploy_to %>/current/log/error.log
26
+ CustomLog <%= deploy_to %>/current/log/access.log combined
27
+
28
+ SSLEngine On
29
+ SSLCertificateFile <%= deploy_to %>/shared/cert/<%= s %>.crt
30
+ SSLCertificateKeyFile <%= deploy_to %>/shared/cert/<%= s %>.key
31
+ </VirtualHost>
32
+ <% end unless ssl.empty? %>
@@ -0,0 +1,9 @@
1
+ <%= shared_path %>/log/*.log {
2
+ daily
3
+ missingok
4
+ rotate 7
5
+ compress
6
+ delaycompress
7
+ notifempty
8
+ copytruncate
9
+ }
@@ -0,0 +1,13 @@
1
+ development: &defaults
2
+ adapter: mysql
3
+ database: <%= db_table %>
4
+ username: <%= application %>
5
+ password: <%= mysql_app_password %>
6
+ host: localhost
7
+ socket: /var/run/mysqld/mysqld.sock
8
+
9
+ test:
10
+ <<: *defaults
11
+
12
+ production:
13
+ <<: *defaults
@@ -0,0 +1,31 @@
1
+ God.watch do |w|
2
+ w.name = 'apache'
3
+ w.start = "/etc/init.d/apache2 start"
4
+ w.stop = "/etc/init.d/apache2 stop"
5
+ w.restart = "/etc/init.d/apache2 restart"
6
+ w.interval = 30.seconds
7
+ w.start_grace = 10.seconds
8
+ w.restart_grace = 10.seconds
9
+ w.pid_file = '/var/run/apache2.pid'
10
+ w.behavior(:clean_pid_file)
11
+
12
+ w.start_if do |start|
13
+ start.condition(:process_running) do |c|
14
+ c.interval = 5.seconds
15
+ c.running = false
16
+ end
17
+ end
18
+
19
+ # lifecycle
20
+ w.lifecycle do |on|
21
+ on.condition(:flapping) do |c|
22
+ c.to_state = [:start, :restart]
23
+ c.times = 5
24
+ c.within = 5.minute
25
+ c.transition = :unmonitored
26
+ c.retry_in = 10.minutes
27
+ c.retry_times = 5
28
+ c.retry_within = 2.hours
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,36 @@
1
+ #!/bin/bash
2
+ #
3
+ # God
4
+ #
5
+ # chkconfig: - 85 15
6
+ # description: start, stop, restart God (bet you feel powerful)
7
+ #
8
+
9
+ RETVAL=0
10
+
11
+ case "$1" in
12
+ start)
13
+ sudo /usr/local/bin/god -P /var/run/god.pid -l /var/log/god.log
14
+ sudo /usr/local/bin/god load /usr/local/etc/god.god
15
+ RETVAL=$?
16
+ ;;
17
+ stop)
18
+ sudo kill `cat /var/run/god.pid`
19
+ RETVAL=$?
20
+ ;;
21
+ restart)
22
+ sudo kill `cat /var/run/god.pid`
23
+ sudo /usr/local/bin/god -P /var/run/god.pid -l /var/log/god.log
24
+ sudo /usr/local/bin/god load /usr/local/etc/god.god
25
+ RETVAL=$?
26
+ ;;
27
+ status)
28
+ RETVAL=$?
29
+ ;;
30
+ *)
31
+ echo "Usage: god {start|stop|restart|status}"
32
+ exit 1
33
+ ;;
34
+ esac
35
+
36
+ exit $RETVAL
@@ -0,0 +1 @@
1
+ God.load "/usr/local/etc/god/*.god"
@@ -0,0 +1,31 @@
1
+ *filter
2
+
3
+ # Allows all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
4
+ -A INPUT -i lo -j ACCEPT
5
+ -A INPUT -i ! lo -d 127.0.0.0/8 -j REJECT
6
+
7
+ # Accept all established inbound connections
8
+ -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
9
+
10
+ # Allow all outbound traffic
11
+ -A OUTPUT -j ACCEPT
12
+
13
+ # Allow HTTP and HTTPS connections
14
+ -A INPUT -p tcp --dport 80 -j ACCEPT
15
+ -A INPUT -p tcp --dport 443 -j ACCEPT
16
+
17
+ # Allow SSH connections
18
+ -A INPUT -p tcp -m state --state NEW --dport <%= port %> -j ACCEPT
19
+
20
+ # Allow ping
21
+ -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
22
+
23
+ # Log iptables denied calls
24
+ -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
25
+
26
+ # Reject all other inbound
27
+ -A INPUT -j REJECT
28
+ -A FORWARD -j REJECT
29
+
30
+ COMMIT
31
+ # There MUST be a new line after this line!
@@ -0,0 +1,31 @@
1
+ God.watch do |w|
2
+ w.name = 'mysql'
3
+ w.start = "/etc/init.d/mysqld start"
4
+ w.stop = "/etc/init.d/mysqld start"
5
+ w.restart = "/etc/init.d/mysqld restart"
6
+ w.interval = 30.seconds
7
+ w.start_grace = 10.seconds
8
+ w.restart_grace = 10.seconds
9
+ w.pid_file = '/var/run/mysqld/mysqld.pid'
10
+ w.behavior(:clean_pid_file)
11
+
12
+ w.start_if do |start|
13
+ start.condition(:process_running) do |c|
14
+ c.interval = 5.seconds
15
+ c.running = false
16
+ end
17
+ end
18
+
19
+ # lifecycle
20
+ w.lifecycle do |on|
21
+ on.condition(:flapping) do |c|
22
+ c.to_state = [:start, :restart]
23
+ c.times = 5
24
+ c.within = 5.minute
25
+ c.transition = :unmonitored
26
+ c.retry_in = 10.minutes
27
+ c.retry_times = 5
28
+ c.retry_within = 2.hours
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,31 @@
1
+ God.watch do |w|
2
+ w.name = 'sshd'
3
+ w.start = "/etc/init.d/ssh start"
4
+ w.stop = "/etc/init.d/ssh stop"
5
+ w.restart = "/etc/init.d/ssh restart"
6
+ w.interval = 30.seconds
7
+ w.start_grace = 10.seconds
8
+ w.restart_grace = 10.seconds
9
+ w.pid_file = '/var/run/sshd.pid'
10
+ w.behavior(:clean_pid_file)
11
+
12
+ w.start_if do |start|
13
+ start.condition(:process_running) do |c|
14
+ c.interval = 5.seconds
15
+ c.running = false
16
+ end
17
+ end
18
+
19
+ # lifecycle
20
+ w.lifecycle do |on|
21
+ on.condition(:flapping) do |c|
22
+ c.to_state = [:start, :restart]
23
+ c.times = 5
24
+ c.within = 5.minute
25
+ c.transition = :unmonitored
26
+ c.retry_in = 10.minutes
27
+ c.retry_times = 5
28
+ c.retry_within = 2.hours
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,32 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{ubistrano}
5
+ s.version = "1.2.7"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
+ s.authors = ["Winton Welsh"]
9
+ s.date = %q{2009-06-28}
10
+ s.default_executable = %q{ubify}
11
+ s.email = %q{mail@wintoni.us}
12
+ s.executables = ["ubify"]
13
+ s.extra_rdoc_files = ["README.markdown"]
14
+ s.files = ["bin", "bin/ubify", "changelog.markdown", "example", "example/deploy.rb", "gemspec.rb", "lib", "lib/ubistrano", "lib/ubistrano/apache.rb", "lib/ubistrano/deploy.rb", "lib/ubistrano/ec2.rb", "lib/ubistrano/gems.rb", "lib/ubistrano/helpers.rb", "lib/ubistrano/log.rb", "lib/ubistrano/mysql.rb", "lib/ubistrano/rails.rb", "lib/ubistrano/sinatra.rb", "lib/ubistrano/ssh.rb", "lib/ubistrano/stage.rb", "lib/ubistrano/ubuntu.rb", "lib/ubistrano.rb", "MIT-LICENSE", "Rakefile", "README.markdown", "templates", "templates/apache", "templates/apache/virtual_host.erb", "templates/log", "templates/log/rotate.conf.erb", "templates/rails", "templates/rails/database.yml.erb", "templates/ubuntu", "templates/ubuntu/apache.god.erb", "templates/ubuntu/god.erb", "templates/ubuntu/god.god.erb", "templates/ubuntu/iptables.rules.erb", "templates/ubuntu/mysql.god.erb", "templates/ubuntu/sshd.god.erb", "ubistrano.gemspec"]
15
+ s.homepage = %q{http://github.com/winton/ubistrano}
16
+ s.require_paths = ["lib"]
17
+ s.rubygems_version = %q{1.3.1}
18
+ s.summary = %q{Provision and deploy to an Ubuntu/God/Apache/Passenger stack using Capistrano}
19
+
20
+ if s.respond_to? :specification_version then
21
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
22
+ s.specification_version = 2
23
+
24
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
25
+ s.add_runtime_dependency(%q<amazon-ec2>, ["= 0.4.5"])
26
+ else
27
+ s.add_dependency(%q<amazon-ec2>, ["= 0.4.5"])
28
+ end
29
+ else
30
+ s.add_dependency(%q<amazon-ec2>, ["= 0.4.5"])
31
+ end
32
+ end
metadata ADDED
@@ -0,0 +1,93 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ubistrano
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.2.7
5
+ platform: ruby
6
+ authors:
7
+ - Winton Welsh
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-11-06 00:00:00 -08:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: amazon-ec2
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - "="
22
+ - !ruby/object:Gem::Version
23
+ version: 0.4.5
24
+ version:
25
+ description:
26
+ email: mail@wintoni.us
27
+ executables:
28
+ - ubify
29
+ extensions: []
30
+
31
+ extra_rdoc_files:
32
+ - README.markdown
33
+ files:
34
+ - bin/ubify
35
+ - changelog.markdown
36
+ - example/deploy.rb
37
+ - gemspec.rb
38
+ - lib/ubistrano/apache.rb
39
+ - lib/ubistrano/deploy.rb
40
+ - lib/ubistrano/ec2.rb
41
+ - lib/ubistrano/gems.rb
42
+ - lib/ubistrano/helpers.rb
43
+ - lib/ubistrano/log.rb
44
+ - lib/ubistrano/mysql.rb
45
+ - lib/ubistrano/rails.rb
46
+ - lib/ubistrano/sinatra.rb
47
+ - lib/ubistrano/ssh.rb
48
+ - lib/ubistrano/stage.rb
49
+ - lib/ubistrano/ubuntu.rb
50
+ - lib/ubistrano.rb
51
+ - MIT-LICENSE
52
+ - Rakefile
53
+ - README.markdown
54
+ - templates/apache/virtual_host.erb
55
+ - templates/log/rotate.conf.erb
56
+ - templates/rails/database.yml.erb
57
+ - templates/ubuntu/apache.god.erb
58
+ - templates/ubuntu/god.erb
59
+ - templates/ubuntu/god.god.erb
60
+ - templates/ubuntu/iptables.rules.erb
61
+ - templates/ubuntu/mysql.god.erb
62
+ - templates/ubuntu/sshd.god.erb
63
+ - ubistrano.gemspec
64
+ has_rdoc: true
65
+ homepage: http://github.com/winton/ubistrano
66
+ licenses: []
67
+
68
+ post_install_message:
69
+ rdoc_options: []
70
+
71
+ require_paths:
72
+ - lib
73
+ required_ruby_version: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
77
+ version: "0"
78
+ version:
79
+ required_rubygems_version: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: "0"
84
+ version:
85
+ requirements: []
86
+
87
+ rubyforge_project:
88
+ rubygems_version: 1.3.5
89
+ signing_key:
90
+ specification_version: 3
91
+ summary: Provision and deploy to an Ubuntu/God/Apache/Passenger stack using Capistrano
92
+ test_files: []
93
+