avst-cloud 0.1.35 → 0.1.36

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 08b2bde0582221a0d81aae6d0b3606206633d23ebffb3350273b6e94118ae05c
4
- data.tar.gz: 95b4457c08517ea0ea4275cc866262eb8067de3bc9ff93fe0e12837ceb7fadfe
3
+ metadata.gz: 65428e23baf04bc8f038bb7d30bde02843ac8ac3967375ec218fdd4f3c18d388
4
+ data.tar.gz: ab4d149ae0797e91fe2c03fbfe36471b4815a835ba98b5b26abe1625cd1f6a9f
5
5
  SHA512:
6
- metadata.gz: 7d1253877fe6464c5c7c9a8a8d6a3649c73cd8f5cf9a0c2948269742c7d5c9851c75b11e7c12dcc1535cdd3566ec5344888b47600c7a878417e52dbf8d40bd43
7
- data.tar.gz: a57749823fcb9baffdca0f3ecd504b3329f8acc2dd92370ff1241b7c36767df345f12800140311f7bb4b07c71134dc994c539140aaf0206cbf81e13cdc4b3ed2
6
+ metadata.gz: daa8f6241425b059d2d4c8a62f9f84ad32c638e5b37b50e3967e638494b004c0ab21d6042283027581bbd880dc61c3b97b3e69fb4289a6f52c251113cdd76bab
7
+ data.tar.gz: 4236cd139da56d4f35a73704ddf2f00b696d5335032d35c8930385949e1d8bc70a0d42c4c17e5c1b3b55f534023fa9917392ef1289c3832308a58c5ef24d353a
@@ -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.35'
7
+ spec.version = '0.1.36'
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 }
@@ -15,13 +15,14 @@ Gem::Specification.new do |spec|
15
15
  spec.executables = ["avst-cloud", "avst-cloud-puppet", "avst-cloud-rackspace", "avst-cloud-azure", "avst-cloud-azure-rm"]
16
16
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
17
17
  spec.require_paths = ["lib"]
18
- spec.add_development_dependency "bundler", "~> 1.16.1"
18
+ spec.add_development_dependency "bundler", "~> 1.17.3"
19
19
  spec.add_development_dependency "rake"
20
20
  spec.add_dependency "fog"
21
21
  spec.add_dependency "fog-core", "1.43.0"
22
- spec.add_dependency "fog-azure"
23
- spec.add_dependency "fog-azure-rm", "0.0.3"
24
- spec.add_dependency "azure"
22
+ ###spec.add_dependency "fog-azure"
23
+ ###spec.add_dependency "fog-azure-rm", "0.0.3"
24
+ spec.add_dependency "fog-google", "1.8.2"
25
+ ###spec.add_dependency "azure"
25
26
  spec.add_dependency "rvm-capistrano"
26
27
  spec.add_dependency "capistrano", "3.4.1"
27
28
  spec.add_dependency "capistrano-rvm"
@@ -33,3 +34,4 @@ Gem::Specification.new do |spec|
33
34
  spec.add_dependency "nokogiri", '1.8.2'
34
35
  end
35
36
 
