avst-cloud 0.1.32 → 0.1.34
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +7 -3
- data/avst-cloud.gemspec +2 -2
- data/bin/avst-cloud +3 -1
- data/lib/avst-cloud.rb +3 -2
- data/lib/avst-cloud/cloud_server.rb +2 -2
- data/lib/avst-cloud/task.rb +3 -1
- data/lib/capistrano/tasks/prepare_puppet_and_execute.rake +3 -3
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a7ade3d1a34eb13a1f59c2c0d2b1e45052da700d1486863ab8ffe15d83556961
|
4
|
+
data.tar.gz: 7fc3fc9dbb2a5a81db491884481e9ee5a7e31fe93ed14d0c35efaf8260353767
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cc1993fb4976ec41a56d7d7f74552f09e74f5730a9627f5bf6caea81ef3950fb97ef157a052583b1042ac7efbf76db9087d5dd4d2d1ebf8270b3aeccf9140edc
|
7
|
+
data.tar.gz: 3dfc93f2648b8829b0edea4bd2d31d50ab85946e4260d6e6bf03fdc53a6dc951b633de84e39b214d31f0aba3d2fd8665a2c55ee396362f846f5e668f30bedfd6
|
data/README.md
CHANGED
@@ -161,7 +161,7 @@ If puppet_runner param is defined:
|
|
161
161
|
* create avst_cloud_tmp_folder on the server
|
162
162
|
* uploads the content of local folder config/custom_system_config to it and then moves it to destination_folder, in subfolder hiera-configs the only files uploaded may be server_name.yaml, server_name_facts.yaml and puppetfile_dictionary.yaml
|
163
163
|
* if puppet_runner_prepare is defined, it will run it
|
164
|
-
* r10k puppetfile install
|
164
|
+
* if download_dependencies_command is defined, it will run it, in the common case should be 'r10k puppetfile install'
|
165
165
|
* clear /etc/puppet folder
|
166
166
|
* link /var/opt/puppet/current to /etc/puppet
|
167
167
|
* links /var/opt/puppet/current/hiera.yaml to /etc/hiera.yaml
|
@@ -178,9 +178,11 @@ If custom_provisioning_command is defined, it will run the command on the server
|
|
178
178
|
branch = "master"
|
179
179
|
puppet_runner = nil
|
180
180
|
puppet_runner_prepare = nil
|
181
|
+
avst_cloud_config_dir = nil
|
182
|
+
download_dependencies_command = nil
|
181
183
|
custom_provisioning_command = "echo 'done' >> /tmp/done",
|
182
184
|
destination_folder = nil
|
183
|
-
server.provision(git, branch, server_tmp_folder, reference, custom_provisioning_commands, puppet_runner, puppet_runner_prepare, destination_folder)
|
185
|
+
server.provision(git, branch, server_tmp_folder, reference, custom_provisioning_commands, puppet_runner, puppet_runner_prepare, destination_folder, avst_cloud_config_dir, download_dependencies_command)
|
184
186
|
|
185
187
|
|
186
188
|
```
|
@@ -218,12 +220,14 @@ branch = "master" # branch
|
|
218
220
|
reference = nil # tag
|
219
221
|
# In this example we are using puppet-runner to apply our puppet configs, check doco
|
220
222
|
puppet_runner = "puppet-runner start"
|
223
|
+
avst_cloud_config_dir = 'config'
|
224
|
+
download_dependencies_command = 'gem install r10k -v 2.6.4; r10k puppetfile install'
|
221
225
|
puppet_runner_prepare = "puppet-runner prepare -c ./hiera-configs -d ./hiera -f ./environments/production/modules/hosts/facts.d -t ./hiera-configs -r ./hiera-configs/puppetfile_dictionary.yaml -o ./Puppetfile -e /var/opt/puppet/secure/keys"
|
222
226
|
|
223
227
|
custom_provisioning_commands = ["echo 'done' >> /tmp/done"]
|
224
228
|
# defaults to /var/opt/puppet
|
225
229
|
destination_folder = nil
|
226
230
|
|
227
|
-
server.provision(git, branch, server_tmp_folder, reference, custom_provisioning_commands, puppet_runner, puppet_runner_prepare, destination_folder)
|
231
|
+
server.provision(git, branch, server_tmp_folder, reference, custom_provisioning_commands, puppet_runner, puppet_runner_prepare, destination_folder. avst_cloud_config_dir, download_dependencies_command)
|
228
232
|
|
229
233
|
```
|
data/avst-cloud.gemspec
CHANGED
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
6
|
spec.name = "avst-cloud"
|
7
|
-
spec.version = '0.1.
|
7
|
+
spec.version = '0.1.34'
|
8
8
|
spec.authors = ["Martin Brehovsky", "Jon Bevan", "Matthew Hope"]
|
9
9
|
spec.email = ["mbrehovsky@adaptavist.com", "jbevan@adaptavist.com", "mhope@adaptavist.com"]
|
10
10
|
spec.summary = %q{Automated creation, bootstrapping and provisioning of servers }
|
@@ -29,7 +29,7 @@ Gem::Specification.new do |spec|
|
|
29
29
|
spec.add_dependency "sshkit", "~> 1.16.0"
|
30
30
|
spec.add_dependency "derelict"
|
31
31
|
spec.add_dependency "docopt", ">= 0.5.0"
|
32
|
-
spec.add_dependency "
|
32
|
+
spec.add_dependency "rainbow"
|
33
33
|
spec.add_dependency "nokogiri", '1.8.2'
|
34
34
|
end
|
35
35
|
|
data/bin/avst-cloud
CHANGED
@@ -81,11 +81,13 @@ reference = nil # Tag
|
|
81
81
|
# In this example we do not use puppet-runner, check doco
|
82
82
|
puppet_runner = nil
|
83
83
|
puppet_runner_prepare = nil
|
84
|
+
avst_cloud_config_dir = nil
|
85
|
+
download_dependencies_command = nil
|
84
86
|
custom_provisioning_commands = ["echo 'done' >> /tmp/done", "echo 'done' >> /tmp/done1"]
|
85
87
|
server_tmp_folder="/tmp/avst_cloud_tmp_#{Time.now.to_i}"
|
86
88
|
|
87
89
|
destination_folder = nil # defaults to /var/opt/puppet
|
88
|
-
server.provision(git, branch, server_tmp_folder, reference, custom_provisioning_commands, puppet_runner, puppet_runner_prepare, destination_folder)
|
90
|
+
server.provision(git, branch, server_tmp_folder, reference, custom_provisioning_commands, puppet_runner, puppet_runner_prepare, destination_folder, avst_cloud_config_dir, download_dependencies_command)
|
89
91
|
|
90
92
|
# puts conn.server_status(server_name)
|
91
93
|
# server.stop
|
data/lib/avst-cloud.rb
CHANGED
@@ -39,9 +39,9 @@ module AvstCloud
|
|
39
39
|
logger.debug "Bootstrap done. You can connect to server as #{@access_user} on #{@ip_address}"
|
40
40
|
end
|
41
41
|
|
42
|
-
def provision(git, branch, server_tmp_folder, reference, custom_provisioning_commands, puppet_runner, puppet_runner_prepare, destination_folder, avst_cloud_config_dir)
|
42
|
+
def provision(git, branch, server_tmp_folder, reference, custom_provisioning_commands, puppet_runner, puppet_runner_prepare, destination_folder, avst_cloud_config_dir, download_dependencies_command)
|
43
43
|
logger.debug "Provisioning #{@server_name}..."
|
44
|
-
provision_task = AvstCloud::CapistranoDeploymentTask.new(git, branch, server_tmp_folder, reference, custom_provisioning_commands, puppet_runner, puppet_runner_prepare, destination_folder, avst_cloud_config_dir)
|
44
|
+
provision_task = AvstCloud::CapistranoDeploymentTask.new(git, branch, server_tmp_folder, reference, custom_provisioning_commands, puppet_runner, puppet_runner_prepare, destination_folder, avst_cloud_config_dir, download_dependencies_command)
|
45
45
|
run_tasks([AvstCloud::WaitUntilReady.new, provision_task])
|
46
46
|
logger.debug "Provisioning done. You can connect to server on #{@ip_address}"
|
47
47
|
end
|
data/lib/avst-cloud/task.rb
CHANGED
@@ -176,7 +176,7 @@ module AvstCloud
|
|
176
176
|
|
177
177
|
class CapistranoDeploymentTask < AvstCloud::Task
|
178
178
|
|
179
|
-
def initialize(git, branch, server_tmp_folder = "/tmp/avst_cloud_tmp_#{Time.now.to_i}", reference = nil, custom_provisioning_commands = [], puppet_runner = nil, puppet_runner_prepare = nil, destination_folder = '/var/opt/puppet', avst_cloud_config_dir = 'config')
|
179
|
+
def initialize(git, branch, server_tmp_folder = "/tmp/avst_cloud_tmp_#{Time.now.to_i}", reference = nil, custom_provisioning_commands = [], puppet_runner = nil, puppet_runner_prepare = nil, destination_folder = '/var/opt/puppet', avst_cloud_config_dir = 'config', download_dependencies_command = nil)
|
180
180
|
unless git and (branch or reference)
|
181
181
|
logger.debug "You have to provide git repo url #{git} and git branch #{branch} or git tag reference #{reference}".red
|
182
182
|
raise "You have to provide git repo url #{git} and git branch #{branch} or git tag reference #{reference}"
|
@@ -188,6 +188,7 @@ module AvstCloud
|
|
188
188
|
@reference = reference
|
189
189
|
@custom_provisioning_commands = custom_provisioning_commands || []
|
190
190
|
@puppet_runner = puppet_runner
|
191
|
+
@download_dependencies_command = download_dependencies_command
|
191
192
|
@puppet_runner_prepare = puppet_runner_prepare
|
192
193
|
@destination_folder = destination_folder || '/var/opt/puppet'
|
193
194
|
@avst_cloud_config_dir = avst_cloud_config_dir || 'config'
|
@@ -225,6 +226,7 @@ module AvstCloud
|
|
225
226
|
ENV['cap_access_user'] = server.access_user
|
226
227
|
ENV['server_name'] = server.server_name
|
227
228
|
ENV['puppet_runner'] = @puppet_runner
|
229
|
+
ENV['download_dependencies_command'] = @download_dependencies_command
|
228
230
|
ENV['puppet_runner_prepare'] = @puppet_runner_prepare
|
229
231
|
ENV['avst_cloud_tmp_folder'] = @server_tmp_folder
|
230
232
|
ENV['custom_provisioning_commands'] = @custom_provisioning_commands.to_json
|
@@ -21,7 +21,7 @@ task :prepare_puppet_and_execute do
|
|
21
21
|
SSHKit.config.command_map[:link_hiera] = "sudo su -c 'cd /etc && sudo rm -f hiera.yaml && sudo ln -sf /var/opt/puppet/current/hiera.yaml .'"
|
22
22
|
SSHKit.config.command_map[:clear_puppet] = "sudo su -c 'rm -fr /etc/puppet'"
|
23
23
|
SSHKit.config.command_map[:create_puppet_files] = "sudo su -c 'if [ ! -d /var/opt/puppet/current/files ]; then mkdir /var/opt/puppet/current/files; fi'"
|
24
|
-
SSHKit.config.command_map[:
|
24
|
+
SSHKit.config.command_map[:download_dependencies_command] = "sudo su -c 'source /usr/local/rvm/scripts/rvm; #{ENV["download_dependencies_command"]}'"
|
25
25
|
SSHKit.config.command_map[:execute_puppet_runner] = "sudo su -c 'source /usr/local/rvm/scripts/rvm; #{ENV["puppet_runner"]}'"
|
26
26
|
SSHKit.config.command_map[:cleanup_configs_from_hiera_configs] = "sudo su -c 'find /var/opt/puppet/current/hiera-configs -maxdepth 1 -type f ! -name \'puppetfile_dictionary_v4.yaml\' ! -name \'puppetfile_dictionary.yaml\' ! -name \'#{ENV["server_name"]}.yaml\' ! -name \'#{ENV["server_name"]}_facts.yaml\' -exec rm -f {} + '"
|
27
27
|
|
@@ -44,10 +44,10 @@ task :prepare_puppet_and_execute do
|
|
44
44
|
end
|
45
45
|
|
46
46
|
within '/var/opt/puppet/current' do
|
47
|
-
execute :
|
47
|
+
execute :download_dependencies_command
|
48
48
|
end
|
49
49
|
|
50
|
-
puts "Done
|
50
|
+
puts "Done downloading dependencies"
|
51
51
|
|
52
52
|
execute :clear_puppet
|
53
53
|
execute :create_puppet_files
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: avst-cloud
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.34
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Martin Brehovsky
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2018-
|
13
|
+
date: 2018-09-27 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: bundler
|
@@ -209,19 +209,19 @@ dependencies:
|
|
209
209
|
- !ruby/object:Gem::Version
|
210
210
|
version: 0.5.0
|
211
211
|
- !ruby/object:Gem::Dependency
|
212
|
-
name:
|
212
|
+
name: rainbow
|
213
213
|
requirement: !ruby/object:Gem::Requirement
|
214
214
|
requirements:
|
215
215
|
- - ">="
|
216
216
|
- !ruby/object:Gem::Version
|
217
|
-
version: 0
|
217
|
+
version: '0'
|
218
218
|
type: :runtime
|
219
219
|
prerelease: false
|
220
220
|
version_requirements: !ruby/object:Gem::Requirement
|
221
221
|
requirements:
|
222
222
|
- - ">="
|
223
223
|
- !ruby/object:Gem::Version
|
224
|
-
version: 0
|
224
|
+
version: '0'
|
225
225
|
- !ruby/object:Gem::Dependency
|
226
226
|
name: nokogiri
|
227
227
|
requirement: !ruby/object:Gem::Requirement
|