salted-rails 0.0.6 → 0.0.7
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.md +7 -0
- data/lib/salted-rails/config.rb +71 -55
- data/lib/salted-rails/helper_base.rb +15 -0
- data/lib/salted-rails/vagrant_helper.rb +15 -9
- data/lib/salted-rails/version.rb +1 -1
- data/pillar/capistrano/top.sls +1 -1
- data/pillar/common.sls +1 -8
- data/pillar/vagrant/top.sls +1 -1
- data/salt/apt/load_packages.sls +5 -0
- data/salt/apt/update_packages.sls +5 -0
- data/salt/bin/change_mirror.sh +10 -6
- data/salt/bin/misc_fixes.sh +26 -0
- data/salt/bin/provision +40 -3
- data/salt/ci/cruisecontrolrb.sls +17 -11
- data/salt/ci/teamcity/etc/init.d/teamcity +4 -4
- data/salt/ci/teamcity/init.sls +18 -18
- data/salt/crons/init.sls +2 -2
- data/salt/databases/init.sls +45 -14
- data/salt/databases/mysql/client.sls +1 -1
- data/salt/databases/mysql/common.sls +3 -3
- data/salt/databases/mysql/server.sls +1 -1
- data/salt/databases/packages.sls +47 -0
- data/salt/databases/phpmyadmin/etc/nginx/admin.d/phpmyadmin.conf +10 -7
- data/salt/databases/postgresql/client.sls +5 -0
- data/salt/databases/postgresql/init.sls +10 -0
- data/salt/databases/sqlite3.sls +6 -0
- data/salt/databases/sqlitebrowser.sls +4 -0
- data/salt/editors/gvim.sls +5 -1
- data/salt/editors/rubymine.sls +16 -16
- data/salt/editors/vim/init.sls +71 -2
- data/salt/editors/vim/vimrc +8 -1
- data/salt/gui/desktop.sls +9 -0
- data/salt/gui/x2go.sls +5 -0
- data/salt/lang/jenv.sls +64 -0
- data/salt/lang/php/etc/php5/fpm/pool.d/www.conf +2 -2
- data/salt/lang/phpenv.sls +82 -0
- data/salt/lang/rbenv.sls +115 -0
- data/salt/lang/ruby.sls +24 -37
- data/salt/munin/nginx.sls +3 -1
- data/salt/munin/node.sls +2 -1
- data/salt/munin/php5-fpm.sls +3 -1
- data/salt/net/hosts.sls +9 -0
- data/salt/net/ntp.sls +6 -0
- data/salt/net/ufw.sls +8 -0
- data/salt/railsapp/gems.sls +5 -3
- data/salt/railsapp/init.sls +6 -2
- data/salt/scm/bazaar.sls +10 -0
- data/salt/scm/git/gitconfig +42 -0
- data/salt/scm/git/init.sls +21 -0
- data/salt/scm/init.sls +5 -0
- data/salt/scm/mercurial.sls +10 -0
- data/salt/scm/subversion.sls +6 -0
- data/salt/{vagrant/top.sls → top.sls} +24 -9
- data/salt/utils/file.sls +19 -0
- data/salt/utils/html.sls +5 -0
- data/salt/utils/init.sls +6 -0
- data/salt/{sysutils → utils}/net.sls +4 -0
- data/salt/{sysutils → utils}/status.sls +0 -0
- data/salt/utils/tmux/home/tmux-dev +7 -0
- data/salt/utils/tmux/home/tmux.conf +89 -0
- data/salt/utils/tmux/init.sls +32 -0
- data/salt/vagrant/minion.sls +1 -1
- data/salt/www/chromium.sls +5 -0
- data/salt/www/nginx/etc/nginx/admin.d/doc.conf +7 -0
- data/salt/www/nginx/etc/nginx/admin.d/nginx_status.conf +7 -0
- data/salt/www/nginx/etc/nginx/sites-available/.gitignore +3 -0
- data/salt/www/nginx/etc/nginx/sites-available/admin.conf +47 -0
- data/salt/www/nginx/init.sls +102 -16
- data/salt/www/nginx/srv/www/admin/favicon.ico +0 -0
- data/salt/www/nginx/srv/www/admin/favicon.png +0 -0
- data/salt/www/nginx/srv/www/admin/index.php +67 -0
- data/salt/www/nginx/srv/www/admin/phpinfo.php +3 -0
- data/salt/www/nginx/srv/www/admin/robots.txt +2 -0
- data/salt/www/users.sls +0 -9
- metadata +41 -20
- data/salt/bin/fix_hostname.sh +0 -6
- data/salt/capistrano/deploy_requirements.sls +0 -5
- data/salt/capistrano/top.sls +0 -4
- data/salt/databases/client.sls +0 -18
- data/salt/databases/server.sls +0 -19
- data/salt/gui/init.sls +0 -3
- data/salt/lang/ruby.sls.bak +0 -106
- data/salt/lang/system_ruby.sls +0 -43
- data/salt/sysutils/file.sls +0 -8
- data/salt/sysutils/init.sls +0 -5
- data/salt/sysutils/tmux.sls +0 -3
- data/salt/www/admin/etc/nginx/nginx.conf +0 -53
- data/salt/www/admin/etc/nginx/sites-available/.gitignore +0 -3
- data/salt/www/admin/etc/nginx/sites-available/phpmyadmin.conf +0 -7
- data/salt/www/admin/init.sls +0 -31
data/README.md
CHANGED
|
@@ -79,6 +79,10 @@ Or for a more complicated example:
|
|
|
79
79
|
# override default domain
|
|
80
80
|
salted_config.domain = 'mydomain.com'
|
|
81
81
|
|
|
82
|
+
# load packages specified in a file (eg generated from your production system)
|
|
83
|
+
# use `dpkg --get-selections "*" > my_packages-datestamp` to generate the list
|
|
84
|
+
#salted_config.packages = 'config/my_packages-datestamp'
|
|
85
|
+
|
|
82
86
|
# Define a machine dev
|
|
83
87
|
salted_config.define('dev') do |machine_config|
|
|
84
88
|
end
|
|
@@ -101,6 +105,9 @@ Or for a more complicated example:
|
|
|
101
105
|
|
|
102
106
|
# gui also configures virtualbox for standard rather than headless mode
|
|
103
107
|
machine_config.roles <<= 'gui'
|
|
108
|
+
|
|
109
|
+
# Disable the syncing to /vagrant in digital_ocean (useful for development that is independent of local machine)
|
|
110
|
+
machine_config.sync_vagrant = false
|
|
104
111
|
end
|
|
105
112
|
|
|
106
113
|
salted_config.configure_vagrant(config)
|
data/lib/salted-rails/config.rb
CHANGED
|
@@ -7,29 +7,32 @@ require 'log4r'
|
|
|
7
7
|
module SaltedRails
|
|
8
8
|
class Config
|
|
9
9
|
|
|
10
|
-
attr_accessor :
|
|
11
|
-
attr_accessor :
|
|
12
|
-
attr_accessor :
|
|
10
|
+
attr_accessor :box
|
|
11
|
+
attr_accessor :ca_path
|
|
12
|
+
attr_accessor :copy_from_home
|
|
13
|
+
attr_accessor :admin_password
|
|
14
|
+
attr_accessor :web_password
|
|
15
|
+
attr_accessor :databases
|
|
13
16
|
attr_accessor :domain
|
|
14
|
-
attr_accessor :
|
|
15
|
-
attr_accessor :
|
|
16
|
-
attr_accessor :
|
|
17
|
+
attr_accessor :files
|
|
18
|
+
attr_accessor :forward_agent
|
|
19
|
+
attr_accessor :gems
|
|
20
|
+
attr_accessor :hostname
|
|
17
21
|
attr_accessor :logger
|
|
22
|
+
attr_accessor :machine
|
|
23
|
+
attr_accessor :machines
|
|
18
24
|
attr_accessor :memory
|
|
25
|
+
attr_accessor :mirror
|
|
26
|
+
attr_accessor :packages
|
|
19
27
|
attr_accessor :ports
|
|
20
|
-
attr_accessor :
|
|
21
|
-
attr_accessor :
|
|
28
|
+
attr_accessor :mapped_ports
|
|
29
|
+
attr_accessor :private_key_path
|
|
30
|
+
attr_accessor :rails_root
|
|
22
31
|
attr_accessor :region
|
|
23
|
-
attr_accessor :forward_agent
|
|
24
|
-
attr_accessor :files
|
|
25
|
-
attr_accessor :databases
|
|
26
32
|
attr_accessor :roles
|
|
27
|
-
attr_accessor :
|
|
28
|
-
attr_accessor :
|
|
29
|
-
attr_accessor :
|
|
30
|
-
attr_accessor :php_version
|
|
31
|
-
attr_accessor :machines
|
|
32
|
-
attr_accessor :copy_from_home
|
|
33
|
+
attr_accessor :salt_root
|
|
34
|
+
attr_accessor :sync_vagrant
|
|
35
|
+
attr_accessor :versions
|
|
33
36
|
|
|
34
37
|
def sanitize_dns_name(name)
|
|
35
38
|
dns_name = name.downcase.gsub(/[^-0-9a-z]+/,'-').sub(/^-+/, '').sub(/-+$/, '')
|
|
@@ -45,15 +48,20 @@ module SaltedRails
|
|
|
45
48
|
# see salt/vagrant/top.sls for other roles
|
|
46
49
|
@roles = %w{ app web db }
|
|
47
50
|
@domain = nil
|
|
51
|
+
@admin_password = nil
|
|
52
|
+
@web_password = nil
|
|
48
53
|
@private_key_path = nil
|
|
49
54
|
@mirror = nil
|
|
50
55
|
@memory = nil
|
|
51
56
|
@ports = [ 80, 443, 880, 3000 ]
|
|
52
|
-
@
|
|
57
|
+
@mapped_ports = { }
|
|
58
|
+
@sync_vagrant = nil
|
|
59
|
+
@box = nil
|
|
53
60
|
@ca_path = nil
|
|
54
61
|
@region = nil
|
|
55
62
|
@forward_agent = true
|
|
56
|
-
@files = [ '.ruby-version', '.java-version', '.php-version', '
|
|
63
|
+
@files = [ '.ruby-version', '.java-version', '.php-version', 'config/database.yml', 'Gemfile', 'Gemfile.lock' ].select{ |f| File.exist?(@rails_root + f) }
|
|
64
|
+
@packages = nil
|
|
57
65
|
@copy_from_home = [ ]
|
|
58
66
|
|
|
59
67
|
ENV['REMOTE_MACHINE'] = 'true'
|
|
@@ -73,12 +81,12 @@ module SaltedRails
|
|
|
73
81
|
end
|
|
74
82
|
end
|
|
75
83
|
@databases.each do |key, details|
|
|
76
|
-
@gems[details['adapter']]
|
|
84
|
+
@gems[details['adapter']] ||= true
|
|
77
85
|
end
|
|
78
86
|
|
|
79
|
-
@
|
|
80
|
-
|
|
81
|
-
@
|
|
87
|
+
@roles << 'mysql' if @gems.include?('mysql') or @gems.include?('mysql2')
|
|
88
|
+
|
|
89
|
+
@versions= { }
|
|
82
90
|
|
|
83
91
|
@machines = [ ]
|
|
84
92
|
@hostname = nil
|
|
@@ -89,7 +97,26 @@ module SaltedRails
|
|
|
89
97
|
end
|
|
90
98
|
|
|
91
99
|
def normalize
|
|
92
|
-
|
|
100
|
+
@versions['mysql'] ||= '5.5' if @roles.include?('mysql')
|
|
101
|
+
@versions['teamcity'] ||= '8.0.4' if @roles.include?('teamcity')
|
|
102
|
+
@versions['rubymine'] ||= '5.4.3' if @roles.include?('rubymine')
|
|
103
|
+
@roles << 'gui' if @roles.include?('rubymine') and not @roles.include?('gui')
|
|
104
|
+
|
|
105
|
+
%w{ ruby php java }.each do |lang|
|
|
106
|
+
version = File.open(@rails_root + ".#{lang}-version", 'r') do |f_in|
|
|
107
|
+
f_in.gets.gsub(/\s/,'')
|
|
108
|
+
end rescue nil
|
|
109
|
+
@versions[lang] ||= version if version
|
|
110
|
+
end
|
|
111
|
+
unless @versions.include?('ruby')
|
|
112
|
+
File.open(@rails_root + '.rvmrc', 'r') do |f_in|
|
|
113
|
+
while (line = f_in.gets) and not @versions.include('ruby')
|
|
114
|
+
@versions['ruby'] = $1 if line =~ /^\s*environment_id=['"]([^"'@]+)/
|
|
115
|
+
end
|
|
116
|
+
end rescue nil
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
if @memory.nil?
|
|
93
120
|
@memory = 512
|
|
94
121
|
{
|
|
95
122
|
'gui' => 1536,
|
|
@@ -99,7 +126,8 @@ module SaltedRails
|
|
|
99
126
|
@memory += extra if @roles.include?(role)
|
|
100
127
|
end
|
|
101
128
|
end
|
|
102
|
-
|
|
129
|
+
|
|
130
|
+
if @domain.nil?
|
|
103
131
|
if @hostname
|
|
104
132
|
@domain = @hostname.sub(/^[^.]*\.?/, '')
|
|
105
133
|
else
|
|
@@ -107,6 +135,7 @@ module SaltedRails
|
|
|
107
135
|
@domain = 'railsapp.test' if @domain == '.test'
|
|
108
136
|
end
|
|
109
137
|
end
|
|
138
|
+
|
|
110
139
|
if @hostname.nil? or @hostname == ''
|
|
111
140
|
if @machine == 'default'
|
|
112
141
|
@hostname = @domain
|
|
@@ -119,33 +148,15 @@ module SaltedRails
|
|
|
119
148
|
end
|
|
120
149
|
end
|
|
121
150
|
end
|
|
122
|
-
@ruby_version ||= File.open(@rails_root + '.ruby-version', 'r') do |f_in|
|
|
123
|
-
f_in.gets.gsub(/\s/,'')
|
|
124
|
-
end rescue nil
|
|
125
|
-
@ruby_version ||= File.open(@rails_root + '.rvmrc', 'r') do |f_in|
|
|
126
|
-
while !ruby_version && (line = f_in.gets)
|
|
127
|
-
ruby_version = $1 if line =~ /^\s*environment_id=['"]([^"'@]+)/
|
|
128
|
-
end
|
|
129
|
-
end rescue nil
|
|
130
|
-
@ruby_version ||= '1.9.3'
|
|
131
|
-
|
|
132
|
-
@java_version ||= File.open(@rails_root + '.java-version', 'r') do |f_in|
|
|
133
|
-
f_in.gets.gsub(/\s/,'')
|
|
134
|
-
end rescue nil
|
|
135
|
-
|
|
136
|
-
@php_version ||= File.open(@rails_root + '.php-version', 'r') do |f_in|
|
|
137
|
-
f_in.gets.gsub(/\s/,'')
|
|
138
|
-
end rescue nil
|
|
139
151
|
|
|
140
152
|
@private_key_path ||= '~/.ssh/id_rsa'
|
|
141
153
|
@mirror ||= 'auto'
|
|
142
154
|
@salt_root ||= File.dirname(__FILE__) + '/../../'
|
|
143
155
|
@ca_path ||= '/etc/ssl/certs/ca-certificates.crt'
|
|
156
|
+
@box ||= 'preciseCloud32'
|
|
144
157
|
@ca_path = nil unless File.exist?(@ca_path)
|
|
145
158
|
@region ||= 'San Francisco 1'
|
|
146
159
|
|
|
147
|
-
@machines.each {|m| m.normalize}
|
|
148
|
-
|
|
149
160
|
{
|
|
150
161
|
'teamcity' => 8111,
|
|
151
162
|
'cruisecontrolrb' => 3333
|
|
@@ -153,6 +164,9 @@ module SaltedRails
|
|
|
153
164
|
@ports << port if @roles.include?(role) and not @ports.include?(port)
|
|
154
165
|
end
|
|
155
166
|
|
|
167
|
+
@sync_vagrant = true if @sync_vagrant.nil?
|
|
168
|
+
|
|
169
|
+
@machines.each {|m| m.normalize}
|
|
156
170
|
end
|
|
157
171
|
|
|
158
172
|
def define(machine, &block)
|
|
@@ -178,21 +192,23 @@ module SaltedRails
|
|
|
178
192
|
|
|
179
193
|
def to_hash
|
|
180
194
|
{
|
|
195
|
+
'admin_password' => @admin_password,
|
|
196
|
+
'databases' => @databases,
|
|
197
|
+
'disable_vagrant_sync' => @disable_vagrant_sync,
|
|
181
198
|
'domain' => @domain,
|
|
182
|
-
'
|
|
183
|
-
'
|
|
199
|
+
'files' => @files,
|
|
200
|
+
'forward_agent' => @forward_agent,
|
|
201
|
+
'gems' => @gems,
|
|
184
202
|
'hostname' => @hostname,
|
|
203
|
+
'machine' => @machine,
|
|
204
|
+
'mapped_ports' => @mapped_ports,
|
|
185
205
|
'memory' => @memory,
|
|
186
|
-
'
|
|
206
|
+
'mirror' => @mirror,
|
|
207
|
+
'ports' => @ports,
|
|
187
208
|
'region' => @region,
|
|
188
|
-
'
|
|
189
|
-
'
|
|
190
|
-
'
|
|
191
|
-
'gems' => @gems,
|
|
192
|
-
'ruby_version' => @ruby_version,
|
|
193
|
-
'java_version' => @java_version,
|
|
194
|
-
'php_version' => @php_version,
|
|
195
|
-
'roles' => @roles
|
|
209
|
+
'roles' => @roles,
|
|
210
|
+
'user_password' => @user_password,
|
|
211
|
+
'versions' => @versions
|
|
196
212
|
}
|
|
197
213
|
end
|
|
198
214
|
|
|
@@ -59,6 +59,21 @@ module SaltedRails
|
|
|
59
59
|
end
|
|
60
60
|
FileUtils.cp(@config.rails_root + f, dest)
|
|
61
61
|
end
|
|
62
|
+
dest = salt_dir + 'packages.txt'
|
|
63
|
+
if @config.packages
|
|
64
|
+
src = @config.packages
|
|
65
|
+
src = @config.rails_root + src unless src =~ /^\//
|
|
66
|
+
dir = File.dirname(dest)
|
|
67
|
+
unless File.directory? dir
|
|
68
|
+
FileUtils.mkdir_p dir
|
|
69
|
+
end
|
|
70
|
+
if !File.exist?(dest) or (File.mtime(src) > File.mtime(dest))
|
|
71
|
+
@config.logger.info "SaltedRails: Copying #{src} to #{dest}"
|
|
72
|
+
FileUtils.cp(src, dest)
|
|
73
|
+
end
|
|
74
|
+
else
|
|
75
|
+
FileUtils.rm_f dest
|
|
76
|
+
end
|
|
62
77
|
@config.copy_from_home.each do |f|
|
|
63
78
|
dest = salt_dir + "home/" + f
|
|
64
79
|
dir = File.dirname(dest)
|
|
@@ -35,9 +35,9 @@ module SaltedRails
|
|
|
35
35
|
end
|
|
36
36
|
end
|
|
37
37
|
# create_empty_custom_files
|
|
38
|
-
|
|
39
|
-
fix_hostname(vagrant_config)
|
|
38
|
+
misc_fixes(vagrant_config)
|
|
40
39
|
configure_salt(vagrant_config)
|
|
40
|
+
pillarize_application_configuration
|
|
41
41
|
end
|
|
42
42
|
|
|
43
43
|
def configure_ubuntu_mirror(vagrant_config, config = @config)
|
|
@@ -53,9 +53,9 @@ module SaltedRails
|
|
|
53
53
|
vagrant_config.vm.hostname = config.hostname
|
|
54
54
|
end
|
|
55
55
|
|
|
56
|
-
def
|
|
56
|
+
def misc_fixes(vagrant_config, config = @config)
|
|
57
57
|
vagrant_config.vm.provision "shell" do |s|
|
|
58
|
-
s.path = config.salt_root + 'salt/bin/
|
|
58
|
+
s.path = config.salt_root + 'salt/bin/misc_fixes.sh'
|
|
59
59
|
end
|
|
60
60
|
end
|
|
61
61
|
|
|
@@ -64,7 +64,7 @@ module SaltedRails
|
|
|
64
64
|
require 'vagrant-vbguest'
|
|
65
65
|
require 'salted-rails/cloud_vbguest_installer'
|
|
66
66
|
vagrant_config.vbguest.installer = SaltedRails::CloudVbguestInstaller
|
|
67
|
-
vagrant_config.vbguest.auto_update = false
|
|
67
|
+
#vagrant_config.vbguest.auto_update = false
|
|
68
68
|
config.logger.info 'Configured vbguest installer'
|
|
69
69
|
rescue LoadError
|
|
70
70
|
config.logger.info 'Skipping vbguest (plugin not available)'
|
|
@@ -73,9 +73,13 @@ module SaltedRails
|
|
|
73
73
|
|
|
74
74
|
|
|
75
75
|
def configure_virtualbox(vagrant_config, config = @config)
|
|
76
|
-
config.logger.info
|
|
77
|
-
vagrant_config.vm.box =
|
|
78
|
-
|
|
76
|
+
config.logger.info "Configuring virtualbox box (#{config.box})"
|
|
77
|
+
vagrant_config.vm.box = config.box
|
|
78
|
+
if config.box == 'preciseCloud32'
|
|
79
|
+
vagrant_config.vm.box_url = 'http://cloud-images.ubuntu.com/precise/current/precise-server-cloudimg-vagrant-i386-disk1.box'
|
|
80
|
+
elsif config.box == 'precise32'
|
|
81
|
+
vagrant_config.vm.box_url = 'http://files.vagrantup.com/precise32.box'
|
|
82
|
+
end
|
|
79
83
|
end
|
|
80
84
|
|
|
81
85
|
def configure_digital_ocean(vagrant_config, config = @config)
|
|
@@ -87,7 +91,7 @@ module SaltedRails
|
|
|
87
91
|
provider.image = 'Ubuntu 12.04 x32'
|
|
88
92
|
provider.region = config.region
|
|
89
93
|
provider.ca_path = config.ca_path if config.ca_path
|
|
90
|
-
override.vm.synced_folder '.', '/vagrant', :disabled => true
|
|
94
|
+
override.vm.synced_folder '.', '/vagrant', :disabled => true unless config.sync_vagrant
|
|
91
95
|
if config.private_key_path
|
|
92
96
|
override.ssh.private_key_path = config.private_key_path
|
|
93
97
|
private_key_name = 'Vagrant ' + config.private_key_path.sub(/~\//, '').sub(/\.ssh\//, '').sub(/^id_/, '').gsub(/\W+/, ' ')
|
|
@@ -129,8 +133,10 @@ module SaltedRails
|
|
|
129
133
|
end
|
|
130
134
|
|
|
131
135
|
def configure_ports(vagrant_config, port_offset=0, config = @config)
|
|
136
|
+
config.mapped_ports = { }
|
|
132
137
|
config.ports.each do |port|
|
|
133
138
|
host_port = port_offset + port + (port < 3000 ? 3000 : 0)
|
|
139
|
+
config.mapped_ports[port] = host_port
|
|
134
140
|
vagrant_config.vm.network :forwarded_port, :guest => port, :host => host_port, auto_correct: true
|
|
135
141
|
end
|
|
136
142
|
end
|
data/lib/salted-rails/version.rb
CHANGED
data/pillar/capistrano/top.sls
CHANGED
data/pillar/common.sls
CHANGED
data/pillar/vagrant/top.sls
CHANGED
data/salt/bin/change_mirror.sh
CHANGED
|
@@ -7,23 +7,27 @@ case "$1" in
|
|
|
7
7
|
exec echo "usage: $0 country|mirror|auto|internode|url"
|
|
8
8
|
;;
|
|
9
9
|
esac
|
|
10
|
-
if grep 'http://archive.ubuntu.com/ubuntu' /etc/apt/sources.list > /dev/null; then
|
|
10
|
+
if grep 'http://[a-z.]*archive.ubuntu.com/ubuntu' /etc/apt/sources.list > /dev/null; then
|
|
11
11
|
case "$1" in
|
|
12
12
|
[a-z][a-z]|usa)
|
|
13
13
|
echo "Configuring mirror for region: $1"
|
|
14
|
-
exec sed -i.original -e 's#http://[archivesecurity]*.ubuntu.com/ubuntu#http://'"$1"'.archive.ubuntu.com/ubuntu/#' /etc/apt/sources.list
|
|
14
|
+
exec sed -i.original -e 's#http://[a-z.]*[archivesecurity]*.ubuntu.com/ubuntu#http://'"$1"'.archive.ubuntu.com/ubuntu/#' /etc/apt/sources.list
|
|
15
15
|
;;
|
|
16
16
|
mirror|auto)
|
|
17
17
|
echo "Configuring automatic selection of mirror"
|
|
18
|
-
exec sed -i.original -e 's#http://[archivesecurity]*.ubuntu.com/ubuntu#mirror://mirrors.ubuntu.com/mirrors.txt#' /etc/apt/sources.list
|
|
18
|
+
exec sed -i.original -e 's#http://[a-z.]*[archivesecurity]*.ubuntu.com/ubuntu#mirror://mirrors.ubuntu.com/mirrors.txt#' /etc/apt/sources.list
|
|
19
|
+
;;
|
|
20
|
+
sfo1)
|
|
21
|
+
echo "Configuring mirror for DIGITAL OCEAN: $1"
|
|
22
|
+
exec sed -i.original -e 's#http://[a-z.]*[archivesecurity]*.ubuntu.com/ubuntu#http://mirrors.sfo1.digitalocean.com/ubuntu/#' /etc/apt/sources.list
|
|
19
23
|
;;
|
|
20
24
|
internode)
|
|
21
25
|
echo "Configuring mirror for ISP: $1"
|
|
22
|
-
exec sed -i.original -e 's#http://[archivesecurity]*.ubuntu.com/ubuntu#http://mirror.internode.on.net/pub/ubuntu/ubuntu/#' /etc/apt/sources.list
|
|
26
|
+
exec sed -i.original -e 's#http://[a-z.]*[archivesecurity]*.ubuntu.com/ubuntu#http://mirror.internode.on.net/pub/ubuntu/ubuntu/#' /etc/apt/sources.list
|
|
23
27
|
;;
|
|
24
28
|
[hmf]*://*ubuntu*)
|
|
25
29
|
echo "Configuring mirror for $1"
|
|
26
|
-
exec sed -i.original -e 's#http://[archivesecurity]*.ubuntu.com/ubuntu#'"$1"'#' /etc/apt/sources.list
|
|
30
|
+
exec sed -i.original -e 's#http://[a-z.]*[archivesecurity]*.ubuntu.com/ubuntu#'"$1"'#' /etc/apt/sources.list
|
|
27
31
|
;;
|
|
28
32
|
*)
|
|
29
33
|
echo "Invalid mirror ($1) ignored!" >&2
|
|
@@ -31,6 +35,6 @@ if grep 'http://archive.ubuntu.com/ubuntu' /etc/apt/sources.list > /dev/null; th
|
|
|
31
35
|
;;
|
|
32
36
|
esac
|
|
33
37
|
else
|
|
34
|
-
echo "/etc/apt/sources.list has already been changed (leaving as is)"
|
|
38
|
+
echo "/etc/apt/sources.list has already been changed to non ubuntu.com mirror (leaving as is)"
|
|
35
39
|
fi
|
|
36
40
|
exit 0
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
#
|
|
3
|
+
|
|
4
|
+
old=`cat /etc/hostname`
|
|
5
|
+
case "$old" in
|
|
6
|
+
*.*)
|
|
7
|
+
echo "Removing domain from /etc/hostname (was $old)"
|
|
8
|
+
sed -i "s@\..*\$@@" /etc/hostname
|
|
9
|
+
hostname -F /etc/hostname
|
|
10
|
+
new=`cat /etc/hostname`
|
|
11
|
+
echo "(now $new)"
|
|
12
|
+
if [ -z "`grep "$old" /etc/hosts`" ]; then
|
|
13
|
+
echo "Adding '127.0.1.1 $old $new' entry to /etc/hosts"
|
|
14
|
+
echo "127.0.1.1 $old $new" >> /etc/hosts
|
|
15
|
+
fi
|
|
16
|
+
;;
|
|
17
|
+
esac
|
|
18
|
+
|
|
19
|
+
for f in bootstrap-salt.log bootstrap_salt.sh
|
|
20
|
+
do
|
|
21
|
+
rm -f /tmp/$f.old
|
|
22
|
+
if [ -f /tmp/$f ]; then
|
|
23
|
+
echo Renaming /tmp/$f as /tmp/$f.old
|
|
24
|
+
mv /tmp/$f /tmp/$f.old
|
|
25
|
+
fi
|
|
26
|
+
done
|
data/salt/bin/provision
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
2
|
|
|
3
|
+
no_check=false
|
|
3
4
|
case "$1" in
|
|
4
|
-
|
|
5
|
-
|
|
5
|
+
--no-check)
|
|
6
|
+
no_check=true
|
|
7
|
+
shift
|
|
8
|
+
;;
|
|
9
|
+
esac
|
|
10
|
+
runit()
|
|
11
|
+
{
|
|
6
12
|
case "$#" in
|
|
7
13
|
0)
|
|
8
14
|
echo "Running all states ..."
|
|
@@ -16,6 +22,33 @@ run)
|
|
|
16
22
|
done
|
|
17
23
|
;;
|
|
18
24
|
esac
|
|
25
|
+
}
|
|
26
|
+
case "$1" in
|
|
27
|
+
run)
|
|
28
|
+
shift
|
|
29
|
+
if $no_check; then
|
|
30
|
+
# Color is used when there is no checking (piped output)
|
|
31
|
+
runit "$@"
|
|
32
|
+
exit
|
|
33
|
+
fi
|
|
34
|
+
runit "$@" 2>&1 | tee /tmp/t$$
|
|
35
|
+
echo
|
|
36
|
+
echo Checking results log:
|
|
37
|
+
ret=
|
|
38
|
+
if egrep '^\[ERROR *\]' /tmp/t$$; then
|
|
39
|
+
echo ERROR: `egrep '^\[ERROR *\]' /tmp/t$$ | wc -l` ERRORS FOUND IN LOG
|
|
40
|
+
ret=1
|
|
41
|
+
fi
|
|
42
|
+
if egrep '^ *Result: *False' /tmp/t$$ > /dev/null; then
|
|
43
|
+
echo 'WARNING (' `egrep '^ *Result: *False' /tmp/t$$ | wc -l` 'Results where False in log)'
|
|
44
|
+
ret=${ret:-2}
|
|
45
|
+
fi
|
|
46
|
+
if [ -z "$ret" ] ; then
|
|
47
|
+
echo SUCCESS
|
|
48
|
+
fi
|
|
49
|
+
rm -f /tmp/t$$
|
|
50
|
+
exit $ret
|
|
51
|
+
|
|
19
52
|
;;
|
|
20
53
|
grains)
|
|
21
54
|
sudo salt-call grains.items
|
|
@@ -26,11 +59,15 @@ pillar)
|
|
|
26
59
|
packages)
|
|
27
60
|
dpkg --get-selections | sed -n 's/\s\s*install//p'
|
|
28
61
|
;;
|
|
62
|
+
search)
|
|
63
|
+
aptitude search "$@"
|
|
64
|
+
#apt-cache search "$@"
|
|
65
|
+
;;
|
|
29
66
|
install|remove|purge|update|upgrade|clean|autoremove)
|
|
30
67
|
sudo apt-get "$@"
|
|
31
68
|
;;
|
|
32
69
|
*)
|
|
33
|
-
echo "usage: $0 grains|pillar|run [state]|packages|install package|remove package|purge package|autoclean|autoremove\n"
|
|
70
|
+
echo "usage: $0 grains|pillar|run [state]|packages|search|install package|remove package|purge package|autoclean|autoremove\n"
|
|
34
71
|
;;
|
|
35
72
|
esac
|
|
36
73
|
|