37
+
@@ -0,0 +1,124 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # Copyright 2015 Adaptavist.com Ltd.
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ require 'avst-cloud'
18
+ require 'avst-cloud/gcp_connection'
19
+ require 'avst-cloud/gcp_server'
20
+
21
+ avst_cloud_base="#{File.expand_path("../../", __FILE__)}"
22
+
23
+ # FILL IN YOUR GCP ACCOUNT DETAILS (Access Key ID and Secret Access Key), GIT REPO AND MAKE SURE
24
+ # FILES IN files FOLDER HAS CORRECT CONTENT
25
+ provider_user=''
26
+ provider_pass=''
27
+ project=''
28
+ region='europe-west1'
29
+
30
+ # Initiate connector object
31
+ conn = AvstCloud::GcpConnection.new(provider_user, provider_pass, region, project)
32
+
33
+ server_name = 'hostname1'
34
+
35
+ flavour = nil # defaults to t2.micro
36
+ hdd_device_path = nil # defaults to '/dev/sda1'
37
+ machine_type_id = nil
38
+ os = "centos-7"
39
+
40
+ key_name = 'admin' # key name, e.g. admin
41
+ ssh_public_key = "path/to/your/admin.pem.pub" # Full path to ssh public key, e.g. /tmp/admin.pem.pub
42
+ ssh_private_key = "path/to/your/admin.pem" # Full path to ssh private key, e.g. /tmp/admin.pem
43
+ subnet_id = nil # Your subnet
44
+ security_group_ids = [''] # List of security groups
45
+ root_disk_size = nil # In GB
46
+ additional_hdds = {}
47
+ vpc = nil
48
+ created_by = nil
49
+ root_username = nil
50
+ custom_tags = []
51
+ availability_zone = 'europe-west1-b'
52
+ delete_root_disk = true
53
+
54
+ # display server status
55
+ ##server_detail = conn.server_status(server_name)
56
+ ##puts server_detail.inspect
57
+ ##conn.list_zones
58
+ ##conn.list_flavours(availability_zone)
59
+ ##conn.list_images
60
+ ##conn.list_networks
61
+ ##conn.list_disk_types(availability_zone)
62
+
63
+ server = conn.create_server(server_name, flavour, os, key_name, ssh_public_key, ssh_private_key, subnet_id, security_group_ids, root_disk_size, machine_type_id, availability_zone, additional_hdds, vpc, created_by, custom_tags, root_username, delete_root_disk)
64
+
65
+ # server = conn.server(server_name, root_username, ssh_private_key, os)
66
+ # server.destroy
67
+
68
+ # puts conn.server_status(server_name)
69
+ # exit
70
+
71
+ pre_upload_commands = [
72
+ "echo 'pre_upload_command was here' >> /tmp/pre_upload",
73
+ ]
74
+
75
+ custom_file_uploads = {
76
+ "#{avst_cloud_base}/files/id_rsa" => "/tmp/.",
77
+ "#{avst_cloud_base}/files/known_hosts" => "/tmp/."
78
+ }
79
+
80
+ # Uploading ssh keys to access git repo in provisioning stage, make sure you provide correct keys
81
+ post_upload_commands = [
82
+ "mkdir /home/ubuntu/.ssh",
83
+ "mv /tmp/id_rsa /home/ubuntu/.ssh/.",
84
+ "mv /tmp/known_hosts /home/ubuntu/.ssh/.",
85
+ "chmod 0600 /home/ubuntu/.ssh/known_hosts",
86
+ "chmod 0600 /home/ubuntu/.ssh/id_rsa",
87
+ "mkdir /var/opt/puppet",
88
+ "chown ubuntu /var/opt/puppet",
89
+ "apt-get update && apt-get install -o Dpkg::Options::='--force-confold' -f -y git puppet-common puppet"
90
+ ]
91
+
92
+ remote_server_debug = true
93
+ debug_structured_log = false
94
+
95
+ ##!##server.bootstrap(pre_upload_commands, custom_file_uploads, post_upload_commands, remote_server_debug, debug_structured_log, false)
96
+
97
+ git = "ssh://git@you_repo.git"
98
+ branch = "master"
99
+ reference = nil # Tag
100
+ # In this example we do not use puppet-runner, check doco
101
+ puppet_runner = nil
102
+ puppet_runner_prepare = nil
103
+ avst_cloud_config_dir = nil
104
+ download_dependencies_command = nil
105
+ custom_provisioning_commands = ["echo 'done' >> /tmp/done", "echo 'done' >> /tmp/done1"]
106
+ server_tmp_folder="/tmp/avst_cloud_tmp_#{Time.now.to_i}"
107
+
108
+ destination_folder = nil # defaults to /var/opt/puppet
109
+ ##!##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)
110
+
111
+ # puts conn.server_status(server_name)
112
+ # server.stop
113
+
114
+ # puts conn.server_status(server_name)
115
+ # server.start
116
+
117
+ # puts conn.server_status(server_name)
118
+
119
+ # custom_commands=nil
120
+ # server_tmp_folder="/tmp/done"
121
+ # server.post_provisioning_cleanup(custom_commands, os, remote_server_debug, server_tmp_folder)
122
+
123
+ # server.destroy
124
+ # puts conn.server_status(server_name)
@@ -0,0 +1,310 @@
1
+ # Copyright 2015 Adaptavist.com Ltd.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require_relative './cloud_connection.rb'
16
+ require 'fog/google'
17
+ using Rainbow
18
+ module AvstCloud
19
+
20
+ class GcpConnection < AvstCloud::CloudConnection
21
+
22
+ attr_accessor :region
23
+
24
+ def initialize(provider_user, provider_pass, region, project)
25
+ super('Google', provider_user, provider_pass)
26
+ @region = region
27
+ @project = project
28
+ end
29
+
30
+ def server(server_name, root_user, root_password, os=nil)
31
+ server = find_fog_server(server_name)
32
+ if !root_user and os
33
+ root_user = user_from_key(os)
34
+ end
35
+ AvstCloud::GcpServer.new(server, server_name, server.public_ip_address, root_user, root_password)
36
+ end
37
+
38
+ def create_server(server_name, flavour, os, key_name, ssh_public_key, ssh_private_key, subnet_id, security_group_ids, root_disk_size, root_disk_type, machine_type_id, availability_zone, additional_hdds={}, vpc=nil, created_by=nil, custom_tags=[], root_username=nil, delete_root_disk=true)
39
+ flavour = flavour || "g1-small"
40
+ os = os || "centos-7"
41
+ vpc_name = vpc || "default"
42
+ subnet_name = subnet_id || "default"
43
+ machine_type_id = machine_type_id || get_image_name(os)
44
+ if machine_type_id.nil? or machine_type_id.empty?
45
+ machine_type_id = "centos-7-v20190312"
46
+ end
47
+
48
+ unless File.file?(ssh_public_key)
49
+ logger.error "Could not find local public SSH key '#{ssh_public_key}'".red
50
+ raise "Could not find local SSH public key '#{ssh_public_key}'"
51
+ end
52
+
53
+ unless File.file?(ssh_private_key)
54
+ logger.error "Could not find local private SSH key '#{ssh_public_key}'".red
55
+ raise "Could not find local SSH private key '#{ssh_public_key}'"
56
+ end
57
+ root_user = root_username || user_from_key(os)
58
+
59
+ existing_servers = all_named_servers(server_name)
60
+ restartable_servers = existing_servers.select{ |serv| serv.status == 'TERMINATED' }
61
+ #TODO, status is a guess, need to work out if "DELETED" is valid for GCP
62
+ running_servers = existing_servers.select{ |serv| serv.status != 'TERMINATED' && serv.status != 'DELETED' }
63
+
64
+ if running_servers.length > 0
65
+ running_servers.each do |server|
66
+ logger.error "Server #{server_name} with id #{server.id} found in state: #{server.status}".yellow
67
+ end
68
+ raise "Server with the same name found!"
69
+
70
+ elsif restartable_servers.length > 0
71
+ if restartable_servers.length > 1
72
+ running_servers.each do |server|
73
+ logger.error "Server #{server_name} with id #{server.id} found in state: #{server.status}. Can not restart".yellow
74
+ end
75
+ raise "Too many servers can be restarted."
76
+ end
77
+ server = restartable_servers.first
78
+ server.start
79
+ result_server = AvstCloud::GcpServer.new(server, server_name, server.public_ip_address, root_user, ssh_private_key)
80
+ result_server.wait_for_state() {|serv| serv.ready?}
81
+ logger.debug "[DONE]\n\n"
82
+ logger.debug "The server was successfully re-started.\n\n"
83
+ result_server
84
+ else
85
+ logger.debug "Creating GCP server:"
86
+ logger.debug "Server name - #{server_name}"
87
+ logger.debug "Operating system - #{os}"
88
+ logger.debug "image_template_id - #{machine_type_id}"
89
+ logger.debug "flavour - #{flavour}"
90
+ logger.debug "key_name - #{key_name}"
91
+ logger.debug "Public ssh_key - #{ssh_public_key}"
92
+ logger.debug "Private ssh_key - #{ssh_private_key}"
93
+ logger.debug "root user - #{root_user}"
94
+ logger.debug "subnet_id - #{subnet_name}"
95
+ logger.debug "security_group_ids - #{security_group_ids}"
96
+ logger.debug "region - #{@region}"
97
+ logger.debug "availability_zone - #{availability_zone}"
98
+ logger.debug "root_disk_size - #{root_disk_size}"
99
+ logger.debug "additional_hdds - #{additional_hdds}"
100
+ logger.debug "vpc - #{vpc_name}"
101
+
102
+ # Create root disk
103
+ # TODO check if this exists and exit politely, or catch the exception and exit politely
104
+ root_disk_type = root_disk_type || 'pd-standard'
105
+ logger.debug "Creating root disk with type #{root_disk_type}"
106
+ root_disk_url="https://www.googleapis.com/compute/v1/projects/#{@project}/zones/#{availability_zone}/diskTypes/#{root_disk_type}"
107
+ disk = connect.disks.create :name => "#{server_name}-root",
108
+ :size_gb => root_disk_size,
109
+ :zone => availability_zone,
110
+ :source_image => machine_type_id,
111
+ :type => root_disk_url
112
+
113
+ # wait for the disk to be ready
114
+ logger.debug "Waiting for root disk to be ready"
115
+ disk.wait_for { ready? }
116
+
117
+ disk_to_attach=[disk.attached_disk_obj(boot: true, auto_delete: delete_root_disk)]
118
+
119
+ # create additional HDD's if required
120
+ if additional_hdds and additional_hdds.is_a?(Hash)
121
+ disk_count=1
122
+ additional_hdds.each_value do |disk|
123
+ #TODO wortk out how to set disk type!
124
+ if disk['disk_size'] || disk['ebs_size']
125
+ disk_type = disk['disk_type'] || 'pd-standard'
126
+ logger.debug "Creating additional disk #{disk_count} with type #{disk_type}"
127
+ disk_url="https://www.googleapis.com/compute/v1/projects/#{@project}/zones/#{availability_zone}/diskTypes/#{disk_type}"
128
+ delete_disk_with_vm = disk['delete_disk_with_vm'] || false
129
+ additional_disk = connect.disks.create :name => "#{server_name}-disk#{disk_count}",
130
+ :size_gb => disk['disk_size'] || disk['ebs_size'],
131
+ :zone => availability_zone,
132
+ :type => disk_url
133
+ # wait for additional disk
134
+ logger.debug "Waiting for additional disk #{disk_count}"
135
+ additional_disk.wait_for { ready? }
136
+
137
+ # add disk to array of those to be mounted
138
+ disk_to_attach.push additional_disk.attached_disk_obj(boot: false, auto_delete: delete_disk_with_vm)
139
+
140
+ #blank the additional disk object for the next time around
141
+ attached_disk = nil
142
+
143
+ # increment disk counter
144
+ disk_count = disk_count +1
145
+ else
146
+ logger.warn "Failed to create additional hdd, required param disk_size missing: #{disk}"
147
+ end
148
+ end
149
+ end
150
+
151
+ ## GCP tags are not key value pairs
152
+ tags = [server_name, os] + custom_tags
153
+
154
+ # work out the URK for the subnetwork
155
+ subnet_url = "https://www.googleapis.com/compute/v1/projects/#{@project}/regions/#{region}/subnetworks/#{subnet_name}"
156
+
157
+ # create server
158
+ logger.debug "Creating Server"
159
+ server = connect.servers.create :name => server_name,
160
+ :disks => disk_to_attach,
161
+ :machine_type => flavour,
162
+ :private_key_path => ssh_private_key,
163
+ :public_key_path => ssh_public_key,
164
+ :zone => availability_zone,
165
+ :network_interfaces => [{ :network => "global/networks/#{vpc_name}",
166
+ :subnetwork => subnet_url,
167
+ :access_configs => [{
168
+ :name => "External NAT",
169
+ :type => "ONE_TO_ONE_NAT" }]
170
+ }],
171
+ :username => root_user,
172
+ :tags => tags
173
+
174
+ result_server = AvstCloud::GcpServer.new(server, server_name, nil, root_user, ssh_private_key)
175
+ # result_server.logger = logger
176
+ # Check every 5 seconds to see if server is in the active state (ready?).
177
+ # If the server has not been built in 5 minutes (600 seconds) an exception will be raised.
178
+ result_server.wait_for_state() {|serv| serv.ready?}
179
+
180
+ logger.debug "[DONE]\n\n"
181
+ logger.debug "The server has been successfully created, to login onto the server:\n"
182
+ logger.debug "\t ssh -i #{ssh_private_key} #{root_user}@#{server.public_ip_address}\n"
183
+ result_server.ip_address = server.public_ip_address
184
+ result_server
185
+ end
186
+ end
187
+
188
+ def server_status(server_name)
189
+ #TODO, status is a guess, need to work out if this is valid for GCP
190
+ servers = all_named_servers(server_name).select{|serv| serv.status != 'DELETED'}
191
+ if servers.length > 0
192
+ servers.each do |server|
193
+ logger.debug "Server #{server.id} with name '#{server_name}' exists and has state: #{server.status}"
194
+ end
195
+ else
196
+ logger.debug "Server not found for name: #{server_name}"
197
+ end
198
+ end
199
+
200
+ def list_zones
201
+ logger.debug connect.list_zones
202
+ end
203
+
204
+ def list_flavours(zone)
205
+ logger.debug connect.list_machine_types(zone)
206
+ end
207
+
208
+ def list_images
209
+ # Only list current images, not deprecated ones
210
+ get_images.each do |im|
211
+ logger.debug im.inspect
212
+ end
213
+ end
214
+
215
+ def list_networks
216
+ logger.debug connect.list_networks
217
+ end
218
+
219
+ def list_disk_types(availability_zone)
220
+ logger.debug connect.list_disk_types(availability_zone)
221
+ end
222
+
223
+ # Returns list of servers from fog
224
+ def list_known_servers
225
+ connect.servers.all
226
+ end
227
+
228
+ def find_fog_server(server_name, should_fail=true)
229
+ #TODO, status is a guess, need to work out if this is valid for GCP
230
+ servers = all_named_servers(server_name).select{|serv| serv.status != 'DELETED'}
231
+ unless servers.length == 1
232
+ logger.debug "Found #{servers.length} servers for name: #{server_name}".yellow
233
+ if should_fail
234
+ raise "Found #{servers.length} servers for name: #{server_name}"
235
+ end
236
+ end
237
+ servers.first
238
+ end
239
+
240
+ private
241
+ # attempt to workout the user from the key comments! - TODO
242
+ def user_from_key(os)
243
+ raise "Function to extract username from key comment not yet implemented"
244
+ end
245
+ def connect
246
+ unless @connection
247
+ logger.debug "Creating new connection to GCP"
248
+ @connection = Fog::Compute.new({
249
+ :provider => 'Google',
250
+ :google_project => @project,
251
+ :google_client_email => @provider_access_user,
252
+ :google_json_key_location => @provider_access_pass
253
+ })
254
+ end
255
+ @connection
256
+ end
257
+ # get a list of images,
258
+ def get_images(family=nil, deprecated=false)
259
+ # if we are looking to include depreacted images get them all
260
+ if deprecated
261
+ images = connect.images.all
262
+ # if not just get the current ones
263
+ else
264
+ images = connect.images.current
265
+ end
266
+
267
+ # if we are to filter on a list of families do so
268
+ if family
269
+ final_images = Array.new
270
+ images.each do |image|
271
+ if image.family == family
272
+ final_images.push image
273
+ end
274
+ end
275
+ # return the filtered list
276
+ final_images
277
+ # if not just return all results
278
+ else
279
+ # return the results
280
+ images
281
+ end
282
+ end
283
+ # get a single machine image by family
284
+ def get_image_name(family)
285
+ image = get_images(family, false)
286
+ if image.length != 1
287
+ raise "Too many images returned for family #{family}, #{image.length} were returned"
288
+ end
289
+ # return the image name
290
+ image.first.name
291
+
292
+ end
293
+
294
+ def all_named_servers(server_name)
295
+ # ***connect.servers.all does not accept any arguments in GCP***
296
+
297
+ # create empty array
298
+ named_servers=Array.new
299
+ # get all servers
300
+ connect.servers.all.each do | returned_server |
301
+ # if the server name matches what we are looking for add to the result array
302
+ if returned_server.name == server_name
303
+ named_servers.push(returned_server)
304
+ end
305
+ end
306
+ # return the list of servers
307
+ named_servers
308
+ end
309
+ end
310
+ end
@@ -0,0 +1,55 @@
1
+ # Copyright 2015 Adaptavist.com Ltd.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require_relative './cloud_server.rb'
16
+ using Rainbow
17
+ module AvstCloud
18
+ class GcpServer < AvstCloud::CloudServer
19
+
20
+ def stop
21
+ if @server
22
+ logger.debug "Stopping #{@server_name}"
23
+ @server.stop
24
+ wait_for_state() {|serv| serv.status == 'TERMINATED'}
25
+ logger.debug "[DONE]\n\n"
26
+ logger.debug "Server #{@server_name} stopped...".green
27
+ else
28
+ raise "Server #{@server_name} does not exist!".red
29
+ end
30
+ end
31
+
32
+ def start
33
+ if @server
34
+ logger.debug "Starting #{@server_name}"
35
+ @server.start
36
+ wait_for_state() {|serv| serv.ready?}
37
+ logger.debug "[DONE]\n\n"
38
+ logger.debug "Server #{@server_name} started...".green
39
+ else
40
+ raise "Server #{@server_name} does not exist!".red
41
+ end
42
+ end
43
+
44
+ def destroy
45
+ if @server
46
+ logger.debug "Killing #{@server_name}"
47
+ @server.destroy
48
+ logger.debug "Server #{@server_name} destroying...".green
49
+ else
50
+ raise "Server #{@server_name} does not exist!".red
51
+ end
52
+ end
53
+
54
+ end
55
+ end
@@ -176,9 +176,8 @@ module AvstCloud
176
176
  if hdd.state == expected_state
