foreman_azure_rm 2.2.4 → 2.2.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +6 -6
- data/app/models/concerns/foreman_azure_rm/vm_extensions/managed_vm.rb +40 -1
- data/app/models/foreman_azure_rm/azure_rm.rb +41 -11
- data/app/models/foreman_azure_rm/azure_rm_compute.rb +35 -4
- data/app/views/compute_resources_vms/form/azurerm/_base.html.erb +17 -0
- data/lib/foreman_azure_rm/version.rb +1 -1
- data/locale/ca/foreman_azure_rm.po +231 -3
- data/locale/cs_CZ/foreman_azure_rm.po +231 -3
- data/locale/de/foreman_azure_rm.po +231 -3
- data/locale/en/foreman_azure_rm.po +231 -3
- data/locale/en_GB/foreman_azure_rm.po +231 -3
- data/locale/es/foreman_azure_rm.po +231 -3
- data/locale/foreman_azure_rm.pot +339 -28
- data/locale/fr/foreman_azure_rm.po +231 -3
- data/locale/gl/foreman_azure_rm.po +231 -3
- data/locale/it/foreman_azure_rm.po +231 -3
- data/locale/ja/foreman_azure_rm.po +231 -3
- data/locale/ko/foreman_azure_rm.po +232 -5
- data/locale/nl_NL/foreman_azure_rm.po +231 -4
- data/locale/pl/foreman_azure_rm.po +232 -5
- data/locale/pt_BR/foreman_azure_rm.po +232 -5
- data/locale/ru/foreman_azure_rm.po +232 -5
- data/locale/sv_SE/foreman_azure_rm.po +231 -3
- data/locale/zh_CN/foreman_azure_rm.po +231 -3
- data/locale/zh_TW/foreman_azure_rm.po +231 -3
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 17a61e0daa9ad81dba459c8976da8712fae9a1ff4b52aeb85c6a04f7aa9d5be8
|
4
|
+
data.tar.gz: e7469e41dcf4327afaf31de2b37be1f9119700419d6c22319df282e1e816451d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3cfe08678137c3c193362eec308091a1a7a45cc359e70590228be1a1022090b8041dac66ec5bc2a8adeab945615b45c0df5b9b2be73c6239aef73a21503eb7ce
|
7
|
+
data.tar.gz: 22d9c5ce4049fe7546dc48bdfdb382b61f5f7f3afa961ef328da2a92eb64bee4c3bbbfe3abae40eb80fcbdb183712d32b2e7b7e27f76d15bc785272c6d4d6cad
|
data/README.md
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# Foreman AzureRm Plugin
|
2
2
|
|
3
3
|
## Description
|
4
|
-
```foreman_azure_rm``` adds [Microsoft Azure Resource Manager](http://azure.com/) as a
|
4
|
+
```foreman_azure_rm``` adds [Microsoft Azure Resource Manager](http://azure.com/) as a Compute Resource for The Foreman
|
5
5
|
|
6
6
|
* Website: [TheForeman.org](http://theforeman.org)
|
7
7
|
* ForemanAzureRm: [Plugin manual](https://theforeman.org/plugins/foreman_azure)
|
@@ -11,7 +11,7 @@
|
|
11
11
|
|
12
12
|
### Bundle (Gem)
|
13
13
|
|
14
|
-
Add the following to bundler.d/Gemfile.local.rb in your Foreman installation directory
|
14
|
+
Add the following to `bundler.d/Gemfile.local.rb` in your Foreman installation directory `/usr/share/foreman`
|
15
15
|
|
16
16
|
```console
|
17
17
|
$ gem 'foreman_azure_rm'
|
@@ -55,7 +55,6 @@ Then run `bundle install` from the same directory
|
|
55
55
|
* VM creation
|
56
56
|
* Provisions using Finish and User data templates from Foreman
|
57
57
|
* Supports cloud-config provisioning
|
58
|
-
* Currently supports only provisioning of Linux platforms
|
59
58
|
* Provisioning using [Public Images](https://docs.microsoft.com/en-us/azure/virtual-machines/linux/cli-ps-findimage)
|
60
59
|
* Provision using custom images
|
61
60
|
* Provision using shared image galleries
|
@@ -64,6 +63,7 @@ Then run `bundle install` from the same directory
|
|
64
63
|
* Support to add multiple data disks/volumes (standard or premium)
|
65
64
|
* VM Extension with Custom Script and File URIs support
|
66
65
|
* Static or dynamic addresses on a per NIC basis
|
66
|
+
* Support for NVIDIA Drivers or CUDA on Linux and Windows
|
67
67
|
* Limited extension support
|
68
68
|
* Microsoft's custom script extension
|
69
69
|
* Puppet Lab's Puppet agent extension for Windows
|
@@ -74,16 +74,16 @@ Go to **Infrastructure > Compute Resources** and click on "New Compute Resource"
|
|
74
74
|
|
75
75
|
Choose the **Azure Resource Manager provider**, and fill in all the fields. You need a Subscription ID, Tenant ID, Client ID and a Client Secret which you can generate from your [Microsoft Azure subscription](https://docs.bmc.com/docs/cloudlifecyclemanagement/46/setting-up-a-tenant-id-client-id-and-client-secret-for-azure-resource-manager-provisioning-669202145.html#SettingupaTenantID,ClientID,andClientSecretforAzureResourceManagerprovisioning-SetupTenantIDPrereqPrerequisites)
|
76
76
|
|
77
|
-
That's it. You're now ready to create and manage Azure resources in your new Azure Resource Manager
|
77
|
+
That's it. You're now ready to create and manage Azure resources in your new Azure Resource Manager Compute Resource. You should see something like this in the Compute Resource page:
|
78
78
|
|
79
79
|
|
80
|
-
![](https://i.imgur.com/
|
80
|
+
![](https://i.imgur.com/yMGg3A6.png)
|
81
81
|
|
82
82
|
|
83
83
|
![](https://i.imgur.com/Ag9tH55.png)
|
84
84
|
|
85
85
|
|
86
|
-
![](https://i.imgur.com/
|
86
|
+
![](https://i.imgur.com/OKoGgUY.png)
|
87
87
|
|
88
88
|
|
89
89
|
## Planned Features
|
@@ -123,7 +123,7 @@ module ForemanAzureRm
|
|
123
123
|
def create_nics(region, args = {})
|
124
124
|
nics = []
|
125
125
|
args[:interfaces_attributes].each do |nic, attrs|
|
126
|
-
private_ip =
|
126
|
+
private_ip = ActiveRecord::Type::Boolean.new.deserialize(attrs[:private_ip])
|
127
127
|
priv_ip_alloc = if private_ip
|
128
128
|
NetworkModels::IPAllocationMethod::Static
|
129
129
|
else
|
@@ -176,6 +176,14 @@ module ForemanAzureRm
|
|
176
176
|
logger.debug msg
|
177
177
|
vm_create_params = ComputeModels::VirtualMachine.new.tap do |vm|
|
178
178
|
vm.location = vm_hash[:location]
|
179
|
+
vm.tags = {}
|
180
|
+
unless vm_hash[:tags].nil?
|
181
|
+
arr = vm_hash[:tags].split(',')
|
182
|
+
arr.each do |item|
|
183
|
+
kv = item.split('=')
|
184
|
+
vm.tags[kv[0].strip] = kv[1].strip
|
185
|
+
end
|
186
|
+
end
|
179
187
|
unless vm_hash[:availability_set_id].nil?
|
180
188
|
sub_resource = MsRestAzure::SubResource.new
|
181
189
|
sub_resource.id = vm_hash[:availability_set_id]
|
@@ -261,12 +269,43 @@ module ForemanAzureRm
|
|
261
269
|
'commandToExecute' => args[:script_command],
|
262
270
|
'fileUris' => args[:script_uris].split(',')
|
263
271
|
}
|
272
|
+
|
273
|
+
extension_for_log = "#{extension.publisher}/#{extension.virtual_machine_extension_type}/#{extension.type_handler_version}"
|
274
|
+
Foreman::Logging.logger('app').info "Azure RM machine #{args[:name]}: creating #{extension_for_log} extension"
|
264
275
|
sdk.create_or_update_vm_extensions(args[:resource_group],
|
265
276
|
args[:vm_name],
|
266
277
|
'ForemanCustomScript',
|
267
278
|
extension)
|
268
279
|
end
|
269
280
|
end
|
281
|
+
|
282
|
+
def create_vm_nvidia_gpu_extension(region, args = {})
|
283
|
+
extension = ComputeModels::VirtualMachineExtension.new
|
284
|
+
extension.publisher = 'Microsoft.HpcCompute'
|
285
|
+
extension.type_handler_version = '1.3'
|
286
|
+
extension.auto_upgrade_minor_version = true
|
287
|
+
extension.location = region
|
288
|
+
|
289
|
+
case args[:platform]
|
290
|
+
# https://docs.microsoft.com/fr-fr/azure/virtual-machines/extensions/hpccompute-gpu-linux
|
291
|
+
when 'Linux'
|
292
|
+
extension_name = 'NvidiaGpuDriverLinux'
|
293
|
+
# https://docs.microsoft.com/fr-fr/azure/virtual-machines/extensions/hpccompute-gpu-windows
|
294
|
+
when 'Windows'
|
295
|
+
extension_name = 'NvidiaGpuDriverWindows'
|
296
|
+
else
|
297
|
+
raise RuntimeError, "Unsupported platform #{args[:platform]}"
|
298
|
+
end
|
299
|
+
extension.virtual_machine_extension_type = extension_name
|
300
|
+
|
301
|
+
extension_for_log = "#{extension.publisher}/#{extension.virtual_machine_extension_type}/#{extension.type_handler_version}"
|
302
|
+
Foreman::Logging.logger('app').info "Azure RM machine #{args[:name]}: creating #{extension_for_log} extension"
|
303
|
+
sdk.create_or_update_vm_extensions(args[:resource_group],
|
304
|
+
args[:vm_name],
|
305
|
+
extension_name,
|
306
|
+
extension)
|
307
|
+
end
|
308
|
+
|
270
309
|
end
|
271
310
|
end
|
272
311
|
end
|
@@ -59,7 +59,7 @@ module ForemanAzureRm
|
|
59
59
|
end
|
60
60
|
|
61
61
|
def ensure_attributes_and_values
|
62
|
-
validate_region
|
62
|
+
validate_region if validate_cloud?
|
63
63
|
end
|
64
64
|
|
65
65
|
def validate_region
|
@@ -67,6 +67,15 @@ module ForemanAzureRm
|
|
67
67
|
errors.add(:region, "is not valid, must be lowercase eg. 'eastus'. No special characters allowed.") unless regions.collect(&:second).include?(region)
|
68
68
|
end
|
69
69
|
|
70
|
+
def validate_cloud?
|
71
|
+
valid_clouds = ['azure', 'azureusgovernment', 'azurechina', 'azuregermancloud']
|
72
|
+
unless valid_clouds.include?(cloud)
|
73
|
+
errors.add(:cloud, "is not valid. Valid choices are #{valid_clouds.join(", ")}.")
|
74
|
+
return false
|
75
|
+
end
|
76
|
+
true
|
77
|
+
end
|
78
|
+
|
70
79
|
def self.model_name
|
71
80
|
ComputeResource.model_name
|
72
81
|
end
|
@@ -116,7 +125,8 @@ module ForemanAzureRm
|
|
116
125
|
ssh_key_data: opts[:ssh_key_data],
|
117
126
|
os_disk_caching: opts[:os_disk_caching],
|
118
127
|
premium_os_disk: opts[:premium_os_disk],
|
119
|
-
os_disk_size_gb: opts[:os_disk_size_gb]
|
128
|
+
os_disk_size_gb: opts[:os_disk_size_gb],
|
129
|
+
nvidia_gpu_extension: opts[:nvidia_gpu_extension],
|
120
130
|
)
|
121
131
|
if opts[:interfaces].present?
|
122
132
|
ifaces = []
|
@@ -127,7 +137,16 @@ module ForemanAzureRm
|
|
127
137
|
|
128
138
|
vols = opts.fetch(:volumes, []).map { |vols_attrs| new_volume(vols_attrs) } if opts[:volumes].present?
|
129
139
|
|
130
|
-
AzureRmCompute.new(
|
140
|
+
AzureRmCompute.new(
|
141
|
+
azure_vm: raw_vm,
|
142
|
+
sdk: sdk,
|
143
|
+
resource_group: opts[:resource_group],
|
144
|
+
nics: ifaces,
|
145
|
+
volumes: vols,
|
146
|
+
script_command: opts[:script_command],
|
147
|
+
script_uris: opts[:script_uris],
|
148
|
+
nvidia_gpu_extension: ActiveRecord::Type::Boolean.new.deserialize(opts[:nvidia_gpu_extension]),
|
149
|
+
)
|
131
150
|
end
|
132
151
|
|
133
152
|
def provided_attributes
|
@@ -272,16 +291,10 @@ module ForemanAzureRm
|
|
272
291
|
|
273
292
|
if args[:platform] == 'Linux'
|
274
293
|
if args[:password].present? && !args[:ssh_key_data].present?
|
275
|
-
# Any change to sudoers_cmd and formation of new
|
276
|
-
# args[:script_command] must be accordingly changed
|
277
|
-
# in script_command method in AzureRmCompute class
|
278
|
-
sudoers_cmd = "$echo #{args[:password]} | sudo -S echo '\"#{args[:username]}\" ALL=(ALL) NOPASSWD: ALL' > /etc/sudoers.d/waagent"
|
279
294
|
if args[:script_command].present?
|
280
295
|
# to run the script_cmd given through form as username
|
281
296
|
user_command = args[:script_command]
|
282
|
-
args[:script_command] =
|
283
|
-
else
|
284
|
-
args[:script_command] = sudoers_cmd
|
297
|
+
args[:script_command] = "su - \"#{args[:username]}\" -c \"#{user_command}\""
|
285
298
|
end
|
286
299
|
disable_password_auth = false
|
287
300
|
elsif args[:ssh_key_data].present? && !args[:password].present?
|
@@ -310,11 +323,28 @@ module ForemanAzureRm
|
|
310
323
|
custom_data: args[:user_data],
|
311
324
|
script_command: args[:script_command],
|
312
325
|
script_uris: args[:script_uris],
|
326
|
+
nvidia_gpu_extension: args[:nvidia_gpu_extension],
|
327
|
+
tags: args[:tags],
|
313
328
|
)
|
314
329
|
logger.debug "Virtual Machine #{args[:vm_name]} Created Successfully."
|
330
|
+
# request NVIDIA GPU driver and CUDA stack
|
331
|
+
if ActiveRecord::Type::Boolean.new.deserialize(args[:nvidia_gpu_extension])
|
332
|
+
create_vm_nvidia_gpu_extension(region, args)
|
333
|
+
end
|
334
|
+
# as this extension may contains postinstall script, call it after others
|
315
335
|
create_vm_extension(region, args)
|
316
336
|
# return the vm object using azure_vm
|
317
|
-
AzureRmCompute.new(
|
337
|
+
AzureRmCompute.new(
|
338
|
+
azure_vm: vm,
|
339
|
+
sdk: sdk,
|
340
|
+
resource_group: args[:resource_group],
|
341
|
+
nics: vm_nics(vm),
|
342
|
+
volumes: vm_disks(vm),
|
343
|
+
script_command: user_command,
|
344
|
+
script_uris: args[:script_uris],
|
345
|
+
nvidia_gpu_extension: ActiveRecord::Type::Boolean.new.deserialize(args[:nvidia_gpu_extension]),
|
346
|
+
tags: args[:tags],
|
347
|
+
)
|
318
348
|
rescue RuntimeError => e
|
319
349
|
Foreman::Logging.exception('Unhandled AzureRm error', e)
|
320
350
|
destroy_vm vm.id if vm
|
@@ -5,7 +5,9 @@ module ForemanAzureRm
|
|
5
5
|
attr_accessor :resource_group
|
6
6
|
attr_accessor :nics
|
7
7
|
attr_accessor :script_command, :script_uris
|
8
|
+
attr_accessor :nvidia_gpu_extension
|
8
9
|
attr_accessor :volumes
|
10
|
+
attr_accessor :tags
|
9
11
|
|
10
12
|
delegate :name, to: :azure_vm, allow_nil: true
|
11
13
|
|
@@ -15,7 +17,9 @@ module ForemanAzureRm
|
|
15
17
|
nics: [],
|
16
18
|
volumes: [],
|
17
19
|
script_command: nil,
|
18
|
-
script_uris: nil
|
20
|
+
script_uris: nil,
|
21
|
+
nvidia_gpu_extension: false,
|
22
|
+
tags: [])
|
19
23
|
|
20
24
|
@azure_vm = azure_vm
|
21
25
|
@sdk = sdk
|
@@ -24,6 +28,8 @@ module ForemanAzureRm
|
|
24
28
|
@volumes ||= volumes
|
25
29
|
@script_command ||= script_command
|
26
30
|
@script_uris ||= script_uris
|
31
|
+
@nvidia_gpu_extension ||= nvidia_gpu_extension
|
32
|
+
@tags ||= tags
|
27
33
|
@azure_vm.hardware_profile ||= ComputeModels::HardwareProfile.new
|
28
34
|
@azure_vm.os_profile ||= ComputeModels::OSProfile.new
|
29
35
|
@azure_vm.os_profile.linux_configuration ||= ComputeModels::LinuxConfiguration.new
|
@@ -208,8 +214,24 @@ module ForemanAzureRm
|
|
208
214
|
def vm_extension
|
209
215
|
return nil unless @azure_vm.resources
|
210
216
|
@vm_extension ||= begin
|
211
|
-
|
212
|
-
|
217
|
+
@azure_vm.resources.each do |ext|
|
218
|
+
ext_name = ext.id.split('/')[-1]
|
219
|
+
next unless ext_name == 'ForemanCustomScript'
|
220
|
+
return sdk.get_vm_extension(@azure_vm.resource_group, name, ext_name)
|
221
|
+
end
|
222
|
+
nil
|
223
|
+
end
|
224
|
+
end
|
225
|
+
|
226
|
+
def vm_nvidia_gpu_extension
|
227
|
+
return nil unless @azure_vm.resources
|
228
|
+
@vm_nvidia_gpu_extension ||= begin
|
229
|
+
@azure_vm.resources.each do |ext|
|
230
|
+
ext_name = ext.id.split('/')[-1]
|
231
|
+
next unless ['NvidiaGpuDriverLinux', 'NvidiaGpuDriverWindows'].include? ext_name
|
232
|
+
return sdk.get_vm_extension(@azure_vm.resource_group, name, ext_name)
|
233
|
+
end
|
234
|
+
nil
|
213
235
|
end
|
214
236
|
end
|
215
237
|
|
@@ -219,7 +241,7 @@ module ForemanAzureRm
|
|
219
241
|
# Index is based on script_command that is being injected
|
220
242
|
# from the code in #create_vm. It can be partly hard-coded
|
221
243
|
# since the command shall no change frequently.
|
222
|
-
if ssh_key_data.nil?
|
244
|
+
if ssh_key_data.nil? && platform == 'Linux'
|
223
245
|
user_cmd_index = (vm_extension.settings["commandToExecute"].index("-c"))+ 4
|
224
246
|
script_command = vm_extension.settings["commandToExecute"][user_cmd_index..-2]
|
225
247
|
else
|
@@ -238,5 +260,14 @@ module ForemanAzureRm
|
|
238
260
|
@script_uris
|
239
261
|
end
|
240
262
|
end
|
263
|
+
|
264
|
+
def nvidia_gpu_extension
|
265
|
+
if vm_nvidia_gpu_extension.present?
|
266
|
+
true
|
267
|
+
else
|
268
|
+
@nvidia_gpu_extension
|
269
|
+
end
|
270
|
+
end
|
271
|
+
|
241
272
|
end
|
242
273
|
end
|
@@ -185,6 +185,23 @@
|
|
185
185
|
}
|
186
186
|
%>
|
187
187
|
|
188
|
+
<%= text_f f, :tags,
|
189
|
+
{
|
190
|
+
:label => _('Azure Tags'),
|
191
|
+
:label_help => _('Comma seperated list of name=value pairs for tags on this VM in Azure')
|
192
|
+
}
|
193
|
+
%>
|
194
|
+
|
195
|
+
<%= checkbox_f f, :nvidia_gpu_extension,
|
196
|
+
{
|
197
|
+
:label => _('NVIDIA driver / CUDA'),
|
198
|
+
:label_size => "col-md-2",
|
199
|
+
:label_help => _("Deploy NVIDIA GPU driver and CUDA (Azure Extension Microsoft.HpcCompute/NvidiaGpuDriver{Linux,Windows}/1.3)"),
|
200
|
+
},
|
201
|
+
'true',
|
202
|
+
'false'
|
203
|
+
%>
|
204
|
+
|
188
205
|
<div id="image_selection">
|
189
206
|
<%= select_f f, :image_id, images, :uuid, :name,
|
190
207
|
{ :include_blank => (images.empty? or images.size == 1) ? false : _('Please select an image') },
|
@@ -22,6 +22,9 @@ msgstr ""
|
|
22
22
|
msgid "%{vm_size} VM Size"
|
23
23
|
msgstr ""
|
24
24
|
|
25
|
+
msgid "Abstract async task"
|
26
|
+
msgstr ""
|
27
|
+
|
25
28
|
msgid "Action with sub plans"
|
26
29
|
msgstr ""
|
27
30
|
|
@@ -31,6 +34,18 @@ msgstr "Accions"
|
|
31
34
|
msgid "Additional number of disks can be added based on VM Size. For more details, please refer to Microsoft Azure's documentation"
|
32
35
|
msgstr ""
|
33
36
|
|
37
|
+
msgid "Agent action"
|
38
|
+
msgstr ""
|
39
|
+
|
40
|
+
msgid "Attach subscriptions"
|
41
|
+
msgstr ""
|
42
|
+
|
43
|
+
msgid "Auto attach subscriptions"
|
44
|
+
msgstr ""
|
45
|
+
|
46
|
+
msgid "Azure Image Name"
|
47
|
+
msgstr ""
|
48
|
+
|
34
49
|
msgid "Azure Region"
|
35
50
|
msgstr ""
|
36
51
|
|
@@ -46,6 +61,9 @@ msgstr ""
|
|
46
61
|
msgid "Azure's default"
|
47
62
|
msgstr ""
|
48
63
|
|
64
|
+
msgid "Bulk generate applicability for hosts"
|
65
|
+
msgstr ""
|
66
|
+
|
49
67
|
msgid "Client ID"
|
50
68
|
msgstr ""
|
51
69
|
|
@@ -58,9 +76,30 @@ msgstr ""
|
|
58
76
|
msgid "Client Secret for AzureRm"
|
59
77
|
msgstr ""
|
60
78
|
|
79
|
+
msgid "Cloud"
|
80
|
+
msgstr ""
|
81
|
+
|
82
|
+
msgid "Combined Profile Update"
|
83
|
+
msgstr ""
|
84
|
+
|
61
85
|
msgid "Comma seperated file URIs"
|
62
86
|
msgstr ""
|
63
87
|
|
88
|
+
msgid "Copy version units to library"
|
89
|
+
msgstr ""
|
90
|
+
|
91
|
+
msgid "Create"
|
92
|
+
msgstr ""
|
93
|
+
|
94
|
+
msgid "Create Export History"
|
95
|
+
msgstr ""
|
96
|
+
|
97
|
+
msgid "Create Import History"
|
98
|
+
msgstr ""
|
99
|
+
|
100
|
+
msgid "Create Package Group"
|
101
|
+
msgstr ""
|
102
|
+
|
64
103
|
msgid "Custom Script Command"
|
65
104
|
msgstr ""
|
66
105
|
|
@@ -70,25 +109,121 @@ msgstr ""
|
|
70
109
|
msgid "Default ReadWrite"
|
71
110
|
msgstr ""
|
72
111
|
|
112
|
+
msgid "Delete"
|
113
|
+
msgstr ""
|
114
|
+
|
115
|
+
msgid "Delete Activation Key"
|
116
|
+
msgstr ""
|
117
|
+
|
118
|
+
msgid "Delete Lifecycle Environment"
|
119
|
+
msgstr ""
|
120
|
+
|
121
|
+
msgid "Delete Package Group"
|
122
|
+
msgstr ""
|
123
|
+
|
124
|
+
msgid "Delete Product"
|
125
|
+
msgstr ""
|
126
|
+
|
127
|
+
msgid "Deploy NVIDIA GPU driver and CUDA (Azure Extension Microsoft.HpcCompute/NvidiaGpuDriver{Linux,Windows}/1.3)"
|
128
|
+
msgstr ""
|
129
|
+
|
130
|
+
msgid "Destroy"
|
131
|
+
msgstr ""
|
132
|
+
|
133
|
+
msgid "Destroy Content Host"
|
134
|
+
msgstr ""
|
135
|
+
|
136
|
+
msgid "Disable"
|
137
|
+
msgstr ""
|
138
|
+
|
139
|
+
msgid "Discover"
|
140
|
+
msgstr ""
|
141
|
+
|
73
142
|
msgid "Does this image support user data input?"
|
74
143
|
msgstr "La imatge admet l'entrada de dades d'usuari?"
|
75
144
|
|
145
|
+
msgid "Enable"
|
146
|
+
msgstr ""
|
147
|
+
|
148
|
+
msgid "Errata mail"
|
149
|
+
msgstr ""
|
150
|
+
|
151
|
+
msgid "Export"
|
152
|
+
msgstr ""
|
153
|
+
|
154
|
+
msgid "Export Library"
|
155
|
+
msgstr ""
|
156
|
+
|
157
|
+
msgid "Fetch pxe files"
|
158
|
+
msgstr ""
|
159
|
+
|
160
|
+
msgid "Filtered index content"
|
161
|
+
msgstr ""
|
162
|
+
|
163
|
+
msgid "For custom or shared gallery image, use prefix 'custom://' or 'gallery://'. For public and RHEL-byos images, prefix the uuid with 'marketplace://'. (e.g. 'marketplace://OpenLogic:CentOS:7.5:latest' or 'custom://image-name')"
|
164
|
+
msgstr ""
|
165
|
+
|
166
|
+
msgid "Generate host applicability"
|
167
|
+
msgstr ""
|
168
|
+
|
169
|
+
msgid "Generate repository applicability"
|
170
|
+
msgstr ""
|
171
|
+
|
172
|
+
msgid "Hypervisors"
|
173
|
+
msgstr ""
|
174
|
+
|
175
|
+
msgid "Hypervisors update"
|
176
|
+
msgstr ""
|
177
|
+
|
76
178
|
msgid "Image"
|
77
179
|
msgstr "Imatge"
|
78
180
|
|
181
|
+
msgid "Import"
|
182
|
+
msgstr ""
|
183
|
+
|
184
|
+
msgid "Import Content View Version"
|
185
|
+
msgstr ""
|
186
|
+
|
187
|
+
msgid "Import Default Content View"
|
188
|
+
msgstr ""
|
189
|
+
|
79
190
|
msgid "Import Puppet classes"
|
80
191
|
msgstr ""
|
81
192
|
|
82
193
|
msgid "Import facts"
|
83
194
|
msgstr ""
|
84
195
|
|
85
|
-
msgid "
|
196
|
+
msgid "Incremental Update"
|
197
|
+
msgstr ""
|
198
|
+
|
199
|
+
msgid "Incremental Update of Content View Version(s) "
|
86
200
|
msgstr ""
|
87
201
|
|
88
|
-
msgid "
|
202
|
+
msgid "Index content"
|
89
203
|
msgstr ""
|
90
204
|
|
91
|
-
msgid "
|
205
|
+
msgid "Index errata"
|
206
|
+
msgstr ""
|
207
|
+
|
208
|
+
msgid "Index module streams"
|
209
|
+
msgstr ""
|
210
|
+
|
211
|
+
msgid "Index package groups"
|
212
|
+
msgstr ""
|
213
|
+
|
214
|
+
msgid "Install Applicable Errata"
|
215
|
+
msgstr ""
|
216
|
+
|
217
|
+
msgid "Instance update"
|
218
|
+
msgstr ""
|
219
|
+
|
220
|
+
msgid "Leave empty to use default image size"
|
221
|
+
msgstr ""
|
222
|
+
|
223
|
+
msgid "Load Regions"
|
224
|
+
msgstr ""
|
225
|
+
|
226
|
+
msgid "NVIDIA driver / CUDA"
|
92
227
|
msgstr ""
|
93
228
|
|
94
229
|
msgid "Name"
|
@@ -97,6 +232,12 @@ msgstr "Nom"
|
|
97
232
|
msgid "OS Disk Caching"
|
98
233
|
msgstr ""
|
99
234
|
|
235
|
+
msgid "Override OS Disk Size (GB)"
|
236
|
+
msgstr ""
|
237
|
+
|
238
|
+
msgid "Package Profile Update"
|
239
|
+
msgstr ""
|
240
|
+
|
100
241
|
msgid "Password"
|
101
242
|
msgstr "Contrasenya"
|
102
243
|
|
@@ -118,24 +259,66 @@ msgstr "Si us plau, seleccioneu una imatge"
|
|
118
259
|
msgid "Premium OS Disk"
|
119
260
|
msgstr ""
|
120
261
|
|
262
|
+
msgid "Product Create"
|
263
|
+
msgstr ""
|
264
|
+
|
265
|
+
msgid "Promote"
|
266
|
+
msgstr ""
|
267
|
+
|
268
|
+
msgid "Promotion to Environment"
|
269
|
+
msgstr ""
|
270
|
+
|
121
271
|
msgid "Properties"
|
122
272
|
msgstr "Propietats"
|
123
273
|
|
124
274
|
msgid "Public IP"
|
125
275
|
msgstr ""
|
126
276
|
|
277
|
+
msgid "Publish"
|
278
|
+
msgstr ""
|
279
|
+
|
280
|
+
msgid "Publish Lifecycle Environment Repositories"
|
281
|
+
msgstr ""
|
282
|
+
|
127
283
|
msgid "Region"
|
128
284
|
msgstr "Regió"
|
129
285
|
|
286
|
+
msgid "Reindex subscriptions"
|
287
|
+
msgstr ""
|
288
|
+
|
130
289
|
msgid "Reload Images, Sizes, vNets"
|
131
290
|
msgstr ""
|
132
291
|
|
133
292
|
msgid "Remote action:"
|
134
293
|
msgstr ""
|
135
294
|
|
295
|
+
msgid "Remove Content"
|
296
|
+
msgstr ""
|
297
|
+
|
298
|
+
msgid "Remove Version"
|
299
|
+
msgstr ""
|
300
|
+
|
301
|
+
msgid "Remove Versions and Associations"
|
302
|
+
msgstr ""
|
303
|
+
|
304
|
+
msgid "Remove from Environment"
|
305
|
+
msgstr ""
|
306
|
+
|
307
|
+
msgid "Remove subscriptions"
|
308
|
+
msgstr ""
|
309
|
+
|
310
|
+
msgid "Report"
|
311
|
+
msgstr ""
|
312
|
+
|
313
|
+
msgid "Republish Version Repositories"
|
314
|
+
msgstr ""
|
315
|
+
|
136
316
|
msgid "Resource Group"
|
137
317
|
msgstr ""
|
138
318
|
|
319
|
+
msgid "Run Sync Plan:"
|
320
|
+
msgstr ""
|
321
|
+
|
139
322
|
msgid "SSH Key"
|
140
323
|
msgstr ""
|
141
324
|
|
@@ -160,6 +343,15 @@ msgstr "ID de subscripció"
|
|
160
343
|
msgid "Subscription ID for AzureRm"
|
161
344
|
msgstr ""
|
162
345
|
|
346
|
+
msgid "Sync capsule"
|
347
|
+
msgstr ""
|
348
|
+
|
349
|
+
msgid "Synchronize"
|
350
|
+
msgstr ""
|
351
|
+
|
352
|
+
msgid "Synchronize smart proxy"
|
353
|
+
msgstr ""
|
354
|
+
|
163
355
|
msgid "Tenant ID"
|
164
356
|
msgstr ""
|
165
357
|
|
@@ -178,8 +370,44 @@ msgstr ""
|
|
178
370
|
msgid "To perform commands as root, prefix it with 'sudo'"
|
179
371
|
msgstr ""
|
180
372
|
|
373
|
+
msgid "Update"
|
374
|
+
msgstr ""
|
375
|
+
|
376
|
+
msgid "Update Content Overrides"
|
377
|
+
msgstr ""
|
378
|
+
|
379
|
+
msgid "Update content urls"
|
380
|
+
msgstr ""
|
381
|
+
|
382
|
+
msgid "Update for host"
|
383
|
+
msgstr ""
|
384
|
+
|
385
|
+
msgid "Update http proxy"
|
386
|
+
msgstr ""
|
387
|
+
|
388
|
+
msgid "Update http proxy details"
|
389
|
+
msgstr ""
|
390
|
+
|
391
|
+
msgid "Update redhat repository"
|
392
|
+
msgstr ""
|
393
|
+
|
394
|
+
msgid "Update release version for host"
|
395
|
+
msgstr ""
|
396
|
+
|
397
|
+
msgid "Updating System Purpose for host"
|
398
|
+
msgstr ""
|
399
|
+
|
400
|
+
msgid "Upload errata into"
|
401
|
+
msgstr ""
|
402
|
+
|
403
|
+
msgid "Upload into"
|
404
|
+
msgstr ""
|
405
|
+
|
181
406
|
msgid "Username"
|
182
407
|
msgstr "Nom d'usuari"
|
183
408
|
|
184
409
|
msgid "VM Size"
|
185
410
|
msgstr ""
|
411
|
+
|
412
|
+
msgid "Verify checksum"
|
413
|
+
msgstr ""
|