provizioning 0.0.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README ADDED
@@ -0,0 +1,3 @@
1
+ Provizioning is a server provisioning tool and a repository of recipes to set-up different type of servers in an automated way.
2
+
3
+ It's based on Sprinkle and Capistrano
data/bin/provizion CHANGED
@@ -1,17 +1,52 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require "fileutils"
3
+ require 'fileutils'
4
+ require 'optparse'
4
5
 
5
- folder = "."
6
+ path = "."
7
+ path = ARGV.first if !ARGV.first.nil?
6
8
 
7
- `capify #{folder}`
9
+ options = {}
10
+ MANDATORY_OPTIONS = [:template]
8
11
 
9
- FileUtils.mkdir_p("#{folder}/config/deploy")
10
- FileUtils.mkdir_p("#{folder}/config/server")
11
- FileUtils.mkdir_p("#{folder}/config/server/monit")
12
+ ARGV.each do |arg|
13
+ ENV[$1] = $2 if arg =~ /^(\w+)=(.*)$/
14
+ end
12
15
 
13
- FileUtils.cp("#{File.dirname(__FILE__)}/../lib/templates/sprinkle.rb", "#{folder}/config/server/policy.rb")
14
- FileUtils.cp("#{File.dirname(__FILE__)}/../lib/templates/maintenance.html", "#{folder}/config/server/maintenance.html")
16
+ parser = OptionParser.new do |opts|
17
+ opts.banner = <<BANNER
18
+ Provizion
19
+ =========
20
+
21
+ http://github.com/seasonlabs/provizion
22
+
23
+ Provizioning is a server automation tool that lets you setup a server in an automated fashion without installing
24
+ anything in the remote server before loading configuration.
25
+
26
+ Usage
27
+ =====
28
+
29
+ $> #{File.basename($0)} PATH [options]
30
+
31
+ Templates are:
32
+ BANNER
33
+ opts.separator ""
34
+ opts.on("-t", "--template TEMPLATE", String,
35
+ "Server template: lamp, rails") { |options[:template]| }
36
+ opts.on("-h", "--help",
37
+ "Show this help message.") { puts opts; exit }
38
+ opts.parse!(ARGV)
39
+
40
+ if MANDATORY_OPTIONS && MANDATORY_OPTIONS.find { |option| options[option.to_sym].nil? }
41
+ puts opts; exit
42
+ end
43
+ end
44
+
45
+ FileUtils.mkdir_p("#{path}")
46
+
47
+ `capify #{path}`
48
+
49
+ FileUtils.cp("#{File.dirname(__FILE__)}/../lib/policies/#{options[:template]}.rb", "#{path}/policy.rb")
15
50
 
16
51
  puts "[Server configuration created]"
17
52
  puts "[Modify it to configure you server connection details]"