177
177
  break
178
178
  end
179
- logger.debug(.)
180
179
  sleep 60
181
180
  end
182
181
  end
183
182
  end
184
- end
183
+ end
@@ -54,10 +54,6 @@ task :prepare_puppet_and_execute do
54
54
  execute :link_puppet
55
55
  execute :link_hiera
56
56
 
57
- if File.exist?("#{ENV["avst_cloud_config_dir"]}/keys")
58
- upload! "#{ENV["avst_cloud_config_dir"]}/keys", "/etc/puppet/config", recursive: true
59
- end
60
-
61
57
  within '/etc/puppet' do
62
58
  begin
63
59
  execute :execute_puppet_runner
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.35
4
+ version: 0.1.36
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-10-03 00:00:00.000000000 Z
13
+ date: 2019-06-20 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: bundler
@@ -18,14 +18,14 @@ dependencies:
18
18
  requirements:
19
19
  - - "~>"
20
20
  - !ruby/object:Gem::Version
21
- version: 1.16.1
21
+ version: 1.17.3
22
22
  type: :development
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
26
  - - "~>"
27
27
  - !ruby/object:Gem::Version
28
- version: 1.16.1
28
+ version: 1.17.3
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: rake
31
31
  requirement: !ruby/object:Gem::Requirement
