knife-azure 1.8.0 → 1.8.6
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.
- checksums.yaml +5 -5
- data/LICENSE +201 -201
- data/lib/azure/resource_management/ARM_deployment_template.rb +1 -1
- data/lib/azure/service_management/certificate.rb +0 -0
- data/lib/azure/service_management/connection.rb +0 -0
- data/lib/azure/service_management/deploy.rb +0 -0
- data/lib/azure/service_management/disk.rb +0 -0
- data/lib/azure/service_management/host.rb +0 -0
- data/lib/azure/service_management/image.rb +0 -0
- data/lib/azure/service_management/rest.rb +0 -0
- data/lib/azure/service_management/role.rb +0 -0
- data/lib/azure/service_management/utility.rb +0 -0
- data/lib/chef/knife/azure_ag_list.rb +0 -2
- data/lib/chef/knife/azure_base.rb +70 -0
- data/lib/chef/knife/azure_image_list.rb +0 -0
- data/lib/chef/knife/azure_internal-lb_list.rb +0 -2
- data/lib/chef/knife/azure_server_create.rb +2 -83
- data/lib/chef/knife/azure_server_delete.rb +0 -0
- data/lib/chef/knife/azure_server_list.rb +0 -0
- data/lib/chef/knife/azure_server_show.rb +0 -0
- data/lib/chef/knife/azure_vnet_list.rb +0 -2
- data/lib/chef/knife/azurerm_base.rb +71 -52
- data/lib/chef/knife/azurerm_server_create.rb +38 -45
- data/lib/chef/knife/azurerm_server_delete.rb +35 -27
- data/lib/chef/knife/azurerm_server_list.rb +20 -0
- data/lib/chef/knife/azurerm_server_show.rb +3 -1
- data/lib/chef/knife/bootstrap/bootstrapper.rb +11 -6
- data/lib/knife-azure/version.rb +1 -1
- metadata +3 -17
@@ -1,7 +1,7 @@
|
|
1
1
|
#
|
2
2
|
# Author:: Aliasgar Batterywala (aliasgar.batterywala@clogeny.com)
|
3
3
|
#
|
4
|
-
# Copyright:: Copyright
|
4
|
+
# Copyright:: Copyright 2009-2018, Chef Software Inc.
|
5
5
|
# License:: Apache License, Version 2.0
|
6
6
|
#
|
7
7
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
@@ -192,7 +192,8 @@ class Chef
|
|
192
192
|
|
193
193
|
def run
|
194
194
|
$stdout.sync = true
|
195
|
-
|
195
|
+
# check azure cli version due to azure changed `azure` to `az` in azure-cli2.0
|
196
|
+
get_azure_cli_version
|
196
197
|
validate_arm_keys!(
|
197
198
|
:azure_resource_group_name,
|
198
199
|
:azure_vm_name,
|
@@ -201,11 +202,8 @@ class Chef
|
|
201
202
|
|
202
203
|
begin
|
203
204
|
validate_params!
|
204
|
-
|
205
205
|
set_default_image_reference!
|
206
|
-
|
207
206
|
ssh_override_winrm if !is_image_windows?
|
208
|
-
|
209
207
|
vm_details = service.create_server(create_server_def)
|
210
208
|
rescue => error
|
211
209
|
service.common_arm_rescue_block(error)
|
@@ -319,61 +317,56 @@ class Chef
|
|
319
317
|
def set_default_image_reference!
|
320
318
|
begin
|
321
319
|
if locate_config_value(:azure_image_os_type)
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
320
|
+
validate_publisher_and_offer
|
321
|
+
## if azure_image_os_type is given (with or without azure-image-reference-sku) and other image reference parameters are not given,
|
322
|
+
# set default image reference parameters
|
323
|
+
case locate_config_value(:azure_image_os_type)
|
324
|
+
when "ubuntu"
|
325
|
+
set_os_image("Canonical", "UbuntuServer", "14.04.2-LTS")
|
326
|
+
when "centos"
|
327
|
+
set_os_image("OpenLogic", "CentOS", "7.1")
|
328
|
+
when "rhel"
|
329
|
+
set_os_image("RedHat", "RHEL", "7.2")
|
330
|
+
when "debian"
|
331
|
+
set_os_image("credativ", "Debian", "7")
|
332
|
+
when "windows"
|
333
|
+
set_os_image("MicrosoftWindowsServer", "WindowsServer", "2012-R2-Datacenter")
|
327
334
|
else
|
328
|
-
|
329
|
-
# set default image reference parameters
|
330
|
-
case locate_config_value(:azure_image_os_type)
|
331
|
-
when "ubuntu"
|
332
|
-
config[:azure_image_reference_publisher] = "Canonical"
|
333
|
-
config[:azure_image_reference_offer] = "UbuntuServer"
|
334
|
-
config[:azure_image_reference_sku] = locate_config_value(:azure_image_reference_sku) ? locate_config_value(:azure_image_reference_sku) : "14.04.2-LTS"
|
335
|
-
when "centos"
|
336
|
-
config[:azure_image_reference_publisher] = "OpenLogic"
|
337
|
-
config[:azure_image_reference_offer] = "CentOS"
|
338
|
-
config[:azure_image_reference_sku] = locate_config_value(:azure_image_reference_sku) ? locate_config_value(:azure_image_reference_sku) : "7.1"
|
339
|
-
when "rhel"
|
340
|
-
config[:azure_image_reference_publisher] = "RedHat"
|
341
|
-
config[:azure_image_reference_offer] = "RHEL"
|
342
|
-
config[:azure_image_reference_sku] = locate_config_value(:azure_image_reference_sku) ? locate_config_value(:azure_image_reference_sku) : "7.2"
|
343
|
-
when "debian"
|
344
|
-
config[:azure_image_reference_publisher] = "credativ"
|
345
|
-
config[:azure_image_reference_offer] = "Debian"
|
346
|
-
config[:azure_image_reference_sku] = locate_config_value(:azure_image_reference_sku) ? locate_config_value(:azure_image_reference_sku) : "7"
|
347
|
-
when "windows"
|
348
|
-
config[:azure_image_reference_publisher] = "MicrosoftWindowsServer"
|
349
|
-
config[:azure_image_reference_offer] = "WindowsServer"
|
350
|
-
config[:azure_image_reference_sku] = locate_config_value(:azure_image_reference_sku) ? locate_config_value(:azure_image_reference_sku) : "2012-R2-Datacenter"
|
351
|
-
else
|
352
|
-
raise ArgumentError, 'Invalid value of --azure-image-os-type. Accepted values ubuntu|centos|windows'
|
353
|
-
end
|
335
|
+
raise ArgumentError, 'Invalid value of --azure-image-os-type. Accepted values ubuntu|centos|windows'
|
354
336
|
end
|
355
337
|
else
|
356
|
-
|
357
|
-
# if azure_image_os_type is not given and other image reference parameters are given,
|
358
|
-
# do nothing
|
359
|
-
else
|
360
|
-
# if azure_image_os_type is not given and other image reference parameters are also not given,
|
361
|
-
# throw error for azure_image_os_type
|
362
|
-
validate_arm_keys!(:azure_image_os_type)
|
363
|
-
end
|
338
|
+
validate_arm_keys!(:azure_image_os_type) unless is_image_os_type?
|
364
339
|
end
|
365
340
|
rescue => error
|
366
341
|
ui.error("#{error.message}")
|
367
342
|
Chef::Log.debug("#{error.backtrace.join("\n")}")
|
368
343
|
exit
|
369
344
|
end
|
370
|
-
|
371
345
|
# final verification for image reference parameters
|
372
346
|
validate_arm_keys!(:azure_image_reference_publisher,
|
373
347
|
:azure_image_reference_offer,
|
374
348
|
:azure_image_reference_sku,
|
375
349
|
:azure_image_reference_version)
|
376
350
|
end
|
351
|
+
|
352
|
+
def set_os_image(publisher, img_offer, default_os_version)
|
353
|
+
config[:azure_image_reference_publisher] = publisher
|
354
|
+
config[:azure_image_reference_offer] = img_offer
|
355
|
+
config[:azure_image_reference_sku] = locate_config_value(:azure_image_reference_sku) ? locate_config_value(:azure_image_reference_sku) : default_os_version
|
356
|
+
end
|
357
|
+
|
358
|
+
def is_image_os_type?
|
359
|
+
locate_config_value(:azure_image_reference_publisher) && locate_config_value(:azure_image_reference_offer) && locate_config_value(:azure_image_reference_sku) && locate_config_value(:azure_image_reference_version)
|
360
|
+
end
|
361
|
+
|
362
|
+
def validate_publisher_and_offer
|
363
|
+
if (locate_config_value(:azure_image_reference_publisher) || locate_config_value(:azure_image_reference_offer))
|
364
|
+
# if azure_image_os_type is given and any of the other image reference parameters like publisher or offer are also given,
|
365
|
+
# raise error
|
366
|
+
raise ArgumentError, 'Please specify either --azure-image-os-type OR --azure-image-os-type with --azure-image-reference-sku or 4 image reference parameters i.e.
|
367
|
+
--azure-image-reference-publisher, --azure-image-reference-offer, --azure-image-reference-sku, --azure-image-reference-version."'
|
368
|
+
end
|
369
|
+
end
|
377
370
|
end
|
378
371
|
end
|
379
372
|
end
|
@@ -2,7 +2,7 @@
|
|
2
2
|
# Author:: Barry Davis (barryd@jetstreamsoftware.com)
|
3
3
|
# Author:: Adam Jacob (<adam@opscode.com>)
|
4
4
|
# Author:: Seth Chisamore (<schisamo@opscode.com>)
|
5
|
-
# Copyright:: Copyright
|
5
|
+
# Copyright:: Copyright 2009-2018, Chef Software Inc.
|
6
6
|
# License:: Apache License, Version 2.0
|
7
7
|
#
|
8
8
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
@@ -18,7 +18,7 @@
|
|
18
18
|
# limitations under the License.
|
19
19
|
#
|
20
20
|
|
21
|
-
require File.expand_path('../
|
21
|
+
require File.expand_path('../azurerm_base', __FILE__)
|
22
22
|
|
23
23
|
# These two are needed for the '--purge' deletion case
|
24
24
|
require 'chef/node'
|
@@ -69,44 +69,52 @@ class Chef
|
|
69
69
|
def run
|
70
70
|
begin
|
71
71
|
$stdout.sync = true
|
72
|
+
# check azure cli version due to azure changed `azure` to `az` in azure-cli2.0
|
73
|
+
get_azure_cli_version
|
72
74
|
validate_arm_keys!(:azure_resource_group_name)
|
73
|
-
|
74
|
-
vm_name = @name_args[0]
|
75
|
-
resource_group_name = locate_config_value(:azure_resource_group_name)
|
75
|
+
@vm_name = @name_args[0]
|
76
76
|
|
77
77
|
if locate_config_value(:delete_resource_group)
|
78
|
-
|
79
|
-
begin
|
80
|
-
ui.confirm('Do you really want to delete resource group')
|
81
|
-
rescue SystemExit # Need to handle this as confirming with N/n raises SystemExit exception
|
82
|
-
server = nil # Cleanup is implicitly performed in other cloud plugins
|
83
|
-
ui.warn "Resource group not deleted. Proceeding for server delete ..."
|
84
|
-
service.delete_server(locate_config_value(:azure_resource_group_name), vm_name)
|
85
|
-
exit
|
86
|
-
end
|
87
|
-
|
88
|
-
ui.info 'Deleting Resource Group '+resource_group_name+' and Virtual Machine '+vm_name+' ..'
|
89
|
-
service.delete_resource_group(locate_config_value(:azure_resource_group_name))
|
90
|
-
ui.warn "Deleted resource_group_name #{resource_group_name} and #{vm_name}"
|
78
|
+
delete_resource_group
|
91
79
|
else
|
92
|
-
service.delete_server(locate_config_value(:azure_resource_group_name), vm_name)
|
80
|
+
service.delete_server(locate_config_value(:azure_resource_group_name), @vm_name)
|
93
81
|
end
|
94
82
|
|
95
83
|
if config[:purge]
|
96
|
-
|
97
|
-
if node_to_delete
|
98
|
-
destroy_item(Chef::Node, node_to_delete, 'node')
|
99
|
-
destroy_item(Chef::ApiClient, node_to_delete, 'client')
|
100
|
-
else
|
101
|
-
ui.warn("Node name to purge not provided. Corresponding client node will remain on Chef Server.")
|
102
|
-
end
|
84
|
+
purge_node
|
103
85
|
else
|
104
|
-
ui.warn("Corresponding node and client for the #{vm_name} server were not deleted and remain registered with the Chef Server")
|
86
|
+
ui.warn("Corresponding node and client for the #{@vm_name} server were not deleted and remain registered with the Chef Server")
|
105
87
|
end
|
106
88
|
rescue => error
|
107
89
|
service.common_arm_rescue_block(error)
|
108
90
|
end
|
109
91
|
end
|
92
|
+
|
93
|
+
def delete_resource_group
|
94
|
+
resource_group_name = locate_config_value(:azure_resource_group_name)
|
95
|
+
ui.warn "Deleting resource group will delete all the virtual_machines inside it."
|
96
|
+
begin
|
97
|
+
ui.confirm('Do you really want to delete resource group')
|
98
|
+
rescue SystemExit # Need to handle this as confirming with N/n raises SystemExit exception
|
99
|
+
server = nil # Cleanup is implicitly performed in other cloud plugins
|
100
|
+
ui.warn "Resource group not deleted. Proceeding for server delete ..."
|
101
|
+
service.delete_server(locate_config_value(:azure_resource_group_name), @vm_name)
|
102
|
+
exit
|
103
|
+
end
|
104
|
+
ui.info 'Deleting Resource Group '+resource_group_name+' and Virtual Machine '+@vm_name+' ..'
|
105
|
+
service.delete_resource_group(locate_config_value(:azure_resource_group_name))
|
106
|
+
ui.warn "Deleted resource_group_name #{resource_group_name} and #{@vm_name}"
|
107
|
+
end
|
108
|
+
|
109
|
+
def purge_node
|
110
|
+
node_to_delete = config[:chef_node_name] || @vm_name
|
111
|
+
if node_to_delete
|
112
|
+
destroy_item(Chef::Node, node_to_delete, 'node')
|
113
|
+
destroy_item(Chef::ApiClient, node_to_delete, 'client')
|
114
|
+
else
|
115
|
+
ui.warn("Node name to purge not provided. Corresponding client node will remain on Chef Server.")
|
116
|
+
end
|
117
|
+
end
|
110
118
|
end
|
111
119
|
end
|
112
120
|
end
|
@@ -1,3 +1,21 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Adam Jacob (<adam@chef.io>)
|
3
|
+
# Copyright:: Copyright 2009-2018, Chef Software Inc.
|
4
|
+
# License:: Apache License, Version 2.0
|
5
|
+
#
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
+
# you may not use this file except in compliance with the License.
|
8
|
+
# You may obtain a copy of the License at
|
9
|
+
#
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
+
#
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
+
# See the License for the specific language governing permissions and
|
16
|
+
# limitations under the License.
|
17
|
+
#
|
18
|
+
|
1
19
|
require File.expand_path('../azurerm_base', __FILE__)
|
2
20
|
|
3
21
|
class Chef
|
@@ -10,6 +28,8 @@ class Chef
|
|
10
28
|
|
11
29
|
def run
|
12
30
|
$stdout.sync = true
|
31
|
+
# check azure cli version due to azure changed `azure` to `az` in azure-cli2.0
|
32
|
+
get_azure_cli_version
|
13
33
|
validate_arm_keys!
|
14
34
|
begin
|
15
35
|
service.list_servers(locate_config_value(:azure_resource_group_name))
|
@@ -1,6 +1,6 @@
|
|
1
1
|
#
|
2
2
|
# Author:: Meera Navale (meera.navale@msystechnologies.com)
|
3
|
-
# Copyright:: Copyright
|
3
|
+
# Copyright:: Copyright 2010-2018, Chef Software Inc.
|
4
4
|
# License:: Apache License, Version 2.0
|
5
5
|
#
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
@@ -28,6 +28,8 @@ class Chef
|
|
28
28
|
|
29
29
|
def run
|
30
30
|
$stdout.sync = true
|
31
|
+
# check azure cli version due to azure changed `azure` to `az` in azure-cli2.0
|
32
|
+
get_azure_cli_version
|
31
33
|
validate_arm_keys!(:azure_resource_group_name)
|
32
34
|
begin
|
33
35
|
service.show_server(@name_args[0], locate_config_value(:azure_resource_group_name))
|
@@ -275,7 +275,7 @@ class Chef
|
|
275
275
|
def get_chef_extension_public_params
|
276
276
|
pub_config = Hash.new
|
277
277
|
if(locate_config_value(:azure_extension_client_config))
|
278
|
-
pub_config[:client_rb] = File.read(locate_config_value(:azure_extension_client_config))
|
278
|
+
pub_config[:client_rb] = File.read(File.expand_path(locate_config_value(:azure_extension_client_config)))
|
279
279
|
else
|
280
280
|
pub_config[:client_rb] = "chef_server_url \t #{Chef::Config[:chef_server_url].to_json}\nvalidation_client_name\t#{Chef::Config[:validation_client_name].to_json}"
|
281
281
|
end
|
@@ -331,7 +331,9 @@ class Chef
|
|
331
331
|
pri_config = Hash.new
|
332
332
|
|
333
333
|
# validator less bootstrap support for bootstrap protocol cloud-api
|
334
|
-
if
|
334
|
+
if Chef::Config[:validation_key] && File.exist?(File.expand_path(Chef::Config[:validation_key]))
|
335
|
+
pri_config[:validation_key] = File.read(File.expand_path(Chef::Config[:validation_key]))
|
336
|
+
else
|
335
337
|
if Chef::VERSION.split('.').first.to_i == 11
|
336
338
|
ui.error('Unable to find validation key. Please verify your configuration file for validation_key config value.')
|
337
339
|
exit 1
|
@@ -346,16 +348,19 @@ class Chef
|
|
346
348
|
config[:chef_node_name] = node_name
|
347
349
|
else
|
348
350
|
key_path = create_node_and_client_pem
|
349
|
-
|
351
|
+
if File.exist?(key_path)
|
352
|
+
pri_config[:client_pem] = File.read(key_path)
|
353
|
+
else
|
354
|
+
ui.error('Unable to find client.pem at given path #{key_path}')
|
355
|
+
exit 1
|
356
|
+
end
|
350
357
|
end
|
351
|
-
else
|
352
|
-
pri_config[:validation_key] = File.read(Chef::Config[:validation_key])
|
353
358
|
end
|
354
359
|
|
355
360
|
# SSL cert bootstrap support
|
356
361
|
if locate_config_value(:cert_path)
|
357
362
|
if File.exist?(File.expand_path(locate_config_value(:cert_path)))
|
358
|
-
pri_config[:chef_server_crt] = File.read(locate_config_value(:cert_path))
|
363
|
+
pri_config[:chef_server_crt] = File.read(File.expand_path(locate_config_value(:cert_path)))
|
359
364
|
else
|
360
365
|
ui.error('Specified SSL certificate does not exist.')
|
361
366
|
exit 1
|
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.8.
|
4
|
+
version: 1.8.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Barry Davis
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2018-09-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
@@ -151,20 +151,6 @@ dependencies:
|
|
151
151
|
- - ">="
|
152
152
|
- !ruby/object:Gem::Version
|
153
153
|
version: 12.2.1
|
154
|
-
- !ruby/object:Gem::Dependency
|
155
|
-
name: github_changelog_generator
|
156
|
-
requirement: !ruby/object:Gem::Requirement
|
157
|
-
requirements:
|
158
|
-
- - ">="
|
159
|
-
- !ruby/object:Gem::Version
|
160
|
-
version: '0'
|
161
|
-
type: :development
|
162
|
-
prerelease: false
|
163
|
-
version_requirements: !ruby/object:Gem::Requirement
|
164
|
-
requirements:
|
165
|
-
- - ">="
|
166
|
-
- !ruby/object:Gem::Version
|
167
|
-
version: '0'
|
168
154
|
- !ruby/object:Gem::Dependency
|
169
155
|
name: mixlib-config
|
170
156
|
requirement: !ruby/object:Gem::Requirement
|
@@ -282,7 +268,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
282
268
|
version: '0'
|
283
269
|
requirements: []
|
284
270
|
rubyforge_project:
|
285
|
-
rubygems_version: 2.6
|
271
|
+
rubygems_version: 2.7.6
|
286
272
|
signing_key:
|
287
273
|
specification_version: 4
|
288
274
|
summary: A plugin to the Chef knife tool for creating instances on the Microsoft Azure
|