@@ -0,0 +1,37 @@
1
+ # Require our stack
2
+ require "provizioning"
3
+
4
+ policy :passenger_stack, :roles => :app do
5
+ requires :ubuntu_sources
6
+ requires :build_essential
7
+ requires :vim
8
+ requires :git
9
+ requires :curl
10
+ requires :chef_client
11
+ end
12
+
13
+ deployment do
14
+ # mechanism for deployment
15
+ delivery :capistrano do
16
+ begin
17
+ recipes 'Capfile'
18
+ rescue LoadError
19
+ recipes 'deploy'
20
+ end
21
+ end
22
+
23
+ # source based package installer defaults
24
+ source do
25
+ prefix '/usr/local'
26
+ archives '/usr/local/sources'
27
+ builds '/usr/local/build'
28
+ end
29
+ end
30
+
31
+ # Depend on a specific version of sprinkle
32
+ begin
33
+ gem 'sprinkle', ">= 0.3.1"
34
+ rescue Gem::LoadError
35
+ puts "sprinkle 0.3.1 required.\n Run: `sudo gem install sprinkle`"
36
+ exit
37
+ end
@@ -0,0 +1,42 @@
1
+ # Require our stack
2
+ require "provizioning"
3
+
4
+ policy :passenger_stack, :roles => :app do
5
+ requires :ubuntu_sources
6
+ requires :build_essential
7
+ requires :vim
8
+ requires :git
9
+ requires :curl
10
+
11
+ requires :webserver # Apache
12
+ requires :database # MySQL, SQLite
13
+
14
+ requires :scm # Git, SVN
15
+ requires :php # PHP
16
+ end
17
+
18
+ deployment do
19
+ # mechanism for deployment
20
+ delivery :capistrano do
21
+ begin
22
+ recipes 'Capfile'
23
+ rescue LoadError
24
+ recipes 'deploy'
25
+ end
26
+ end
27
+
28
+ # source based package installer defaults
29
+ source do
30
+ prefix '/usr/local'
31
+ archives '/usr/local/sources'
32
+ builds '/usr/local/build'
33
+ end
34
+ end
35
+
36
+ # Depend on a specific version of sprinkle
37
+ begin
38
+ gem 'sprinkle', ">= 0.3.1"
39
+ rescue Gem::LoadError
40
+ puts "sprinkle 0.3.1 required.\n Run: `sudo gem install sprinkle`"
41
+ exit
42
+ end
@@ -0,0 +1,44 @@
1
+ # Require our stack
2
+ require "provizioning"
3
+
4
+ policy :passenger_stack, :roles => :app do
5
+ requires :ubuntu_sources
6
+ requires :build_essential
7
+ requires :vim
8
+ requires :git
9
+ requires :curl
10
+
11
+ requires :webserver # Apache
12
+ requires :database # MySQL, SQLite
13
+
14
+ requires :scm # Git, SVN
15
+ requires :ruby # Ruby Enterprise
16
+ requires :appserver # passenger
17
+ requires :imagemagick # image magick
18
+ end
19
+
20
+ deployment do
21
+ # mechanism for deployment
22
+ delivery :capistrano do
23
+ begin
24
+ recipes 'Capfile'
25
+ rescue LoadError
26
+ recipes 'deploy'
27
+ end
28
+ end
29
+
30
+ # source based package installer defaults
31
+ source do
32
+ prefix '/usr/local'
33
+ archives '/usr/local/sources'
34
+ builds '/usr/local/build'
35
+ end
36
+ end
37
+
38
+ # Depend on a specific version of sprinkle
39
+ begin
40
+ gem 'sprinkle', ">= 0.3.1"
41
+ rescue Gem::LoadError
42
+ puts "sprinkle 0.3.1 required.\n Run: `sudo gem install sprinkle`"
43
+ exit
44
+ end
@@ -0,0 +1,3 @@
1
+ Dir["#{File.dirname(__FILE__)}/recipes/*.rb"].each do |package|
2
+ require package
3
+ end
@@ -0,0 +1,70 @@
1
+ package :apache, :provides => :webserver do
2
+ description 'Apache2 web server.'
3
+ apt 'apache2 apache2.2-common apache2-mpm-prefork apache2-utils libexpat1 ssl-cert' do
4
+ post :install, 'a2enmod rewrite'
5
+ end
6
+
7
+ verify do
8
+ has_executable '/usr/sbin/apache2'
9
+ end
10
+
11
+ requires :build_essential
12
+ optional :apache_etag_support, :apache_deflate_support, :apache_expires_support
13
+ end
14
+
15
+ package :apache2_prefork_dev do
16
+ description 'A dependency required by some packages.'
17
+ apt 'apache2-prefork-dev'
18
+ end
19
+
20
+ # These "installers" are strictly optional, I believe
21
+ # that everyone should be doing this to serve sites more quickly.
22
+
23
+ # Enable ETags
24
+ package :apache_etag_support do
25
+ apache_conf = "/etc/apache2/apache2.conf"
26
+ config = <<eol
27
+ # Passenger-stack-etags
28
+ FileETag MTime Size
29
+ eol
30
+
31
+ push_text config, apache_conf, :sudo => true
32
+ verify { file_contains apache_conf, "Passenger-stack-etags"}
33
+ end
34
+
35
+ # mod_deflate, compress scripts before serving.
36
+ package :apache_deflate_support do
37
+ apache_conf = "/etc/apache2/apache2.conf"
38
+ config = <<eol
39
+ # Passenger-stack-deflate
40
+ <IfModule mod_deflate.c>
41
+ # compress content with type html, text, and css
42
+ AddOutputFilterByType DEFLATE text/css text/html text/javascript application/javascript application/x-javascript text/js text/plain text/xml
43
+ <IfModule mod_headers.c>
44
+ # properly handle requests coming from behind proxies
45
+ Header append Vary User-Agent
46
+ </IfModule>
47
+ </IfModule>
48
+ eol
49
+
50
+ push_text config, apache_conf, :sudo => true
51
+ verify { file_contains apache_conf, "Passenger-stack-deflate"}
52
+ end
53
+
54
+ # mod_expires, add long expiry headers to css, js and image files
55
+ package :apache_expires_support do
56
+ apache_conf = "/etc/apache2/apache2.conf"
57
+
58
+ config = <<eol
59
+ # Passenger-stack-expires
60
+ <IfModule mod_expires.c>
61
+ <FilesMatch "\.(jpg|gif|png|css|js)$">
62
+ ExpiresActive on
63
+ ExpiresDefault "access plus 1 year"
64
+ </FilesMatch>
65
+ </IfModule>
66
+ eol
67
+
68
+ push_text config, apache_conf, :sudo => true
69
+ verify { file_contains apache_conf, "Passenger-stack-expires"}
70
+ end
@@ -0,0 +1,3 @@
1
+ package :apache_conf do
2
+ transfer '../templates/apache.conf.erb', '/etc/nginx.conf', :render => true
3
+ end
@@ -0,0 +1,4 @@
1
+ package :bundler do
2
+ description "Bundler gem"
3
+ gem "bundler"
4
+ end
@@ -0,0 +1,11 @@
1
+ package :chef_client do
2
+ description 'Chef client bootstrap'
3
+ gem 'chef'
4
+ requires :ruby
5
+
6
+ verify do
7
+ has_gem 'chef'
8
+ end
9
+ end
10
+
11
+ #ruby ruby-dev libopenssl-ruby rdoc ri irb build-essential wget ssl-cert
@@ -0,0 +1,8 @@
1
+ package :curl do
2
+ description 'Curl tool'
3
+ apt 'curl'
4
+
5
+ verify do
6
+ has_executable 'curl'
7
+ end
8
+ end
@@ -0,0 +1,4 @@
1
+ package :build_essential do
2
+ description 'Build tools'
3
+ apt 'build-essential'
4
+ end
@@ -0,0 +1,15 @@
1
+ package :git, :provides => :scm do
2
+ description 'Git Distributed Version Control'
3
+ version '1.7.2.3'
4
+ source "http://kernel.org/pub/software/scm/git/git-#{version}.tar.gz"
5
+ requires :git_dependencies
6
+
7
+ verify do
8
+ has_executable 'git'
9
+ end
10
+ end
11
+
12
+ package :git_dependencies do
13
+ description 'Git Build Dependencies'
14
+ apt 'git-core', :dependencies_only => true
15
+ end
@@ -0,0 +1,8 @@
1
+ package :imagemagick do
2
+ description 'ImageMagick image convertion library'
3
+ apt 'imagemagick libmagickwand-dev'
4
+
5
+ verify do
6
+ has_file '/usr/bin/convert'
7
+ end
8
+ end
@@ -0,0 +1,9 @@
1
+ #Not sure if this recipe will work because exim has its own pseudo-gui installer
2
+ package :postfix, :provides => :mailserver do
3
+ description 'Postfix MTA'
4
+ apt 'postfix'
5
+
6
+ verify do
7
+ has_executable 'postfix'
8
+ end
9
+ end
@@ -0,0 +1,16 @@
1
+ package :memcached_daemon, :provides => :memcached do
2
+ description 'Memcached, a distributed memory object store'
3
+ apt %w( memcached )
4
+
5
+ post :install, "/etc/init.d/memcached start"
6
+ post :install, "sudo ldconfig"
7
+
8
+ verify do
9
+ has_executable 'memcached'
10
+ end
11
+ end
12
+
13
+ package :libmemcached do
14
+ source 'http://download.tangent.org/libmemcached-0.25.tar.gz'
15
+ requires :memcached_daemon
16
+ end
@@ -0,0 +1,21 @@
1
+ package :mysql, :provides => :database do
2
+ description 'MySQL Database'
3
+ apt %w( mysql-server mysql-client libmysqlclient-dev ) do
4
+ transfer "#{File.dirname(__FILE__)}/../templates/my.cnf", '/etc/mysql/'
5
+ end
6
+
7
+ verify do
8
+ has_executable 'mysql'
9
+ end
10
+ end
11
+
12
+ package :mysql_driver, :provides => :ruby_database_driver do
13
+ description 'Ruby MySQL database driver'
14
+ gem 'mysql'
15
+
16
+ verify do
17
+ has_gem 'mysql'
18
+ end
19
+
20
+ requires :ruby_enterprise
21
+ end
@@ -0,0 +1,63 @@
1
+ #! /bin/sh
2
+
3
+ ### BEGIN INIT INFO
4
+ # Provides: nginx
5
+ # Required-Start: $all
6
+ # Required-Stop: $all
7
+ # Default-Start: 2 3 4 5
8
+ # Default-Stop: 0 1 6
9
+ # Short-Description: starts the nginx web server
10
+ # Description: starts nginx using start-stop-daemon
11
+ ### END INIT INFO
12
+
13
+
14
+ PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
15
+ DAEMON=/usr/local/nginx/sbin/nginx
16
+ NAME=nginx
17
+ DESC=nginx
18
+
19
+ test -x $DAEMON || exit 0
20
+
21
+ # Include nginx defaults if available
22
+ if [ -f /etc/default/nginx ] ; then
23
+ . /etc/default/nginx
24
+ fi
25
+
26
+ set -e
27
+
28
+ case "$1" in
29
+ start)
30
+ echo -n "Starting $DESC: "
31
+ start-stop-daemon --start --quiet --pidfile /usr/local/nginx/logs/$NAME.pid \
32
+ --exec $DAEMON -- $DAEMON_OPTS
33
+ echo "$NAME."
34
+ ;;
35
+ stop)
36
+ echo -n "Stopping $DESC: "
37
+ start-stop-daemon --stop --quiet --pidfile /usr/local/nginx/logs/$NAME.pid \
38
+ --exec $DAEMON
39
+ echo "$NAME."
40
+ ;;
41
+ restart|force-reload)
42
+ echo -n "Restarting $DESC: "
43
+ start-stop-daemon --stop --quiet --pidfile \
44
+ /usr/local/nginx/logs/$NAME.pid --exec $DAEMON
45
+ sleep 1
46
+ start-stop-daemon --start --quiet --pidfile \
47
+ /usr/local/nginx/logs/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS
48
+ echo "$NAME."
49
+ ;;
50
+ reload)
51
+ echo -n "Reloading $DESC configuration: "
52
+ start-stop-daemon --stop --signal HUP --quiet --pidfile /usr/local/nginx/logs/$NAME.pid \
53
+ --exec $DAEMON
54
+ echo "$NAME."
55
+ ;;
56
+ *)
57
+ N=/etc/init.d/$NAME
58
+ echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
59
+ exit 1
60
+ ;;
61
+ esac
62
+
63
+ exit 0
@@ -0,0 +1,25 @@
1
+ # =========
2
+ # = Notes =
3
+ # =========
4
+
5
+ # The phusion guys have made it so that you can install nginx and passenger in one
6
+ # fell swoop, it is for this reason and cleanliness that I haven't decided to install
7
+ # nginx and passenger separately, otherwise nginx ends up being dependent on passenger
8
+ # so that it can call --add-module within its configure statement - That in itself would
9
+ # be strange.
10
+
11
+ package :nginx, :provides => :webserver do
12
+ puts "** Nginx installed by passenger gem **"
13
+ requires :passenger
14
+
15
+ push_text File.read(File.join(File.dirname(__FILE__), 'nginx', 'init.d')), "/etc/init.d/nginx", :sudo => true do
16
+ post :install, "sudo chmod +x /etc/init.d/nginx"
17
+ post :install, "sudo /usr/sbin/update-rc.d -f nginx defaults"
18
+ post :install, "sudo /etc/init.d/nginx start"
19
+ end
20
+
21
+ verify do
22
+ has_executable "/usr/local/nginx/sbin/nginx"
23
+ has_file "/etc/init.d/nginx"
24
+ end
25
+ end
@@ -0,0 +1,67 @@
1
+ package :passenger_gem do
2
+ description 'Phusion Passenger (aka mod_rails)'
3
+ version '3.0'
4
+ gem 'passenger'
5
+
6
+ verify do
7
+ has_gem 'passenger'
8
+ end
9
+ end
10
+
11
+ package :passenger_apache, :provides => :appserver do
12
+ description "Installs and configures Passenger for use with apache webserver"
13
+ # require the apache passenger module load/conf files before installation because of a sprinkle limitation.
14
+ requires :apache, :passenger_gem, :passenger_module_load, :passenger_module_conf
15
+
16
+ passenger_version = '2.2.15'
17
+
18
+ noop do
19
+ pre :install, 'passenger-install-apache2-module --auto'
20
+ post :install, "sudo a2enmod passenger"
21
+ post :install, 'echo "NameVirtualHost *:80" | sudo tee -a /etc/apache2/httpd.conf'
22
+ # Restart apache to enable changes
23
+ post :install, '/etc/init.d/apache2 restart'
24
+ end
25
+
26
+ verify do
27
+ has_file "/usr/local/ruby-enterprise/lib/ruby/gems/1.8/gems/passenger-#{passenger_version}/ext/apache2/mod_passenger.so"
28
+ end
29
+ end
30
+
31
+ package :passenger_module_load do
32
+
33
+ description "Uploads the passenger module load configuration. -sprinkle currently does not allow multiple installers per package, that's why the configuration files have it's own packages"
34
+ requires :apache, :passenger_gem
35
+
36
+ #TODO: :render => true seems not to work? hello sprinkle?!
37
+ passenger_version = '2.2.15'
38
+ transfer "#{File.dirname(__FILE__)}/../templates/passenger.load", "/etc/apache2/mods-available/passenger.load", :render => true
39
+
40
+ verify do
41
+ has_file '/etc/apache2/mods-available/passenger.load'
42
+ end
43
+ end
44
+
45
+ package :passenger_module_conf do
46
+
47
+ description "Uploads the passenger module conf configuration. -sprinkle currently does not allow multiple installers per package, that's why the configuration files have it's own packages"
48
+ requires :apache, :passenger_gem
49
+
50
+ #TODO: :render => true seems not to work? hello sprinkle?!
51
+ passenger_version = '2.2.15'
52
+ transfer "#{File.dirname(__FILE__)}/../templates/passenger.conf", "/etc/apache2/mods-available/passenger.conf", :render => true
53
+
54
+ verify do
55
+ has_file '/etc/apache2/mods-available/passenger.conf'
56
+ end
57
+ end
58
+
59
+ package :passenger_nginx, :provides => :appserver do
60
+ description "Installs and configures Passenger for use with the awesome nginx webserver"
61
+
62
+ requires :passenger_gem
63
+
64
+ noop do
65
+ pre :install, "passenger-install-nginx-module --auto --auto-download"
66
+ end
67
+ end
@@ -0,0 +1,8 @@
1
+ package :php do
2
+ description 'PHP Interpreter'
3
+ apt 'php5 libapache2-mod-php5 php5-mysql php5-gd'
4
+
5
+ verify do
6
+ has_executable 'php'
7
+ end
8
+ end
@@ -0,0 +1,21 @@
1
+ package :postgres, :provides => :database do
2
+ description 'PostgreSQL database'
3
+ apt %w( postgresql postgresql-client libpq-dev )
4
+
5
+ verify do
6
+ has_executable 'psql'
7
+ end
8
+
9
+ optional :postgresql_driver
10
+ end
11
+
12
+ package :postgresql_driver, :provides => :ruby_database_driver do
13
+ description 'Ruby PostgreSQL database driver'
14
+ gem 'postgres'
15
+
16
+ verify do
17
+ has_gem 'postgres'
18
+ end
19
+
20
+ requires :ruby_enterprise
21
+ end
@@ -0,0 +1,24 @@
1
+ package :ruby_enterprise do
2
+ description 'Ruby Enterprise Edition'
3
+ version '1.8.7-2010.02'
4
+ REE_PATH = "/usr/local/ruby-enterprise"
5
+
6
+ binaries = %w(erb gem irb rackup rails rake rdoc ree-version ri ruby testrb)
7
+ source "http://rubyforge.org/frs/download.php/71096/ruby-enterprise-#{version}.tar.gz" do
8
+ custom_install 'sudo ./installer --auto=/usr/local/ruby-enterprise'
9
+ binaries.each {|bin| post :install, "ln -s #{REE_PATH}/bin/#{bin} /usr/local/bin/#{bin}" }
10
+ end
11
+
12
+ verify do
13
+ has_directory install_path
14
+ has_executable "#{REE_PATH}/bin/ruby"
15
+ binaries.each {|bin| has_symlink "/usr/local/bin/#{bin}", "#{REE_PATH}/bin/#{bin}" }
16
+ end
17
+
18
+ requires :ree_dependencies
19
+ end
20
+
21
+ package :ree_dependencies do
22
+ apt %w(zlib1g-dev libreadline5-dev libssl-dev)
23
+ requires :build_essential
24
+ end
@@ -0,0 +1,25 @@
1
+ package :rvm do
2
+ description "Ruby Version Manager"
3
+
4
+ runner "bash < <( curl -L http://bit.ly/rvm-install-system-wide )" do
5
+ push_text '[[ -s "/usr/local/lib/rvm" ]] && . "/usr/local/lib/rvm" # This loads RVM into a shell session.', '/root/.bashrc'
6
+ end
7
+
8
+ verify do
9
+ has_executable "rvm"
10
+ end
11
+
12
+ #requires :rvm_ree
13
+ end
14
+
15
+ package :rvm_ree do
16
+ description "REE in RVM"
17
+
18
+ apt "vim" do
19
+ pre :install, "rvm install ree"
20
+ post :install, "rvm --default ree"
21
+ end
22
+
23
+ #verify do
24
+ #end
25
+ end
@@ -0,0 +1,5 @@
1
+ package :ubuntu_sources do
2
+ transfer File.dirname(__FILE__) + '/../templates/sources.list', '/etc/apt/sources.list', :sudo => true do
3
+ post :install, 'apt-get update'
4
+ end
5
+ end
@@ -0,0 +1,8 @@
1
+ package :subversion, :provides => :scm do
2
+ description 'Subversion Version Control'
3
+ apt 'subversion'
4
+
5
+ verify do
6
+ has_executable 'svn'
7
+ end
8
+ end
@@ -0,0 +1,7 @@
1
+ package :syslog do
2
+ apt 'sysklogd'
3
+
4
+ verify do
5
+ has_log '/sbin/syslogd'
6
+ end
7
+ end
@@ -0,0 +1,12 @@
1
+ package :ufw, :provides => :firewall do
2
+ description "UFW Firewall"
3
+
4
+ apt "ufw" do
5
+ post :install, "sudo ufw allow to 0.0.0.0/0 port 80"
6
+ post :install, "sudo ufw allow to 0.0.0.0/0 port 443"
7
+ post :install, "sudo ufw allow to 0.0.0.0/0 port 3000"
8
+ post :install, "sudo ufw allow to 0.0.0.0/0 port 22"
9
+ post :install, "sudo ufw allow to 0.0.0.0/0 port 25"
10
+ post :install, "sudo ufw enable"
11
+ end
12
+ end
@@ -0,0 +1,8 @@
1
+ package :vim do
2
+ description 'VIM Editor'
3
+ apt "vim"
4
+
5
+ verify do
6
+ has_executable 'vim'
7
+ end
8
+ end
@@ -0,0 +1,17 @@
1
+ package :webmin, :provides => :panel do
2
+ description 'Webmin'
3
+ version '1.510'
4
+ requires :webmin_dependencies
5
+
6
+ deb "http://prdownloads.sourceforge.net/webadmin/webmin_#{version}-2_all.deb"
7
+
8
+ verify do
9
+ has_file "/etc/webmin/start"
10
+ end
11
+ end
12
+
13
+ package :webmin_dependencies do
14
+ description 'Webmin dependencies'
15
+ apt 'apt-show-versions perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl'
16
+ end
17
+
@@ -0,0 +1,12 @@
1
+ <VirtualHost *:80>
2
+ ServerName <%= domain %>
3
+ DocumentRoot <%= deploy_to %>/current/public
4
+ RailsEnv <%= stage %>
5
+ AllowEncodedSlashes on
6
+ RewriteEngine On
7
+ RewriteRule ^/$ /system/cache/index.html [QSA]
8
+ RewriteRule ^([^.]+)$ /system/cache/$1.html [QSA]
9
+ RewriteCond %{DOCUMENT_ROOT}/system/maintenance.html -f
10
+ RewriteCond %{SCRIPT_FILENAME} !maintenance.html
11
+ RewriteRule ^.*$ /system/maintenance.html [L]
12
+ </VirtualHost>
@@ -0,0 +1,132 @@
1
+ #
2
+ # The MySQL database server configuration file.
3
+ #
4
+ # You can copy this to one of:
5
+ # - "/etc/mysql/my.cnf" to set global options,
6
+ # - "~/.my.cnf" to set user-specific options.
7
+ #
8
+ # One can use all long options that the program supports.
9
+ # Run program with --help to get a list of available options and with
10
+ # --print-defaults to see which it would actually understand and use.
11
+ #
12
+ # For explanations see
13
+ # http://dev.mysql.com/doc/mysql/en/server-system-variables.html
14
+
15
+ # This will be passed to all mysql clients
16
+ # It has been reported that passwords should be enclosed with ticks/quotes
17
+ # escpecially if they contain "#" chars...
18
+ # Remember to edit /etc/mysql/debian.cnf when changing the socket location.
19
+ [client]
20
+ port = 3306
21
+ socket = /var/run/mysqld/mysqld.sock
22
+ default-character-set = utf8
23
+
24
+ # Here is entries for some specific programs
25
+ # The following values assume you have at least 32M ram
26
+
27
+ # This was formally known as [safe_mysqld]. Both versions are currently parsed.
28
+ [mysqld_safe]
29
+ socket = /var/run/mysqld/mysqld.sock
30
+ nice = 0
31
+
32
+ [mysqld]
33
+ #
34
+ # * Basic Settings
35
+ #
36
+
37
+ #
38
+ # * IMPORTANT
39
+ # If you make changes to these settings and your system uses apparmor, you may
40
+ # also need to also adjust /etc/apparmor.d/usr.sbin.mysqld.
41
+ #
42
+
43
+ character-set-server = utf8
44
+ user = mysql
45
+ socket = /var/run/mysqld/mysqld.sock
46
+ port = 3306
47
+ basedir = /usr
48
+ datadir = /var/lib/mysql
49
+ tmpdir = /tmp
50
+ skip-external-locking
51
+ #
52
+ # Instead of skip-networking the default is now to listen only on
53
+ # localhost which is more compatible and is not less secure.
54
+ bind-address = 127.0.0.1
55
+ #
56
+ # * Fine Tuning
57
+ #
58
+ key_buffer = 16M
59
+ max_allowed_packet = 16M
60
+ thread_stack = 192K
61
+ thread_cache_size = 8
62
+ # This replaces the startup script and checks MyISAM tables if needed
63
+ # the first time they are touched
64
+ myisam-recover = BACKUP
65
+ #max_connections = 100
66
+ #table_cache = 64
67
+ #thread_concurrency = 10
68
+ #
69
+ # * Query Cache Configuration
70
+ #
71
+ query_cache_limit = 1M
72
+ query_cache_size = 16M
73
+ #
74
+ # * Logging and Replication
75
+ #
76
+ # Both location gets rotated by the cronjob.
77
+ # Be aware that this log type is a performance killer.
78
+ # As of 5.1 you can enable the log at runtime!
79
+ #general_log_file = /var/log/mysql/mysql.log
80
+ #general_log = 1
81
+
82
+ log_error = /var/log/mysql/error.log
83
+
84
+ # Here you can see queries with especially long duration
85
+ #log_slow_queries = /var/log/mysql/mysql-slow.log
86
+ #long_query_time = 2
87
+ #log-queries-not-using-indexes
88
+ #
89
+ # The following can be used as easy to replay backup logs or for replication.
90
+ # note: if you are setting up a replication slave, see README.Debian about
91
+ # other settings you may need to change.
92
+ #server-id = 1
93
+ #log_bin = /var/log/mysql/mysql-bin.log
94
+ expire_logs_days = 10
95
+ max_binlog_size = 100M
96
+ #binlog_do_db = include_database_name
97
+ #binlog_ignore_db = include_database_name
98
+ #
99
+ # * InnoDB
100
+ #
101
+ # InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
102
+ # Read the manual for more InnoDB related options. There are many!
103
+ #
104
+ # * Security Features
105
+ #
106
+ # Read the manual, too, if you want chroot!
107
+ # chroot = /var/lib/mysql/
108
+ #
109
+ # For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
110
+ #
111
+ # ssl-ca=/etc/mysql/cacert.pem
112
+ # ssl-cert=/etc/mysql/server-cert.pem
113
+ # ssl-key=/etc/mysql/server-key.pem
114
+
115
+
116
+
117
+ [mysqldump]
118
+ quick
119
+ quote-names
120
+ max_allowed_packet = 16M
121
+
122
+ [mysql]
123
+ #no-auto-rehash # faster start of mysql but no tab completition
124
+
125
+ [isamchk]
126
+ key_buffer = 16M
127
+
128
+ #
129
+ # * IMPORTANT: Additional settings that can override those from this file!
130
+ # The files must end with '.cnf', otherwise they'll be ignored.
131
+ #
132
+ !includedir /etc/mysql/conf.d/
@@ -0,0 +1,11 @@
1
+ <IfModule passenger_module>
2
+ PassengerRoot /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/passenger-2.2.12
3
+ PassengerRuby /opt/ruby-enterprise-1.8.7-2010.01/bin/ruby
4
+
5
+ # Default value is 6 (2 is recommended for a 256 Mb of RAM VPS)
6
+ PassengerMaxPoolSize 4
7
+
8
+ # Default value is 300
9
+ PassengerPoolIdleTime 6000
10
+
11
+ </IfModule>
@@ -0,0 +1 @@
1
+ LoadModule passenger_module /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/passenger-2.2.12/ext/apache2/mod_passenger.so
@@ -0,0 +1,13 @@
1
+ #############################################################
2
+ ################### OFFICIAL UBUNTU REPOS ###################
3
+ #############################################################
4
+
5
+ ###### Ubuntu Main Repos
6
+ deb http://archive.ubuntu.com/ubuntu/ lucid main restricted universe multiverse
7
+ deb-src http://archive.ubuntu.com/ubuntu/ lucid main
8
+
9
+ ###### Ubuntu Update Repos
10
+ deb http://archive.ubuntu.com/ubuntu/ lucid-security main restricted universe multiverse
11
+ deb http://archive.ubuntu.com/ubuntu/ lucid-updates main restricted universe multiverse
12
+ deb http://archive.ubuntu.com/ubuntu/ lucid-proposed main restricted universe multiverse
13
+ deb http://archive.ubuntu.com/ubuntu/ lucid-backports main restricted universe multiverse
metadata CHANGED
@@ -1,21 +1,22 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: provizioning
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
4
+ hash: 31
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
- - 0
9
8
  - 1