@@ -69,47 +69,19 @@ dependencies:
69
69
  - !ruby/object:Gem::Version
70
70
  version: 1.43.0
71
71
  - !ruby/object:Gem::Dependency
72
- name: fog-azure
73
- requirement: !ruby/object:Gem::Requirement
74
- requirements:
75
- - - ">="
76
- - !ruby/object:Gem::Version
77
- version: '0'
78
- type: :runtime
79
- prerelease: false
80
- version_requirements: !ruby/object:Gem::Requirement
81
- requirements:
82
- - - ">="
83
- - !ruby/object:Gem::Version
84
- version: '0'
85
- - !ruby/object:Gem::Dependency
86
- name: fog-azure-rm
72
+ name: fog-google
87
73
  requirement: !ruby/object:Gem::Requirement
88
74
  requirements:
89
75
  - - '='
90
76
  - !ruby/object:Gem::Version
91
- version: 0.0.3
77
+ version: 1.8.2
92
78
  type: :runtime
93
79
  prerelease: false
94
80
  version_requirements: !ruby/object:Gem::Requirement
95
81
  requirements:
96
82
  - - '='
97
83
  - !ruby/object:Gem::Version
98
- version: 0.0.3
99
- - !ruby/object:Gem::Dependency
100
- name: azure
101
- requirement: !ruby/object:Gem::Requirement
102
- requirements:
103
- - - ">="
104
- - !ruby/object:Gem::Version
105
- version: '0'
106
- type: :runtime
107
- prerelease: false
108
- version_requirements: !ruby/object:Gem::Requirement
109
- requirements:
110
- - - ">="
111
- - !ruby/object:Gem::Version
112
- version: '0'
84
+ version: 1.8.2
113
85
  - !ruby/object:Gem::Dependency
