deprec 1.9.3 → 2.0.0
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/CHANGELOG +280 -0
- data/COPYING +19 -0
- data/LICENSE +339 -0
- data/README +152 -0
- data/THANKS +17 -0
- data/bin/depify +128 -0
- data/docs/EXAMPLE-installing_tracks.txt +41 -0
- data/docs/README.nagios +22 -0
- data/docs/README.rails +17 -0
- data/docs/config_gen_explained.txt +39 -0
- data/docs/{README.quickstart → deprec-1.x/deprec-1.x.quickstart} +4 -1
- data/docs/{building_edge_capistrano.txt → deprec-1.x/notes.txt} +6 -3
- data/docs/old/deprec_banner.gif +0 -0
- data/docs/windows_linux.txt +350 -0
- data/docs/xen/traffic_monitoring_with_vnstat.txt +95 -0
- data/docs/xen/xen-tools-notes.txt +31 -0
- data/docs/xen/xen_on_hardy.txt +39 -0
- data/lib/deprec.rb +8 -1
- data/lib/deprec/capistrano_extensions.rb +442 -0
- data/lib/deprec/recipes.rb +50 -233
- data/lib/deprec/recipes/aoe.rb +79 -0
- data/lib/deprec/recipes/app/mongrel.rb +213 -0
- data/lib/deprec/recipes/app/passenger.rb +197 -0
- data/lib/deprec/recipes/apt_mirror.rb +99 -0
- data/lib/deprec/recipes/ar_sendmail.rb +67 -0
- data/lib/deprec/recipes/canonical.rb +68 -0
- data/lib/deprec/recipes/db/mysql.rb +144 -0
- data/lib/deprec/recipes/db/postgresql.rb +104 -0
- data/lib/deprec/recipes/db/sqlite.rb +37 -0
- data/lib/deprec/recipes/ddclient.rb +51 -0
- data/lib/deprec/recipes/deprec.rb +199 -0
- data/lib/deprec/recipes/deprecated.rb +71 -0
- data/lib/deprec/recipes/example.rb +115 -0
- data/lib/deprec/recipes/git.rb +97 -0
- data/lib/deprec/recipes/gitosis.rb +48 -0
- data/lib/deprec/recipes/heartbeat.rb +138 -0
- data/lib/deprec/recipes/logrotate.rb +54 -0
- data/lib/deprec/recipes/lvm.rb +20 -0
- data/lib/deprec/recipes/memcache.rb +6 -2
- data/lib/deprec/recipes/monit.rb +143 -0
- data/lib/deprec/recipes/nagios.rb +305 -0
- data/lib/deprec/recipes/network.rb +93 -0
- data/lib/deprec/recipes/ntp.rb +103 -0
- data/lib/deprec/recipes/php.rb +58 -0
- data/lib/deprec/recipes/postfix.rb +115 -0
- data/lib/deprec/recipes/rails.rb +300 -55
- data/lib/deprec/recipes/ruby/mri.rb +55 -0
- data/lib/deprec/recipes/ruby/ree.rb +41 -0
- data/lib/deprec/recipes/sphinx.rb +86 -0
- data/lib/deprec/recipes/ssh.rb +85 -18
- data/lib/deprec/recipes/ssl.rb +55 -0
- data/lib/deprec/recipes/starling.rb +119 -0
- data/lib/deprec/recipes/svn.rb +163 -183
- data/lib/deprec/recipes/trac.rb +239 -62
- data/lib/deprec/recipes/ubuntu.rb +18 -100
- data/lib/deprec/recipes/users.rb +90 -0
- data/lib/deprec/recipes/utils.rb +58 -0
- data/lib/deprec/recipes/vnstat.rb +85 -0
- data/lib/deprec/recipes/web/apache.rb +119 -0
- data/lib/deprec/recipes/web/nginx.rb +172 -0
- data/lib/deprec/recipes/wordpress.rb +96 -0
- data/lib/deprec/recipes/wpmu.rb +103 -0
- data/lib/deprec/recipes/xen.rb +267 -0
- data/lib/deprec/recipes/xentools.rb +75 -0
- data/lib/deprec/templates/aoe/aoe-init +55 -0
- data/lib/deprec/templates/aoe/fence_aoemask +351 -0
- data/lib/deprec/templates/apache/namevirtualhosts.conf +5 -0
- data/lib/deprec/templates/apt/sources.list +18 -0
- data/lib/deprec/templates/apt_mirror/apt-mirror-cron +4 -0
- data/lib/deprec/templates/apt_mirror/mirror.list +33 -0
- data/lib/deprec/templates/ar_sendmail/logrotate.conf.erb +9 -0
- data/lib/deprec/templates/ar_sendmail/monit.conf.erb +5 -0
- data/lib/deprec/templates/ddclient/ddclient.conf.erb +11 -0
- data/lib/deprec/templates/ddclient/ddclient.erb +15 -0
- data/lib/deprec/templates/deprec/caprc.erb +14 -0
- data/lib/deprec/templates/heartbeat/authkeys.erb +2 -0
- data/lib/deprec/templates/heartbeat/ha.cf.erb +15 -0
- data/lib/deprec/templates/heartbeat/haresources.erb +1 -0
- data/lib/deprec/templates/logrotate/logrotate.conf.erb +32 -0
- data/lib/deprec/templates/mongrel/apache_vhost.erb +148 -0
- data/lib/deprec/templates/mongrel/logrotate.conf.erb +11 -0
- data/lib/deprec/{third_party/mongrel_cluster/resources/mongrel_cluster → templates/mongrel/mongrel_cluster-init-script} +19 -6
- data/lib/deprec/templates/mongrel/mongrel_cluster.yml.erb +10 -0
- data/lib/deprec/templates/mongrel/monit.conf.erb +17 -0
- data/lib/deprec/templates/mongrel/nginx_vhost.erb +41 -0
- data/lib/deprec/templates/monit/monit-init-script +104 -0
- data/lib/deprec/templates/monit/monitrc.erb +227 -0
- data/lib/deprec/templates/monit/nothing +0 -0
- data/lib/deprec/templates/mysql/create_databases.sql +20 -0
- data/lib/deprec/templates/mysql/database.yml.prod +6 -0
- data/lib/deprec/templates/mysql/database.yml.stage +6 -0
- data/lib/deprec/templates/mysql/my.cnf.erb +140 -0
- data/lib/deprec/templates/mysql/sphinx.conf.prod +542 -0
- data/lib/deprec/templates/mysql/sphinx.conf.stage +542 -0
- data/lib/deprec/templates/nagios/cgi.cfg.erb +321 -0
- data/lib/deprec/templates/nagios/check_linux_free_memory.pl +118 -0
- data/lib/deprec/templates/nagios/check_mongrel_cluster.rb +82 -0
- data/lib/deprec/templates/nagios/commands.cfg.erb +240 -0
- data/lib/deprec/templates/nagios/contacts.cfg.erb +57 -0
- data/lib/deprec/templates/nagios/hosts.cfg.erb +143 -0
- data/lib/deprec/templates/nagios/htpasswd.users +1 -0
- data/lib/deprec/templates/nagios/localhost.cfg.erb +157 -0
- data/lib/deprec/templates/nagios/nagios.cfg.erb +1274 -0
- data/lib/deprec/templates/nagios/nagios_apache_vhost.conf.erb +45 -0
- data/lib/deprec/templates/nagios/nrpe.cfg.erb +210 -0
- data/lib/deprec/templates/nagios/nrpe.xinetd.erb +16 -0
- data/lib/deprec/templates/nagios/resource.cfg.erb +34 -0
- data/lib/deprec/templates/nagios/services.cfg.erb +79 -0
- data/lib/deprec/templates/nagios/templates.cfg.erb +9 -0
- data/lib/deprec/templates/nagios/timeperiods.cfg.erb +94 -0
- data/lib/deprec/templates/network/hostname.erb +1 -0
- data/lib/deprec/templates/network/hosts.erb +2 -0
- data/lib/deprec/templates/network/interfaces.erb +18 -0
- data/lib/deprec/templates/network/resolv.conf.erb +6 -0
- data/lib/deprec/templates/nginx/logrotate.conf.erb +13 -0
- data/lib/deprec/templates/nginx/mime.types.erb +70 -0
- data/lib/deprec/templates/nginx/nginx-init-script +62 -0
- data/lib/deprec/templates/nginx/nginx.conf.erb +125 -0
- data/lib/deprec/templates/nginx/nginx.logrotate.d +12 -0
- data/lib/deprec/templates/nginx/nothing.conf +1 -0
- data/lib/deprec/templates/nginx/rails_nginx_vhost.conf.erb +41 -0
- data/lib/deprec/templates/ntp/ntp.conf.erb +42 -0
- data/lib/deprec/templates/passenger/apache_vhost.erb +21 -0
- data/lib/deprec/templates/passenger/passenger.conf.erb +21 -0
- data/lib/deprec/templates/passenger/passenger.load.erb +3 -0
- data/lib/deprec/templates/postfix/aliases.erb +3 -0
- data/lib/deprec/templates/postfix/dynamicmaps.cf.erb +8 -0
- data/lib/deprec/templates/{postfix_main.conf → postfix/main.cf.erb} +6 -8
- data/lib/deprec/templates/postfix/master.cf.erb +77 -0
- data/lib/deprec/templates/sphinx/monit.conf.erb +5 -0
- data/lib/deprec/templates/ssh/ssh_config.erb +50 -0
- data/lib/deprec/templates/ssh/sshd_config.erb +78 -0
- data/lib/deprec/templates/ssl/make-ssl-cert +138 -0
- data/lib/deprec/templates/ssl/ssl-cert-snakeoil.key +15 -0
- data/lib/deprec/templates/ssl/ssl-cert-snakeoil.pem +19 -0
- data/lib/deprec/templates/starling/monit.conf.erb +14 -0
- data/lib/deprec/templates/starling/starling-init-script.erb +71 -0
- data/lib/deprec/templates/subversion/svn.apache.vhost.erb +43 -0
- data/lib/deprec/templates/trac/apache_vhost.conf.erb +24 -0
- data/lib/deprec/templates/trac/nginx_vhost.conf.erb +26 -0
- data/lib/deprec/templates/trac/trac.ini.erb +169 -0
- data/lib/deprec/templates/trac/trac_deprec.png +0 -0
- data/lib/deprec/templates/trac/tracd-init.erb +43 -0
- data/lib/deprec/templates/trac/users.htdigest.erb +0 -0
- data/lib/deprec/templates/vnstat/config.php +57 -0
- data/lib/deprec/templates/wordpress/apache2_wordpress_vhost.conf.erb +31 -0
- data/lib/deprec/templates/wordpress/wp-config.php.erb +31 -0
- data/lib/deprec/templates/wpmu/apache_vhost.conf.erb +13 -0
- data/lib/deprec/templates/xen/network-bridge-wrapper +3 -0
- data/lib/deprec/templates/xen/xend-config.sxp.erb +195 -0
- data/lib/deprec/templates/xen/xend-init.erb +57 -0
- data/lib/deprec/templates/xen/xendomains.erb +137 -0
- data/lib/deprec/templates/xentools/15-disable-hwclock +40 -0
- data/lib/deprec/templates/xentools/40-setup-networking +145 -0
- data/lib/deprec/templates/xentools/xen-tools.conf.erb +276 -0
- data/lib/deprec/templates/xentools/xm.tmpl.erb +138 -0
- data/lib/deprec_cmd_completion.sh +26 -0
- data/lib/vmbuilder_plugins/all.rb +20 -0
- data/lib/vmbuilder_plugins/apt.rb +93 -0
- data/lib/vmbuilder_plugins/emerge.rb +76 -0
- data/lib/{deprec/third_party/vmbuilder/plugins → vmbuilder_plugins}/gem.rb +10 -17
- data/lib/{deprec/third_party/vmbuilder/plugins → vmbuilder_plugins}/std.rb +69 -19
- metadata +204 -55
- data/bin/deprec +0 -35
- data/docs/README.slicehost +0 -14
- data/docs/README.svn_trac +0 -19
- data/lib/deprec/capistrano_extensions/actor_extensions.rb +0 -89
- data/lib/deprec/capistrano_extensions/cli_extensions.rb +0 -38
- data/lib/deprec/capistrano_extensions/deprec_extensions.rb +0 -137
- data/lib/deprec/generators/deprec/USAGE +0 -11
- data/lib/deprec/generators/deprec/deprec_generator.rb +0 -24
- data/lib/deprec/generators/deprec/templates/deploy.rb +0 -90
- data/lib/deprec/generators/loader.rb +0 -20
- data/lib/deprec/recipes/apache.rb +0 -91
- data/lib/deprec/recipes/cache_svn.rb +0 -74
- data/lib/deprec/recipes/vmware.rb +0 -114
- data/lib/deprec/templates/trac.ini.erb +0 -106
- data/lib/deprec/third_party/THIRD_PARTY_README +0 -12
- data/lib/deprec/third_party/mongrel_cluster/LICENSE +0 -506
- data/lib/deprec/third_party/mongrel_cluster/recipes.rb +0 -96
- data/lib/deprec/third_party/railsmachine/LICENSE +0 -506
- data/lib/deprec/third_party/railsmachine/recipes/apache.rb +0 -92
- data/lib/deprec/third_party/railsmachine/recipes/mysql.rb +0 -73
- data/lib/deprec/third_party/railsmachine/recipes/templates/httpd-ssl.conf +0 -80
- data/lib/deprec/third_party/railsmachine/recipes/templates/httpd.conf +0 -57
- data/lib/deprec/third_party/vmbuilder/plugins.rb +0 -8
- data/lib/deprec/third_party/vmbuilder/plugins/apt.rb +0 -144
- data/resources/capistrano_include_dotfiles.patch +0 -17
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
# Copyright 2006-2008 by Mike Bailey. All rights reserved.
|
|
2
|
+
Capistrano::Configuration.instance(:must_exist).load do
|
|
3
|
+
namespace :deprec do
|
|
4
|
+
namespace :nginx do
|
|
5
|
+
|
|
6
|
+
set :nginx_server_name, nil
|
|
7
|
+
set :nginx_user, 'nginx'
|
|
8
|
+
set :nginx_group, 'nginx'
|
|
9
|
+
set :nginx_vhost_dir, '/usr/local/nginx/conf/vhosts'
|
|
10
|
+
set :nginx_client_max_body_size, '100M'
|
|
11
|
+
set :nginx_worker_processes, 4
|
|
12
|
+
|
|
13
|
+
SRC_PACKAGES[:nginx] = {
|
|
14
|
+
:url => "http://sysoev.ru/nginx/nginx-0.5.34.tar.gz",
|
|
15
|
+
:md5sum => "8f7d3efcd7caaf1f06e4d95dfaeac238 nginx-0.5.34.tar.gz",
|
|
16
|
+
:configure => './configure --sbin-path=/usr/local/sbin --with-http_ssl_module;'
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
desc "Install nginx"
|
|
20
|
+
task :install, :roles => :web do
|
|
21
|
+
install_deps
|
|
22
|
+
deprec2.download_src(SRC_PACKAGES[:nginx], src_dir)
|
|
23
|
+
deprec2.install_from_src(SRC_PACKAGES[:nginx], src_dir)
|
|
24
|
+
create_nginx_user
|
|
25
|
+
initial_config
|
|
26
|
+
activate
|
|
27
|
+
start
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# install dependencies for nginx
|
|
31
|
+
task :install_deps, :roles => :web do
|
|
32
|
+
apt.install( {:base => %w(libpcre3 libpcre3-dev libpcrecpp0 libssl-dev zlib1g-dev)}, :stable )
|
|
33
|
+
# do we need libgcrypt11-dev?
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
task :create_nginx_user, :roles => :web do
|
|
37
|
+
deprec2.groupadd(nginx_group)
|
|
38
|
+
deprec2.useradd(nginx_user, :group => nginx_group, :homedir => false)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
SYSTEM_CONFIG_FILES[:nginx] = [
|
|
42
|
+
|
|
43
|
+
{:template => 'nginx-init-script',
|
|
44
|
+
:path => '/etc/init.d/nginx',
|
|
45
|
+
:mode => 0755,
|
|
46
|
+
:owner => 'root:root'},
|
|
47
|
+
|
|
48
|
+
{:template => 'nginx.conf.erb',
|
|
49
|
+
:path => "/usr/local/nginx/conf/nginx.conf",
|
|
50
|
+
:mode => 0644,
|
|
51
|
+
:owner => 'root:root'},
|
|
52
|
+
|
|
53
|
+
{:template => 'mime.types.erb',
|
|
54
|
+
:path => "/usr/local/nginx/conf/mime.types",
|
|
55
|
+
:mode => 0644,
|
|
56
|
+
:owner => 'root:root'},
|
|
57
|
+
|
|
58
|
+
{:template => 'nothing.conf',
|
|
59
|
+
:path => "/usr/local/nginx/conf/vhosts/nothing.conf",
|
|
60
|
+
:mode => 0644,
|
|
61
|
+
:owner => 'root:root'}
|
|
62
|
+
]
|
|
63
|
+
|
|
64
|
+
PROJECT_CONFIG_FILES[:nginx] = [
|
|
65
|
+
|
|
66
|
+
{:template => 'logrotate.conf.erb',
|
|
67
|
+
:path => "logrotate.conf",
|
|
68
|
+
:mode => 0644,
|
|
69
|
+
:owner => 'root:root'}
|
|
70
|
+
]
|
|
71
|
+
|
|
72
|
+
task :initial_config, :roles => :web do
|
|
73
|
+
SYSTEM_CONFIG_FILES[:nginx].each do |file|
|
|
74
|
+
deprec2.render_template(:nginx, file.merge(:remote => true))
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
desc <<-DESC
|
|
79
|
+
Generate nginx config from template. Note that this does not
|
|
80
|
+
push the config to the server, it merely generates required
|
|
81
|
+
configuration files. These should be kept under source control.
|
|
82
|
+
The can be pushed to the server with the :config task.
|
|
83
|
+
DESC
|
|
84
|
+
task :config_gen do
|
|
85
|
+
SYSTEM_CONFIG_FILES[:nginx].each do |file|
|
|
86
|
+
deprec2.render_template(:nginx, file)
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
desc "Generate config files for rails app."
|
|
91
|
+
task :config_gen_project do
|
|
92
|
+
PROJECT_CONFIG_FILES[:nginx].each do |file|
|
|
93
|
+
deprec2.render_template(:nginx, file)
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
desc "Push nginx config files to server"
|
|
98
|
+
task :config, :roles => :web do
|
|
99
|
+
deprec2.push_configs(:nginx, SYSTEM_CONFIG_FILES[:nginx])
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
desc "Push out config files for rails app."
|
|
103
|
+
task :config_project, :roles => :web do
|
|
104
|
+
deprec2.push_configs(:nginx, PROJECT_CONFIG_FILES[:nginx])
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
desc <<-DESC
|
|
108
|
+
Activate nginx start scripts on server.
|
|
109
|
+
Setup server to start nginx on boot.
|
|
110
|
+
DESC
|
|
111
|
+
task :activate, :roles => :web do
|
|
112
|
+
activate_system
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
task :activate_system, :roles => :web do
|
|
116
|
+
send(run_method, "update-rc.d nginx defaults")
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
desc <<-DESC
|
|
120
|
+
Dectivate nginx start scripts on server.
|
|
121
|
+
Setup server to start nginx on boot.
|
|
122
|
+
DESC
|
|
123
|
+
task :deactivate, :roles => :web do
|
|
124
|
+
send(run_method, "update-rc.d -f nginx remove")
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
# Control
|
|
128
|
+
|
|
129
|
+
desc "Start Nginx"
|
|
130
|
+
task :start, :roles => :web do
|
|
131
|
+
# Nginx returns error code if you try to start it when it's already running
|
|
132
|
+
# We don't want this to kill Capistrano.
|
|
133
|
+
send(run_method, "/etc/init.d/nginx start; exit 0")
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
desc "Stop Nginx"
|
|
137
|
+
task :stop, :roles => :web do
|
|
138
|
+
# Nginx returns error code if you try to stop when it's not running
|
|
139
|
+
# We don't want this to kill Capistrano.
|
|
140
|
+
send(run_method, "/etc/init.d/nginx stop; exit 0")
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
desc "Restart Nginx"
|
|
144
|
+
task :restart, :roles => :web do
|
|
145
|
+
stop
|
|
146
|
+
start
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
desc "Reload Nginx"
|
|
150
|
+
task :reload, :roles => :web do
|
|
151
|
+
# Nginx returns error code if you try to reload when it's not running
|
|
152
|
+
# We don't want this to kill Capistrano.
|
|
153
|
+
send(run_method, "/etc/init.d/nginx reload; exit 0")
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
task :backup, :roles => :web do
|
|
157
|
+
# there's nothing to backup for nginx
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
task :restore, :roles => :web do
|
|
161
|
+
# there's nothing to store for nginx
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
# Helper task to get rid of pesky "it works" page - not called by deprec tasks
|
|
165
|
+
task :rename_index_page, :roles => :web do
|
|
166
|
+
index_file = '/usr/local/nginx/html/index.html'
|
|
167
|
+
sudo "test -f #{index_file} && sudo mv #{index_file} #{index_file}.orig || exit 0"
|
|
168
|
+
end
|
|
169
|
+
|
|
170
|
+
end
|
|
171
|
+
end
|
|
172
|
+
end
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# Copyright 2006-2008 by Mike Bailey. All rights reserved.
|
|
2
|
+
Capistrano::Configuration.instance(:must_exist).load do
|
|
3
|
+
|
|
4
|
+
require 'digest'
|
|
5
|
+
|
|
6
|
+
set :application, 'wordpress'
|
|
7
|
+
set(:wordpress_domain) { Capistrano::CLI.ui.ask 'Enter domain wordpress will be served on' }
|
|
8
|
+
set :db_name, 'wordpress'
|
|
9
|
+
set :db_user, 'wordpress'
|
|
10
|
+
set(:db_pass) { Capistrano::CLI.ui.ask 'Enter db password for wordpress' }
|
|
11
|
+
set(:db_host) { Capistrano::CLI.ui.ask 'Enter db hostname for wordpress' }
|
|
12
|
+
set :db_charset, 'utf8'
|
|
13
|
+
set :db_collate, ''
|
|
14
|
+
|
|
15
|
+
set(:auth_key) { Digest::SHA1.hexdigest srand.to_s }
|
|
16
|
+
set(:secure_auth_key) { Digest::SHA1.hexdigest srand.to_s }
|
|
17
|
+
set(:logged_in_key) { Digest::SHA1.hexdigest srand.to_s }
|
|
18
|
+
|
|
19
|
+
set(:wordpress_install_dir) { "#{deploy_to}/public" }
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
namespace :deprec do
|
|
23
|
+
namespace :wordpress do
|
|
24
|
+
|
|
25
|
+
SRC_PACKAGES[:wordpress] =
|
|
26
|
+
{
|
|
27
|
+
:url => "http://wordpress.org/latest.tar.gz",
|
|
28
|
+
:dir => 'wordpress'
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
desc "Install Wordpress"
|
|
32
|
+
task :install do
|
|
33
|
+
install_deps unless ENV['SKIP_DEPS'] # save time by skipping deps (when reinstalling)
|
|
34
|
+
deprec2.download_src(SRC_PACKAGES[:wordpress], src_dir)
|
|
35
|
+
deprec2.unpack_src(SRC_PACKAGES[:wordpress], src_dir)
|
|
36
|
+
deprec2.mkdir wordpress_install_dir, :via => :sudo
|
|
37
|
+
sudo "cp -r #{src_dir}/wordpress/* #{wordpress_install_dir}/"
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
task :install_deps do
|
|
41
|
+
top.deprec.apache.install
|
|
42
|
+
top.deprec.php.install
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
PROJECT_CONFIG_FILES[:wordpress] = [
|
|
46
|
+
|
|
47
|
+
{:template => "wp-config.php.erb",
|
|
48
|
+
:path => 'wp-config.php',
|
|
49
|
+
:mode => 0755,
|
|
50
|
+
:owner => 'root:root'},
|
|
51
|
+
|
|
52
|
+
{:template => "apache2_wordpress_vhost.conf.erb",
|
|
53
|
+
:path => 'apache2_wordpress_vhost.conf',
|
|
54
|
+
:mode => 0755,
|
|
55
|
+
:owner => 'root:root'}
|
|
56
|
+
|
|
57
|
+
]
|
|
58
|
+
|
|
59
|
+
desc "Generate configuration file(s) for mongrel from template(s)"
|
|
60
|
+
task :config_gen do
|
|
61
|
+
config_gen_project
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
task :config_gen_project do
|
|
65
|
+
PROJECT_CONFIG_FILES[:wordpress].each do |file|
|
|
66
|
+
deprec2.render_template(:wordpress, file)
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
desc "Push wordpress config files to server"
|
|
71
|
+
task :config, :roles => :wordpress do
|
|
72
|
+
config_project
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
task :config_project, :roles => :wordpress do
|
|
76
|
+
deprec2.push_configs(:wordpress, PROJECT_CONFIG_FILES[:wordpress])
|
|
77
|
+
sudo "ln -sf #{deploy_to}/wordpress/wp-config.php #{wordpress_install_dir}/wp-config.php"
|
|
78
|
+
sudo "ln -sf #{deploy_to}/wordpress/apache2_wordpress_vhost.conf #{apache_vhost_dir}/#{application}.conf"
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
desc <<-EOF
|
|
82
|
+
Create a database for WordPress on your web server, as well as
|
|
83
|
+
a MySQL user who has all privileges for accessing and modifying it.
|
|
84
|
+
EOF
|
|
85
|
+
task :create_database, :roles => lambda { db_host } do
|
|
86
|
+
run <<-EOF
|
|
87
|
+
mysql -u root -e 'create database #{DB_NAME}'
|
|
88
|
+
mysql -u root -e 'grant all on #{DB_NAME}.* to '#{DB_USER}'@'%' identified by '#{DB_PASSWORD}'
|
|
89
|
+
mysql -u root -e 'flush privileges'
|
|
90
|
+
EOF
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
end
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# Copyright 2006-2008 by Mike Bailey. All rights reserved.
|
|
2
|
+
Capistrano::Configuration.instance(:must_exist).load do
|
|
3
|
+
|
|
4
|
+
require 'digest'
|
|
5
|
+
|
|
6
|
+
set :wpmu_root, '/var/www/wpmu'
|
|
7
|
+
set(:wpmu_domain) { Capistrano::CLI.ui.ask 'Enter domain wordpress will be served on' }
|
|
8
|
+
|
|
9
|
+
namespace :deprec do
|
|
10
|
+
namespace :wpmu do
|
|
11
|
+
|
|
12
|
+
SRC_PACKAGES[:wpmu] =
|
|
13
|
+
{
|
|
14
|
+
:url => "http://mu.wordpress.org/latest.tar.gz",
|
|
15
|
+
:dir => 'wordpress-mu'
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
desc "Install Wordpress"
|
|
19
|
+
task :install, :roles => :wpmu do
|
|
20
|
+
install_deps
|
|
21
|
+
deprec2.download_src(SRC_PACKAGES[:wpmu], src_dir)
|
|
22
|
+
deprec2.unpack_src(SRC_PACKAGES[:wpmu], src_dir)
|
|
23
|
+
sudo "test -d #{wpmu_root} && #{sudo} rm -fr #{wpmu_root}; exit 0;"
|
|
24
|
+
sudo "mv #{src_dir}/wordpress-mu #{wpmu_root}"
|
|
25
|
+
initial_config
|
|
26
|
+
sudo "a2ensite wpmu"
|
|
27
|
+
top.deprec.apache.reload
|
|
28
|
+
manual_instructions
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
task :manual_instructions do
|
|
32
|
+
puts <<-DESC
|
|
33
|
+
|
|
34
|
+
Run something like the following mysql commands on your datbase server:
|
|
35
|
+
|
|
36
|
+
drop database wpmu;
|
|
37
|
+
create database wpmu;
|
|
38
|
+
grant all on wpmu.* to 'wpmu'@'%' identified by 'wpmu';
|
|
39
|
+
flush privileges;
|
|
40
|
+
|
|
41
|
+
Then run:
|
|
42
|
+
|
|
43
|
+
cap deprec:wpmu:make_insecure
|
|
44
|
+
|
|
45
|
+
Setup database access via the webpage at:
|
|
46
|
+
|
|
47
|
+
http://#{wpmu_domain}/
|
|
48
|
+
|
|
49
|
+
Then run:
|
|
50
|
+
|
|
51
|
+
cap deprec:wpmu:make_secure
|
|
52
|
+
|
|
53
|
+
DESC
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
task :install_deps, :roles => :wpmu do
|
|
57
|
+
top.deprec.apache.install
|
|
58
|
+
sudo "a2enmod rewrite"
|
|
59
|
+
top.deprec.php.install
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
PROJECT_CONFIG_FILES[:wpmu] = [
|
|
63
|
+
|
|
64
|
+
{:template => "apache_vhost.conf.erb",
|
|
65
|
+
:path => '/etc/apache2/sites-available/wpmu',
|
|
66
|
+
:mode => 0755,
|
|
67
|
+
:owner => 'root:root'}
|
|
68
|
+
|
|
69
|
+
]
|
|
70
|
+
|
|
71
|
+
desc "Generate configuration file(s) for wpmu from template(s)"
|
|
72
|
+
task :config_gen do
|
|
73
|
+
PROJECT_CONFIG_FILES[:wpmu].each do |file|
|
|
74
|
+
deprec2.render_template(:wpmu, file)
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
desc "Push wordpress config files to server"
|
|
79
|
+
task :config, :roles => :wpmu do
|
|
80
|
+
deprec2.push_configs(:wpmu, SYSTEM_CONFIG_FILES[:wpmu])
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
# Push direct to remote
|
|
84
|
+
task :initial_config, :roles => :wpmu do
|
|
85
|
+
PROJECT_CONFIG_FILES[:wpmu].each do |file|
|
|
86
|
+
deprec2.render_template(:wpmu, file.merge(:remote => true))
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
# Set permissions to allow wpmu to write config files
|
|
91
|
+
task :make_insecure, :roles => :wpmu do
|
|
92
|
+
sudo "chmod 777 #{wpmu_root} #{wpmu_root}/wp-content"
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
# Reverse the previous command
|
|
96
|
+
task :make_secure, :roles => :wpmu do
|
|
97
|
+
sudo "chmod 755 #{wpmu_root} #{wpmu_root}/wp-content"
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
end
|
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
# Copyright 2006-2008 by Mike Bailey. All rights reserved.
|
|
2
|
+
Capistrano::Configuration.instance(:must_exist).load do
|
|
3
|
+
namespace :deprec do
|
|
4
|
+
namespace :xen do
|
|
5
|
+
|
|
6
|
+
# Config variables for migration
|
|
7
|
+
default(:xen_slice) { Capistrano::CLI.ui.ask("Slice name") }
|
|
8
|
+
default(:xen_old_host) { Capistrano::CLI.ui.ask("Old Xen host") }
|
|
9
|
+
default(:xen_new_host) { Capistrano::CLI.ui.ask("New Xen host") }
|
|
10
|
+
set(:xen_disk_size) { Capistrano::CLI.ui.ask("Disk size (GB)") }
|
|
11
|
+
set(:xen_swap_size) { Capistrano::CLI.ui.ask("Swap size (GB)") }
|
|
12
|
+
|
|
13
|
+
# ref: http://www.eadz.co.nz/blog/article/xen-gutsy.html
|
|
14
|
+
|
|
15
|
+
desc "Install Xen"
|
|
16
|
+
task :install, :roles => :dom0 do
|
|
17
|
+
install_deps
|
|
18
|
+
disable_apparmour
|
|
19
|
+
disable_tls
|
|
20
|
+
enable_hardy_domu
|
|
21
|
+
initial_config
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
task :install_deps, :roles => :dom0 do
|
|
25
|
+
# for amd64 version of ubuntu 7.10
|
|
26
|
+
apt.install( {:base => %w(linux-image-xen bridge-utils libxen3.1 python-xen-3.1 xen-docs-3.1 xen-hypervisor-3.1 xen-ioemu-3.1 xen-tools xen-utils-3.1 lvm2)}, :stable )
|
|
27
|
+
# alternatively, for x86 version of ubuntu:
|
|
28
|
+
# apt-get install ubuntu-xen-server libc6-xen lvm2
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
task :disable_apparmour, :roles => :dom0 do
|
|
32
|
+
sudo '/etc/init.d/apparmor stop'
|
|
33
|
+
sudo 'update-rc.d -f apparmor remove'
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
task :disable_tls, :roles => :dom0 do
|
|
37
|
+
sudo 'mv /lib/tls /lib/tls.disabled'
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
SYSTEM_CONFIG_FILES[:xen] = [
|
|
41
|
+
|
|
42
|
+
{:template => "xend-config.sxp.erb",
|
|
43
|
+
:path => '/etc/xen/xend-config.sxp',
|
|
44
|
+
:mode => 0644,
|
|
45
|
+
:owner => 'root:root'},
|
|
46
|
+
|
|
47
|
+
{:template => "xendomains.erb",
|
|
48
|
+
:path => '/etc/default/xendomains',
|
|
49
|
+
:mode => 0755,
|
|
50
|
+
:owner => 'root:root'},
|
|
51
|
+
|
|
52
|
+
# This gives you a second network bridge on second ethernet device
|
|
53
|
+
{:template => "network-bridge-wrapper",
|
|
54
|
+
:path => '/etc/xen/scripts/network-bridge-wrapper',
|
|
55
|
+
:mode => 0755,
|
|
56
|
+
:owner => 'root:root'},
|
|
57
|
+
|
|
58
|
+
# Bugfix for gutsy - xendomains fails to shut down domains on system shutdown
|
|
59
|
+
{:template => "xend-init.erb",
|
|
60
|
+
:path => '/etc/init.d/xend',
|
|
61
|
+
:mode => 0755,
|
|
62
|
+
:owner => 'root:root'}
|
|
63
|
+
|
|
64
|
+
]
|
|
65
|
+
|
|
66
|
+
desc "Push Xen config files to server"
|
|
67
|
+
task :initial_config, :roles => :dom0 do
|
|
68
|
+
# Non-standard! We're pushing these straight out
|
|
69
|
+
SYSTEM_CONFIG_FILES[:xen].each do |file|
|
|
70
|
+
deprec2.render_template(:xen, file.merge(:remote => true))
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
desc "Generate configuration file(s) for Xen from template(s)"
|
|
75
|
+
task :config_gen do
|
|
76
|
+
SYSTEM_CONFIG_FILES[:xen].each do |file|
|
|
77
|
+
deprec2.render_template(:xen, file)
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
desc "Push Xen config files to server"
|
|
82
|
+
task :config, :roles => :dom0 do
|
|
83
|
+
deprec2.push_configs(:xen, SYSTEM_CONFIG_FILES[:xen])
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
# Create new virtual machine
|
|
87
|
+
# xen-create-image --force --ip=192.168.1.31 --hostname=x1 --mac=00:16:3E:11:12:31
|
|
88
|
+
|
|
89
|
+
# Start a virtual image (and open console to it)
|
|
90
|
+
# xm create -c /etc/xen/x1.cfg
|
|
91
|
+
|
|
92
|
+
desc "Start Xen"
|
|
93
|
+
task :start, :roles => :dom0 do
|
|
94
|
+
send(run_method, "/etc/init.d/xend start")
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
desc "Stop Xen"
|
|
98
|
+
task :stop, :roles => :dom0 do
|
|
99
|
+
send(run_method, "/etc/init.d/xend stop")
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
desc "Restart Xen"
|
|
103
|
+
task :restart, :roles => :dom0 do
|
|
104
|
+
send(run_method, "/etc/init.d/xend restart")
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
desc "Reload Xen"
|
|
108
|
+
task :reload, :roles => :dom0 do
|
|
109
|
+
send(run_method, "/etc/init.d/xend reload")
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
task :list, :roles => :dom0 do
|
|
113
|
+
sudo "xm list"
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
task :info, :roles => :dom0 do
|
|
117
|
+
sudo "xm info"
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
desc "Migrate a slice on one Xen host to another. Slice is stopped, disk is tar'd up and transferred to new host."
|
|
121
|
+
task :migrate do
|
|
122
|
+
|
|
123
|
+
# Get user input for these values
|
|
124
|
+
xen_old_host && xen_new_host && xen_disk_size && xen_swap_size && xen_slice
|
|
125
|
+
|
|
126
|
+
# copy_disk
|
|
127
|
+
copy_slice_config
|
|
128
|
+
create_lvm_disks
|
|
129
|
+
build_slice_from_tarball
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
task :copy_disk do
|
|
133
|
+
mnt_dir = "/mnt/#{xen_slice}-disk"
|
|
134
|
+
tarball = "/tmp/#{xen_slice}-disk.tar"
|
|
135
|
+
lvm_disk = "/dev/vm_local/#{xen_slice}-disk"
|
|
136
|
+
|
|
137
|
+
# Shutdown slice
|
|
138
|
+
sudo "xm list | grep #{xen_slice} && #{sudo} xm shutdown #{xen_slice} && sleep 10; exit 0", :hosts => xen_old_host
|
|
139
|
+
|
|
140
|
+
# Tar up disk partition
|
|
141
|
+
sudo "test -d #{mnt_dir} || #{sudo} mkdir #{mnt_dir}; exit 0", :hosts => xen_old_host
|
|
142
|
+
sudo "mount | grep #{mnt_dir} || #{sudo} mount -t auto #{lvm_disk} #{mnt_dir}; exit 0", :hosts => xen_old_host
|
|
143
|
+
sudo "sh -c 'cd #{mnt_dir} && tar cfp #{tarball} *'", :hosts => xen_old_host
|
|
144
|
+
sudo "umount #{mnt_dir}", :hosts => xen_old_host
|
|
145
|
+
sudo "rmdir #{mnt_dir}", :hosts => xen_old_host
|
|
146
|
+
|
|
147
|
+
# start slice again if necessary
|
|
148
|
+
# xm create ${SLICE}.cfg
|
|
149
|
+
|
|
150
|
+
# copy to other server
|
|
151
|
+
run "scp #{tarball} #{xen_new_host}:/tmp/", :hosts => xen_old_host
|
|
152
|
+
|
|
153
|
+
# clean up tarball
|
|
154
|
+
sudo "rm #{tarball}", :hosts => xen_old_host
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
task :copy_slice_config do
|
|
158
|
+
run "scp /etc/xen/#{xen_slice}.cfg #{xen_new_host}:", :hosts => xen_old_host
|
|
159
|
+
sudo "test -f /etc/xen/#{xen_slice}.cfg || #{sudo} mv #{xen_slice}.cfg /etc/xen/", :hosts => xen_new_host
|
|
160
|
+
end
|
|
161
|
+
|
|
162
|
+
task :create_lvm_disks do
|
|
163
|
+
xen_new_host
|
|
164
|
+
# create lvm disks on new host
|
|
165
|
+
disks = {"#{xen_slice}-disk" => xen_disk_size, "#{xen_slice}-swap" => xen_swap_size}
|
|
166
|
+
disks.each { |disk, size|
|
|
167
|
+
puts "Creating #{disk} (#{size} GB)"
|
|
168
|
+
sudo "lvcreate -L #{size}G -n #{disk} vm_local", :hosts => xen_new_host
|
|
169
|
+
sudo "mkfs.ext3 /dev/vm_local/#{disk}", :hosts => xen_new_host
|
|
170
|
+
}
|
|
171
|
+
end
|
|
172
|
+
|
|
173
|
+
task :build_slice_from_tarball do
|
|
174
|
+
mnt_dir = "/mnt/#{xen_slice}-disk"
|
|
175
|
+
tarball = "/tmp/#{xen_slice}-disk.tar"
|
|
176
|
+
lvm_disk = "/dev/vm_local/#{xen_slice}-disk"
|
|
177
|
+
|
|
178
|
+
# untar archive into lvm disk
|
|
179
|
+
sudo "test -d #{mnt_dir} || #{sudo} mkdir #{mnt_dir}; exit 0", :hosts => xen_new_host
|
|
180
|
+
sudo "mount | grep #{mnt_dir} || #{sudo} mount -t auto #{lvm_disk} #{mnt_dir}; exit 0", :hosts => xen_new_host
|
|
181
|
+
sudo "sh -c 'cd #{mnt_dir} && tar xf #{tarball}'", :hosts => xen_new_host
|
|
182
|
+
sudo "umount #{mnt_dir}", :hosts => xen_new_host
|
|
183
|
+
sudo "rmdir #{mnt_dir}", :hosts => xen_new_host
|
|
184
|
+
end
|
|
185
|
+
|
|
186
|
+
desc "Enable hardy heron domU's on gutsy dom0. (Note required on hardy)"
|
|
187
|
+
task :enable_hardy_domu, :roles => :dom0 do
|
|
188
|
+
# Note, hardy keeps debootrap in /usr/share/debootstrap/scripts/
|
|
189
|
+
# create debootstrap symlink
|
|
190
|
+
sudo "ln -sf /usr/lib/debootstrap/scripts/gutsy /usr/lib/debootstrap/scripts/hardy"
|
|
191
|
+
# link xen-tools hooks
|
|
192
|
+
sudo "ln -sf /usr/lib/xen-tools/edgy.d /usr/lib/xen-tools/hardy.d"
|
|
193
|
+
end
|
|
194
|
+
|
|
195
|
+
task :touch_hwclock do
|
|
196
|
+
sudo "touch /etc/init.d/hwclock.sh"
|
|
197
|
+
end
|
|
198
|
+
|
|
199
|
+
end
|
|
200
|
+
|
|
201
|
+
end
|
|
202
|
+
end
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
# Stop the 'incrementing ethX problem'
|
|
206
|
+
#
|
|
207
|
+
# Ubuntu stores the MAC addresses of the NICs it sees. If you change an ethernet card (real or virtual)
|
|
208
|
+
# it will assign is a new ethX address. That's why you'll sometimes find eth2 but no eth1.
|
|
209
|
+
# Your domU's should have a MAC address assigned in their config file but if you come across this problem,
|
|
210
|
+
# fix it with this:
|
|
211
|
+
#
|
|
212
|
+
# sudo rm /etc/udev/rules.d/70-persistent-net.rules
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
# ubuntu bugs
|
|
217
|
+
#
|
|
218
|
+
# check if they're fixed in hardy heron
|
|
219
|
+
|
|
220
|
+
# 1: domains are not shut down on system shutdown
|
|
221
|
+
# cause: order that init scripts get called
|
|
222
|
+
# fix: call /etc/init.d/xendomains from /etc/init.d/xend script
|
|
223
|
+
|
|
224
|
+
# stop)
|
|
225
|
+
# /etc/init.d/xendomains stop # make sure domains are shut down
|
|
226
|
+
# xend stop
|
|
227
|
+
# ;;
|
|
228
|
+
|
|
229
|
+
#
|
|
230
|
+
# Install xen on ubuntu hardy
|
|
231
|
+
#
|
|
232
|
+
# ref: http://www.howtoforge.com/ubuntu-8.04-server-install-xen-from-ubuntu-repositories
|
|
233
|
+
#
|
|
234
|
+
|
|
235
|
+
# Install Xen packages
|
|
236
|
+
# apt-get install ubuntu-xen-server
|
|
237
|
+
#
|
|
238
|
+
# Installs these:
|
|
239
|
+
#
|
|
240
|
+
# binutils binutils-static bridge-utils debootstrap libasound2 libconfig-inifiles-perl libcurl3 libdirectfb-1.0-0 libsdl1.2debian
|
|
241
|
+
# libsdl1.2debian-alsa libtext-template-perl libxen3 libxml2 linux-image-2.6.24-16-xen linux-image-xen
|
|
242
|
+
# linux-restricted-modules-2.6.24-16-xen linux-restricted-modules-common linux-restricted-modules-xen
|
|
243
|
+
# linux-ubuntu-modules-2.6.24-16-xen linux-xen nvidia-kernel-common python-dev python-xen-3.2 python2.5-dev ubuntu-xen-server
|
|
244
|
+
# xen-docs-3.2 xen-hypervisor-3.2 xen-tools xen-utils-3.2
|
|
245
|
+
|
|
246
|
+
# before/after 'uname -a'
|
|
247
|
+
#
|
|
248
|
+
# Linux bb 2.6.24-16-server #1 SMP Thu Apr 10 13:15:38 UTC 2008 x86_64 GNU/Linux
|
|
249
|
+
# Linux bb 2.6.24-16-xen #1 SMP Thu Apr 10 14:35:03 UTC 2008 x86_64 GNU/Linux
|
|
250
|
+
#
|
|
251
|
+
# Stop apparmor # XXX investigate why
|
|
252
|
+
# /etc/init.d/apparmor stop
|
|
253
|
+
# update-rc.d -f apparmor remove
|
|
254
|
+
|
|
255
|
+
# mkdir /home/xen
|
|
256
|
+
|
|
257
|
+
# edit /etc/xen-tools/xen-tools.cfg
|
|
258
|
+
|
|
259
|
+
# create image with xen-tools
|
|
260
|
+
# xen-create-image --hostname=x1 --size=2Gb --swap=256Mb --ide --ip=192.168.1.51 --memory=256Mb --install-method=debootstrap --dist=hardy
|
|
261
|
+
|
|
262
|
+
# update /etc/xen/<domain>.cfg
|
|
263
|
+
#
|
|
264
|
+
# disk = [
|
|
265
|
+
# 'tap:aio:/home/xen/domains/xen1.example.com/swap.img,hda1,w',
|
|
266
|
+
# 'tap:aio:/home/xen/domains/xen1.example.com/disk.img,hda2,w',
|
|
267
|
+
# ]
|