avst-cloud 0.1.38 → 0.1.39
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/avst-cloud.gemspec +1 -1
- data/lib/avst-cloud/aws_connection.rb +43 -9
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e554dc8cd38016db8c872e1f914121d5c3ea77656baf8728dfd4adeac4f1d46f
|
4
|
+
data.tar.gz: 56246f4e2eac57dba6b5e840cb037d64425e7d69b3cb44f7bf6e78da80b3c4ce
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0b8cdba149899e18f325e7452e006c0b20d9fca52b334984682b092bba5784cfb6d028849d67a9b87c57e7e5a8e48c849b6940a181e7f9df74e12d598db1ba98
|
7
|
+
data.tar.gz: 2a02c5de191f28a462db748ae7f803758f5b13272731600df90ec34e4d1cfdbb5948aacfc49fd8f3a099ce54b1deabf7db56c90ec4e64e30312070996ee265bd
|
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.39'
|
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 }
|
@@ -33,7 +33,7 @@ module AvstCloud
|
|
33
33
|
AvstCloud::AwsServer.new(server, server_name, server.public_ip_address, root_user, root_password)
|
34
34
|
end
|
35
35
|
|
36
|
-
def create_server(server_name, flavour, os, key_name, ssh_key, subnet_id, security_group_ids, ebs_size, hdd_device_path, ami_image_id, availability_zone, additional_hdds={}, vpc=nil, created_by=nil, custom_tags={}, root_username=nil, create_elastic_ip=false)
|
36
|
+
def create_server(server_name, flavour, os, key_name, ssh_key, subnet_id, security_group_ids, ebs_size, hdd_device_path, ami_image_id, availability_zone, additional_hdds={}, vpc=nil, created_by=nil, custom_tags={}, root_username=nil, create_elastic_ip=false, encrypt_root=false ,root_encryption_key=nil, delete_root_disk=true, root_disk_type='gp2', root_disk_iops=0)
|
37
37
|
# Permit named instances from DEFAULT_FLAVOURS
|
38
38
|
flavour = flavour || "t2.micro"
|
39
39
|
os = os || "ubuntu-14"
|
@@ -91,22 +91,56 @@ module AvstCloud
|
|
91
91
|
create_ebs_volume = nil
|
92
92
|
if ebs_size
|
93
93
|
# in case of centos ami we need to use /dev/xvda this is ami dependent
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
94
|
+
root_disk = {
|
95
|
+
:DeviceName => device_name,
|
96
|
+
'Ebs.VolumeType' => root_disk_type,
|
97
|
+
'Ebs.VolumeSize' => ebs_size,
|
98
|
+
}
|
99
|
+
# if the root disk is to be encrypted set te "Encrypted" flag to true, if there is an optional KMS Key ID send that,
|
100
|
+
# if not set to nil and thereby defalt to the default key for EBS
|
101
|
+
if encrypt_root
|
102
|
+
root_disk.merge!('Ebs.Encrypted' => true, 'Ebs.KmsKeyId' => root_encryption_key||nil )
|
103
|
+
end
|
104
|
+
|
105
|
+
# if we do not want to delete the root disk with the VM set the flag
|
106
|
+
if delete_root_disk == false || delete_root_disk == 'false'
|
107
|
+
root_disk.merge!('Ebs.DeleteOnTermination' => false)
|
108
|
+
end
|
109
|
+
|
110
|
+
# if this is a provisioned IOPS disk set the iops value
|
111
|
+
if root_disk_type == 'io1'
|
112
|
+
root_disk.merge!('Ebs.Iops' => root_disk_iops)
|
113
|
+
end
|
114
|
+
# add the root disk as the first entry in the array of disks to create/attach
|
115
|
+
create_ebs_volume = [ root_disk ]
|
116
|
+
|
101
117
|
if additional_hdds and additional_hdds.is_a?(Hash)
|
102
118
|
additional_hdds.each_value do |disk|
|
103
119
|
volume_type = disk['volume_type'] || 'gp2'
|
104
120
|
if disk['device_name'] && disk['ebs_size']
|
105
|
-
|
121
|
+
disk_hash = {
|
106
122
|
:DeviceName => disk['device_name'],
|
107
123
|
'Ebs.VolumeType' => volume_type,
|
108
124
|
'Ebs.VolumeSize' => disk['ebs_size']
|
109
125
|
}
|
126
|
+
# if the additional disk is to be encrypted set te "Encrypted" flag to true, if there is an optional KMS Key ID send that,
|
127
|
+
# if not set to nil and thereby defalt to the default key for EBS
|
128
|
+
if disk['encrypted']
|
129
|
+
disk_hash.merge!('Ebs.Encrypted' => true, 'Ebs.KmsKeyId' => disk['encryption_key_id'] || nil)
|
130
|
+
end
|
131
|
+
|
132
|
+
# if we do not want to delete the additional disk with the VM set the flag
|
133
|
+
if disk['delete_disk_with_vm'] == false || disk['delete_disk_with_vm'] == 'false'
|
134
|
+
disk_hash.merge!('Ebs.DeleteOnTermination' => false)
|
135
|
+
end
|
136
|
+
|
137
|
+
# if the additional disk is an provisioned IOPS disk set the iops value
|
138
|
+
if volume_type == 'io1'
|
139
|
+
disk_hash.merge!('Ebs.Iops' => disk['volume_iops'] || 0)
|
140
|
+
end
|
141
|
+
|
142
|
+
# add this disk to the array of all disks to create/attach
|
143
|
+
create_ebs_volume << disk_hash
|
110
144
|
else
|
111
145
|
logger.warn "Failed to create additional hdd, required params device_name (e.g. /dev/sda1) or ebs_size missing: #{disk}"
|
112
146
|
end
|
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.39
|
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: 2020-
|
13
|
+
date: 2020-08-21 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: bundler
|
@@ -275,8 +275,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
275
275
|
- !ruby/object:Gem::Version
|
276
276
|
version: '0'
|
277
277
|
requirements: []
|
278
|
-
|
279
|
-
rubygems_version: 2.7.7
|
278
|
+
rubygems_version: 3.0.8
|
280
279
|
signing_key:
|
281
280
|
specification_version: 4
|
282
281
|
summary: Automated creation, bootstrapping and provisioning of servers
|