114
86
  name: rvm-capistrano
115
87
  requirement: !ruby/object:Gem::Requirement
@@ -260,6 +232,7 @@ files:
260
232
  - bin/avst-cloud
261
233
  - bin/avst-cloud-azure
262
234
  - bin/avst-cloud-azure-rm
235
+ - bin/avst-cloud-gcp
263
236
  - bin/avst-cloud-puppet
264
237
  - bin/avst-cloud-rackspace
265
238
  - config/custom_system_config/hiera-configs/defaults/example.yaml
@@ -277,6 +250,8 @@ files:
277
250
  - lib/avst-cloud/azure_server.rb
278
251
  - lib/avst-cloud/cloud_connection.rb
279
252
  - lib/avst-cloud/cloud_server.rb
253
+ - lib/avst-cloud/gcp_connection.rb
254
+ - lib/avst-cloud/gcp_server.rb
280
255
  - lib/avst-cloud/logging.rb
281
256
  - lib/avst-cloud/rackspace_connection.rb
282
257
  - lib/avst-cloud/rackspace_server.rb
@@ -300,8 +275,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
300
275
  - !ruby/object:Gem::Version
301
276
  version: '0'
302
277
  requirements: []
303
- rubyforge_project:
304
- rubygems_version: 2.7.7
278
+ rubygems_version: 3.0.4
305
279
  signing_key:
306
280
  specification_version: 4
307
281
  summary: Automated creation, bootstrapping and provisioning of servers