knife-azure 1.2.2 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/README.md +1 -1
- data/lib/chef/knife/azure_server_create.rb +22 -13
- data/lib/knife-azure/version.rb +1 -1
- metadata +16 -58
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NWQxYTRjNmM1YmEwZmU2M2E1Y2M3NGU2YzkzNzIyNTE4OTFkMzQwOQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MGFhNjQxYTFmZjVjMjFkODZiZGI4NDY2ZGFjOWYyMDFlNTNkOTI0ZA==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MmZmM2Q0ZTIwODUxZTRiN2FlNmY5ZjFlZmUxMGFlZDFkMjhiODhhYjBkYmY0
|
10
|
+
MGVlYzA5NjdkNmZhMTY0ZDY2N2E1ODU3M2M4NzAwYjFiMDlmY2Q2ZDM1YjQ0
|
11
|
+
MzlkNjBjOWZiNGUxNTg1ZGE4ZDRmODcxNzRjODMyNTYyODcwOTQ=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NTZhYmViMTFhNDk1N2RiZTE0OTk2NzIzZDU3YjQ4YTQ0NGRlZTc3MjhmNTdm
|
14
|
+
NTVjMDZlOTNjMjJmYTYxZTcyNGU4MzVhY2UxMTUyYjgyOTc4YmViZjdiY2Yx
|
15
|
+
OTgxZGJkYmRlZDhlZTdhODliNGQ4ZGZhMTY0NzhiOWYyM2JlZTE=
|
data/README.md
CHANGED
@@ -51,7 +51,7 @@ location in your knife.rb:
|
|
51
51
|
$ knife azure server create -N MyNewNode --azure-vm-size Medium --I 8fcc3d_Ubuntu-12_04-amd64-30GB -m 'West US' --ssh-user myuser --identity-file ~/.ssh/myprivatekey_rsa
|
52
52
|
|
53
53
|
# Create and bootstrap a Windows VM over winrm
|
54
|
-
$ knife azure server create --azure-dns-name MyNewServerName --azure-vm-size Medium --
|
54
|
+
$ knife azure server create --azure-dns-name MyNewServerName --azure-vm-size Medium --azure-source-image 8fcc3d_Win2012-amd64-30GB --azure-service-location 'West US' --winrm-user myuser --winrm-password 'mypassword' --bootstrap-protocol winrm --distro 'windows-chef-client-msi'
|
55
55
|
|
56
56
|
# Delete a server and purge it from the Chef server
|
57
57
|
$ knife azure server delete MyNewNode --purge -y
|
@@ -207,6 +207,12 @@ class Chef
|
|
207
207
|
Chef::Config[:knife][:hints][name] = path ? JSON.parse(::File.read(path)) : Hash.new
|
208
208
|
}
|
209
209
|
|
210
|
+
option :json_attributes,
|
211
|
+
:short => "-j JSON",
|
212
|
+
:long => "--json-attributes JSON",
|
213
|
+
:description => "A JSON string to be added to the first run of chef-client",
|
214
|
+
:proc => lambda { |o| JSON.parse(o) }
|
215
|
+
|
210
216
|
def strip_non_ascii(string)
|
211
217
|
string.gsub(/[^0-9a-z ]/i, '')
|
212
218
|
end
|
@@ -346,8 +352,7 @@ class Chef
|
|
346
352
|
if connection.hosts.exists?(locate_config_value(:azure_dns_name))
|
347
353
|
remove_hosted_service_on_failure = nil
|
348
354
|
end
|
349
|
-
|
350
|
-
|
355
|
+
|
351
356
|
#If Storage Account is not specified, check if the geographic location has one to re-use
|
352
357
|
if not locate_config_value(:azure_storage_account)
|
353
358
|
storage_accts = connection.storageaccounts.all
|
@@ -359,6 +364,12 @@ class Chef
|
|
359
364
|
remove_storage_service_on_failure = nil
|
360
365
|
config[:azure_storage_account] = storage.name.to_s
|
361
366
|
end
|
367
|
+
else
|
368
|
+
if connection.storageaccounts.exists?(locate_config_value(:azure_storage_account))
|
369
|
+
remove_storage_service_on_failure = nil
|
370
|
+
else
|
371
|
+
remove_storage_service_on_failure = locate_config_value(:azure_storage_account)
|
372
|
+
end
|
362
373
|
end
|
363
374
|
|
364
375
|
begin
|
@@ -442,6 +453,7 @@ class Chef
|
|
442
453
|
|
443
454
|
bootstrap.config[:run_list] = config[:run_list]
|
444
455
|
bootstrap.config[:prerelease] = config[:prerelease]
|
456
|
+
bootstrap.config[:first_boot_attributes] = locate_config_value(:json_attributes) || {}
|
445
457
|
bootstrap.config[:bootstrap_version] = locate_config_value(:bootstrap_version)
|
446
458
|
bootstrap.config[:distro] = locate_config_value(:distro)
|
447
459
|
bootstrap.config[:template_file] = locate_config_value(:template_file)
|
@@ -487,28 +499,20 @@ class Chef
|
|
487
499
|
def bootstrap_for_node(server,fqdn,port)
|
488
500
|
bootstrap = Chef::Knife::Bootstrap.new
|
489
501
|
bootstrap.name_args = [fqdn]
|
490
|
-
bootstrap.config[:run_list] = config[:run_list]
|
491
502
|
bootstrap.config[:ssh_user] = locate_config_value(:ssh_user)
|
492
503
|
bootstrap.config[:ssh_password] = locate_config_value(:ssh_password)
|
493
504
|
bootstrap.config[:ssh_port] = port
|
494
505
|
bootstrap.config[:identity_file] = locate_config_value(:identity_file)
|
495
506
|
bootstrap.config[:chef_node_name] = locate_config_value(:chef_node_name) || server.name
|
496
|
-
bootstrap.config[:prerelease] = locate_config_value(:prerelease)
|
497
|
-
bootstrap.config[:bootstrap_version] = locate_config_value(:bootstrap_version)
|
498
|
-
bootstrap.config[:distro] = locate_config_value(:distro)
|
499
507
|
bootstrap.config[:use_sudo] = true unless locate_config_value(:ssh_user) == 'root'
|
500
508
|
bootstrap.config[:use_sudo_password] = true if bootstrap.config[:use_sudo]
|
501
|
-
bootstrap.config[:template_file] = config[:template_file]
|
502
509
|
bootstrap.config[:environment] = locate_config_value(:environment)
|
503
510
|
# may be needed for vpc_mode
|
504
511
|
bootstrap.config[:host_key_verify] = config[:host_key_verify]
|
505
512
|
bootstrap.config[:secret] = locate_config_value(:secret)
|
506
513
|
bootstrap.config[:secret_file] = locate_config_value(:secret_file)
|
507
514
|
|
508
|
-
|
509
|
-
load_cloud_attributes_in_hints(server)
|
510
|
-
|
511
|
-
bootstrap
|
515
|
+
bootstrap_common_params(bootstrap, server)
|
512
516
|
end
|
513
517
|
|
514
518
|
def validate!
|
@@ -602,11 +606,16 @@ class Chef
|
|
602
606
|
end
|
603
607
|
|
604
608
|
def cleanup_and_exit(remove_hosted_service_on_failure, remove_storage_service_on_failure)
|
609
|
+
ui.warn("Cleaning up resources...")
|
610
|
+
|
605
611
|
if remove_hosted_service_on_failure
|
606
|
-
connection.hosts.delete(remove_hosted_service_on_failure)
|
612
|
+
ret_val = connection.hosts.delete(remove_hosted_service_on_failure)
|
613
|
+
ret_val.content.empty? ? ui.warn("Deleted created DNS: #{remove_hosted_service_on_failure}.") : ui.warn("Deletion failed for created DNS:#{remove_hosted_service_on_failure}. " + ret_val.text)
|
607
614
|
end
|
615
|
+
|
608
616
|
if remove_storage_service_on_failure
|
609
|
-
connection.storageaccounts.delete(remove_storage_service_on_failure)
|
617
|
+
ret_val = connection.storageaccounts.delete(remove_storage_service_on_failure)
|
618
|
+
ret_val.content.empty? ? ui.warn("Deleted created Storage Account: #{remove_storage_service_on_failure}.") : ui.warn("Deletion failed for created Storage Account: #{remove_storage_service_on_failure}. " + ret_val.text)
|
610
619
|
end
|
611
620
|
exit 1
|
612
621
|
end
|
data/lib/knife-azure/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: knife-azure
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Barry Davis
|
@@ -9,64 +9,8 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-07-31 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
|
-
- !ruby/object:Gem::Dependency
|
15
|
-
name: rdoc
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
17
|
-
requirements:
|
18
|
-
- - ~>
|
19
|
-
- !ruby/object:Gem::Version
|
20
|
-
version: '3.12'
|
21
|
-
type: :runtime
|
22
|
-
prerelease: false
|
23
|
-
version_requirements: !ruby/object:Gem::Requirement
|
24
|
-
requirements:
|
25
|
-
- - ~>
|
26
|
-
- !ruby/object:Gem::Version
|
27
|
-
version: '3.12'
|
28
|
-
- !ruby/object:Gem::Dependency
|
29
|
-
name: bundler
|
30
|
-
requirement: !ruby/object:Gem::Requirement
|
31
|
-
requirements:
|
32
|
-
- - ! '>='
|
33
|
-
- !ruby/object:Gem::Version
|
34
|
-
version: '0'
|
35
|
-
type: :runtime
|
36
|
-
prerelease: false
|
37
|
-
version_requirements: !ruby/object:Gem::Requirement
|
38
|
-
requirements:
|
39
|
-
- - ! '>='
|
40
|
-
- !ruby/object:Gem::Version
|
41
|
-
version: '0'
|
42
|
-
- !ruby/object:Gem::Dependency
|
43
|
-
name: rubygems-bundler
|
44
|
-
requirement: !ruby/object:Gem::Requirement
|
45
|
-
requirements:
|
46
|
-
- - ~>
|
47
|
-
- !ruby/object:Gem::Version
|
48
|
-
version: 1.0.3
|
49
|
-
type: :runtime
|
50
|
-
prerelease: false
|
51
|
-
version_requirements: !ruby/object:Gem::Requirement
|
52
|
-
requirements:
|
53
|
-
- - ~>
|
54
|
-
- !ruby/object:Gem::Version
|
55
|
-
version: 1.0.3
|
56
|
-
- !ruby/object:Gem::Dependency
|
57
|
-
name: equivalent-xml
|
58
|
-
requirement: !ruby/object:Gem::Requirement
|
59
|
-
requirements:
|
60
|
-
- - ~>
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
version: 0.2.9
|
63
|
-
type: :runtime
|
64
|
-
prerelease: false
|
65
|
-
version_requirements: !ruby/object:Gem::Requirement
|
66
|
-
requirements:
|
67
|
-
- - ~>
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
version: 0.2.9
|
70
14
|
- !ruby/object:Gem::Dependency
|
71
15
|
name: nokogiri
|
72
16
|
requirement: !ruby/object:Gem::Requirement
|
@@ -123,6 +67,20 @@ dependencies:
|
|
123
67
|
- - ~>
|
124
68
|
- !ruby/object:Gem::Version
|
125
69
|
version: '2.0'
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: equivalent-xml
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - ~>
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: 0.2.9
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ~>
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: 0.2.9
|
126
84
|
description: A plugin to the Chef knife tool for creating instances on the Microsoft
|
127
85
|
Azure platform
|
128
86
|
email: oss@getchef.com
|