10
- version: 0.0.1
9
+ - 2
10
+ version: 0.1.2
11
11
  platform: ruby
12
12
  authors:
13
+ - season
13
14
  - Victor Castell
14
15
  autorequire:
15
16
  bindir: bin
16
17
  cert_chain: []
17
18
 
18
- date: 2010-09-13 00:00:00 +02:00
19
+ date: 2010-12-09 00:00:00 +01:00
19
20
  default_executable: provizion
20
21
  dependencies: []
21
22
 
@@ -25,17 +26,51 @@ executables:
25
26
  - provizion
26
27
  extensions: []
27
28
 
28
- extra_rdoc_files: []
29
-
29
+ extra_rdoc_files:
30
+ - README
30
31
  files:
32
+ - lib/policies/chef-client.rb
33
+ - lib/policies/lamp.rb
34
+ - lib/policies/passenger.rb
35
+ - lib/provizioning.rb
36
+ - lib/recipes/apache.rb
37
+ - lib/recipes/apache_conf.rb
38
+ - lib/recipes/bundler.rb
39
+ - lib/recipes/chef_client.rb
40
+ - lib/recipes/curl.rb
41
+ - lib/recipes/essential.rb
42
+ - lib/recipes/git.rb
43
+ - lib/recipes/imagemagick.rb
44
+ - lib/recipes/mailserver.rb
45
+ - lib/recipes/memcached.rb
46
+ - lib/recipes/mysql.rb
47
+ - lib/recipes/nginx.rb
48
+ - lib/recipes/nginx/init.d
49
+ - lib/recipes/passenger.rb
50
+ - lib/recipes/php.rb
51
+ - lib/recipes/postgresql.rb
52
+ - lib/recipes/ruby_enterprise.rb
53
+ - lib/recipes/rvm.rb
54
+ - lib/recipes/sources.rb
55
+ - lib/recipes/subversion.rb
56
+ - lib/recipes/syslog.rb
57
+ - lib/recipes/ufw.rb
58
+ - lib/recipes/vim.rb
59
+ - lib/recipes/webmin.rb
60
+ - lib/templates/apache.conf.erb
61
+ - lib/templates/my.cnf
62
+ - lib/templates/passenger.conf
63
+ - lib/templates/passenger.load
64
+ - lib/templates/sources.list
65
+ - README
31
66
  - bin/provizion
32
67
  has_rdoc: true
33
68
  homepage: http://github.com/seasonlabs/provizioning
34
- licenses:
35
- - MIT
36
- post_install_message:
37
- rdoc_options: []
69
+ licenses: []
38
70
 
71
+ post_install_message:
72
+ rdoc_options:
73
+ - --charset=UTF-8
39
74
  require_paths:
40
75
  - lib
41
76
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -43,23 +78,19 @@ required_ruby_version: !ruby/object:Gem::Requirement
43
78
  requirements:
44
79
  - - ">="
45
80
  - !ruby/object:Gem::Version
46
- hash: 57
81
+ hash: 3
47
82
  segments:
48
- - 1
49
- - 8
50
- - 7
51
- version: 1.8.7
83
+ - 0
84
+ version: "0"
52
85
  required_rubygems_version: !ruby/object:Gem::Requirement
53
86
  none: false
54
87
  requirements:
55
88
  - - ">="
56
89
  - !ruby/object:Gem::Version
57
- hash: 23
90
+ hash: 3
58
91
  segments:
59
- - 1
60
- - 3
61
- - 6
62
- version: 1.3.6
92
+ - 0
93
+ version: "0"
63
94
  requirements: []
64
95
 
65
96
  rubyforge_project: