foreman_bootdisk 14.0.0 → 17.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/AUTHORS +30 -0
  3. data/README.md +25 -0
  4. data/app/controllers/foreman_bootdisk/api/v2/disks_controller.rb +5 -7
  5. data/app/controllers/foreman_bootdisk/api/v2/subnet_disks_controller.rb +9 -4
  6. data/app/controllers/foreman_bootdisk/disks_controller.rb +11 -10
  7. data/app/helpers/concerns/foreman_bootdisk/hosts_helper_ext.rb +14 -14
  8. data/app/lib/foreman_bootdisk/scope/bootdisk.rb +4 -1
  9. data/app/lib/foreman_bootdisk/scope/full_host_bootdisk_efi.rb +15 -0
  10. data/app/models/concerns/foreman_bootdisk/compute_resources/vmware.rb +10 -1
  11. data/app/models/concerns/foreman_bootdisk/host_ext.rb +7 -10
  12. data/app/models/concerns/foreman_bootdisk/orchestration/compute.rb +28 -19
  13. data/app/models/setting/bootdisk.rb +16 -19
  14. data/app/services/foreman_bootdisk/iso_generator.rb +129 -52
  15. data/app/services/foreman_bootdisk/renderer.rb +36 -18
  16. data/app/views/foreman_bootdisk/generic_efi_host.erb +64 -0
  17. data/app/views/foreman_bootdisk/generic_static_host.erb +34 -0
  18. data/app/views/foreman_bootdisk/host.erb +27 -11
  19. data/db/seeds.d/50-bootdisk_templates.rb +15 -31
  20. data/lib/foreman_bootdisk/engine.rb +6 -6
  21. data/lib/foreman_bootdisk/version.rb +1 -1
  22. data/lib/tasks/bootdisk.rake +10 -6
  23. data/locale/action_names.rb +5 -0
  24. data/locale/ca/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  25. data/locale/ca/foreman_bootdisk.po +65 -16
  26. data/locale/de/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  27. data/locale/de/foreman_bootdisk.po +74 -23
  28. data/locale/en/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  29. data/locale/en/foreman_bootdisk.po +58 -10
  30. data/locale/en_GB/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  31. data/locale/en_GB/foreman_bootdisk.po +65 -17
  32. data/locale/es/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  33. data/locale/es/foreman_bootdisk.po +82 -34
  34. data/locale/foreman_bootdisk.pot +124 -48
  35. data/locale/fr/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  36. data/locale/fr/foreman_bootdisk.po +65 -17
  37. data/locale/it/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  38. data/locale/it/foreman_bootdisk.po +63 -15
  39. data/locale/ja/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  40. data/locale/ja/foreman_bootdisk.po +64 -16
  41. data/locale/ko/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  42. data/locale/ko/foreman_bootdisk.po +63 -15
  43. data/locale/pt_BR/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  44. data/locale/pt_BR/foreman_bootdisk.po +76 -27
  45. data/locale/ru/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  46. data/locale/ru/foreman_bootdisk.po +63 -15
  47. data/locale/sv_SE/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  48. data/locale/sv_SE/foreman_bootdisk.po +61 -13
  49. data/locale/zh_CN/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  50. data/locale/zh_CN/foreman_bootdisk.po +79 -31
  51. data/locale/zh_TW/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  52. data/locale/zh_TW/foreman_bootdisk.po +63 -15
  53. data/release-gem +84 -0
  54. data/test/functional/foreman_bootdisk/api/v2/disks_controller_test.rb +51 -17
  55. data/test/functional/foreman_bootdisk/api/v2/subnet_disks_controller_test.rb +23 -10
  56. data/test/functional/foreman_bootdisk/disks_controller_test.rb +65 -25
  57. data/test/test_plugin_helper.rb +23 -3
  58. data/test/unit/concerns/host_test.rb +12 -1
  59. data/test/unit/concerns/orchestration/compute_test.rb +32 -13
  60. data/test/unit/foreman_bootdisk/renderer_test.rb +1 -1
  61. data/test/unit/iso_generator_test.rb +16 -7
  62. metadata +65 -4
@@ -7,9 +7,23 @@
7
7
  <%
8
8
  interface = @host.provision_interface
9
9
  bootdisk_raise(N_('Host has no provisioning interface defined')) unless interface
10
- bootdisk_raise(N_('Host has no IP address defined')) if interface.ip.nil? || interface.ip.empty?
11
- bootdisk_raise(N_('Host has no subnet defined')) unless interface.subnet
10
+ bootdisk_raise(N_('Host has no IPv4 or IPv6 address defined')) unless interface.ip.present? || interface.ip6.present?
11
+ bootdisk_raise(N_('Host has no subnet defined')) unless interface.subnet || interface.subnet6
12
12
  bootdisk_raise(N_('Host has no domain defined')) unless interface.domain
13
+ if interface.ip.present? && interface.subnet
14
+ ip = interface.ip
15
+ subnet = interface.subnet
16
+ elsif interface.ip6.present? && interface.subnet6
17
+ ip = interface.ip6
18
+ subnet = interface.subnet6
19
+ bootdisk_raise(N_('Host bootdisk does not work with static IPv6'))
20
+ else
21
+ bootdisk_raise(N_('Both IP and Subnet must be set'))
22
+ end
23
+
24
+ mask = subnet.mask
25
+ gw = subnet.gateway
26
+ dns = subnet.dns_servers.first
13
27
  %>
14
28
 
15
29
  echo Foreman Bootdisk: Host image (<%= @host.name %>)
@@ -25,20 +39,22 @@ goto loop_success
25
39
  <% end -%>
26
40
 
27
41
  :loop_success
28
- echo Configuring net${idx} for static IP address <%= interface.ip %>
42
+ echo Configuring net${idx} for static IP address <%= ip %>
29
43
  ifopen net${idx}
30
- set netX/ip <%= interface.ip %>
31
- set netX/netmask <%= interface.subnet.mask %>
32
- <% if interface.subnet.gateway.present? %>
33
- set netX/gateway <%= interface.subnet.gateway %>
44
+ # netX = last opened NIC
45
+ set netX/ip <%= ip %>
46
+ set netX/netmask <%= mask %>
47
+ <% if gw.present? %>
48
+ set netX/gateway <%= gw %>
34
49
  <% end %>
35
50
  ifstat net${idx}
36
51
  route
37
52
 
38
- <% if interface.subnet.dns_primary.present? %>
39
- # Note, iPXE can only use one DNS server
40
- echo Using DNS <%= interface.subnet.dns_primary %>
41
- set dns <%= interface.subnet.dns_primary %>
53
+ # Note: When multiple DNS servers are specified, only the first
54
+ # server will be used. See: http://ipxe.org/cfg/dns
55
+ <% if dns.present? -%>
56
+ echo Using DNS <%= dns %>
57
+ set dns <%= dns %>
42
58
  set domain <%= interface.domain.to_s %>
43
59
  <% end %>
44
60
 
@@ -1,32 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- kind = TemplateKind.unscoped.where(name: 'Bootdisk').first_or_create
4
-
5
- organizations = Organization.all
6
- locations = Location.all
7
- created = []
8
-
9
- ProvisioningTemplate.without_auditing do
10
- content = File.read(File.join(ForemanBootdisk::Engine.root, 'app', 'views', 'foreman_bootdisk', 'host.erb'))
11
- created << 'Boot disk iPXE - host' unless ProvisioningTemplate.find_by(name: 'Boot disk iPXE - host')
12
- tmpl = ProvisioningTemplate.unscoped.where(name: 'Boot disk iPXE - host').first_or_create do |template|
13
- template.attributes = {
14
- template_kind_id: kind.id,
15
- snippet: false,
16
- template: content
17
- }
18
- end
19
- tmpl.attributes = {
20
- template: content,
21
- default: true,
22
- vendor: 'Foreman boot disk'
23
- }
24
- tmpl.locked = true
25
- tmpl.save!(validate: false) if tmpl.changes.present?
3
+ def read_bootdisk_template(filename)
4
+ File.read(File.join(ForemanBootdisk::Engine.root, 'app', 'views', 'foreman_bootdisk', filename))
5
+ end
26
6
 
27
- content = File.read(File.join(ForemanBootdisk::Engine.root, 'app', 'views', 'foreman_bootdisk', 'generic_host.erb'))
28
- created << 'Boot disk iPXE - generic host' unless ProvisioningTemplate.find_by(name: 'Boot disk iPXE - generic host')
29
- tmpl = ProvisioningTemplate.unscoped.where(name: 'Boot disk iPXE - generic host').first_or_create do |template|
7
+ def ensure_bootdisk_template(name, content)
8
+ kind = TemplateKind.unscoped.where(name: 'Bootdisk').first_or_create
9
+ tmpl = ProvisioningTemplate.unscoped.where(name: name).first_or_create do |template|
30
10
  template.attributes = {
31
11
  template_kind_id: kind.id,
32
12
  snippet: false,
@@ -36,13 +16,17 @@ ProvisioningTemplate.without_auditing do
36
16
  tmpl.attributes = {
37
17
  template: content,
38
18
  default: true,
39
- vendor: 'Foreman boot disk'
19
+ vendor: "Foreman boot disk"
40
20
  }
41
21
  tmpl.locked = true
22
+ tmpl.organizations = Organization.unscoped.all if SETTINGS[:organizations_enabled]
23
+ tmpl.locations = Location.unscoped.all if SETTINGS[:locations_enabled]
42
24
  tmpl.save!(validate: false) if tmpl.changes.present?
25
+ end
43
26
 
44
- ProvisioningTemplate.unscoped.where(name: created, default: true).each do |template|
45
- template.organizations = organizations if SETTINGS[:organizations_enabled]
46
- template.locations = locations if SETTINGS[:locations_enabled]
47
- end
27
+ ProvisioningTemplate.without_auditing do
28
+ ensure_bootdisk_template("Boot disk iPXE - host", read_bootdisk_template("host.erb"))
29
+ ensure_bootdisk_template("Boot disk iPXE - generic host", read_bootdisk_template("generic_host.erb"))
30
+ ensure_bootdisk_template("Boot disk Grub2 EFI - generic host", read_bootdisk_template("generic_efi_host.erb"))
31
+ ensure_bootdisk_template("Boot disk iPXE - generic static host", read_bootdisk_template("generic_static_host.erb"))
48
32
  end
@@ -38,7 +38,7 @@ module ForemanBootdisk
38
38
 
39
39
  initializer 'foreman_bootdisk.register_plugin', before: :finisher_hook do |_app|
40
40
  Foreman::Plugin.register :foreman_bootdisk do
41
- requires_foreman '>= 1.20'
41
+ requires_foreman '>= 2.1'
42
42
 
43
43
  security_block :bootdisk do |_map|
44
44
  permission :download_bootdisk, 'foreman_bootdisk/disks': %i[generic host full_host subnet help],
@@ -46,7 +46,7 @@ module ForemanBootdisk
46
46
  'foreman_bootdisk/api/v2/subnet_disks': [:subnet]
47
47
  end
48
48
 
49
- role 'Boot disk access', [:download_bootdisk]
49
+ role 'Boot disk access', [:download_bootdisk], 'Role granting permissions to download bootdisks'
50
50
 
51
51
  add_all_permissions_to_default_roles
52
52
 
@@ -65,10 +65,10 @@ module ForemanBootdisk
65
65
 
66
66
  config.to_prepare do
67
67
  begin
68
- Host::Managed.send(:prepend, ForemanBootdisk::HostExt)
69
- Host::Managed.send(:include, ForemanBootdisk::Orchestration::Compute) if SETTINGS[:unattended]
70
- HostsHelper.send(:prepend, ForemanBootdisk::HostsHelperExt)
71
- Foreman::Model::Vmware.send(:prepend, ForemanBootdisk::ComputeResources::Vmware) if Foreman::Model::Vmware.available?
68
+ Host::Managed.prepend ForemanBootdisk::HostExt
69
+ Host::Managed.include ForemanBootdisk::Orchestration::Compute if SETTINGS[:unattended]
70
+ HostsHelper.prepend ForemanBootdisk::HostsHelperExt
71
+ Foreman::Model::Vmware.prepend ForemanBootdisk::ComputeResources::Vmware if Foreman::Model::Vmware.available?
72
72
  rescue StandardError => e
73
73
  Rails.logger.warn "#{ForemanBootdisk::ENGINE_NAME}: skipping engine hook (#{e})"
74
74
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ForemanBootdisk
4
- VERSION = '14.0.0'
4
+ VERSION = '17.0.2'
5
5
  end
@@ -20,9 +20,10 @@ namespace :bootdisk do
20
20
  task host: :environment do
21
21
  User.as_anonymous_admin do
22
22
  host = Host::Base.unscoped.find_by(name: ENV['NAME']) || raise("cannot find host '#{ENV['NAME']}', specify NAME=fqdn")
23
- tmpl = host.bootdisk_template_render
23
+ tmpl_bios = host.bootdisk_template_render
24
+ tmpl_efi = host.generic_efi_template_render
24
25
 
25
- ForemanBootdisk::ISOGenerator.generate(ipxe: tmpl, dir: outputdir) do |image|
26
+ ForemanBootdisk::ISOGenerator.generate(ipxe: tmpl_bios, grub: tmpl_efi, dir: outputdir) do |image|
26
27
  output = ENV['OUTPUT'] || File.join(outputdir, "#{host.name}.iso")
27
28
  FileUtils.mv image, output
28
29
  puts "Wrote #{output}"
@@ -45,9 +46,9 @@ namespace :bootdisk do
45
46
  desc 'Generate a generic boot disk. OUTPUT=path'
46
47
  task generic: :environment do
47
48
  User.as_anonymous_admin do
48
- tmpl = ForemanBootdisk::Renderer.new.generic_template_render
49
+ tmpl_bios = ForemanBootdisk::Renderer.new.generic_template_render
49
50
 
50
- ForemanBootdisk::ISOGenerator.generate(ipxe: tmpl, dir: outputdir) do |image|
51
+ ForemanBootdisk::ISOGenerator.generate(ipxe: tmpl_bios, dir: outputdir) do |image|
51
52
  output = ENV['OUTPUT'] || File.join(outputdir, "bootdisk_#{URI.parse(Setting[:foreman_url]).host}.iso")
52
53
  FileUtils.cp image, output
53
54
  puts "Wrote #{output}"
@@ -60,8 +61,10 @@ namespace :bootdisk do
60
61
  User.as_anonymous_admin do
61
62
  subnet = Subnet.unscoped.find_by(name: ENV['NAME']) || raise("cannot find subnet '#{ENV['NAME']}', specify NAME=subnet")
62
63
  subnet.tftp || raise(::Foreman::Exception.new(N_('TFTP feature not enabled for subnet %s'), subnet.name))
63
- tmpl = ForemanBootdisk::Renderer.new.generic_template_render(subnet)
64
- ForemanBootdisk::ISOGenerator.generate(ipxe: tmpl, dir: outputdir) do |image|
64
+ subnet.httpboot || ForemanBootdisk.logger.warn('HTTPBOOT feature is not enabled for subnet %s, UEFI may not be available for bootdisk' % subnet.name)
65
+ tmpl_bios = ForemanBootdisk::Renderer.new.generic_template_render(subnet)
66
+ tmpl_efi = ForemanBootdisk::Renderer.new.generic_efi_template_render(subnet)
67
+ ForemanBootdisk::ISOGenerator.generate(ipxe: tmpl_bios, grub: tmpl_efi, dir: outputdir) do |image|
65
68
  output = ENV['OUTPUT'] || File.join(outputdir, "bootdisk_subnet_#{subnet.name}.iso")
66
69
  FileUtils.cp image, output
67
70
  puts "Wrote #{output}"
@@ -93,6 +96,7 @@ namespace :foreman_bootdisk do
93
96
  task.patterns = ["#{ForemanBootdisk::Engine.root}/app/**/*.rb",
94
97
  "#{ForemanBootdisk::Engine.root}/lib/**/*.rb",
95
98
  "#{ForemanBootdisk::Engine.root}/test/**/*.rb"]
99
+ task.options << '--auto-correct' if ENV['RUBOCOP_AUTOCORRECT']
96
100
  end
97
101
  rescue StandardError
98
102
  puts 'Rubocop not loaded.'
@@ -0,0 +1,5 @@
1
+ # Autogenerated!
2
+ _("Remote action:")
3
+ _("Import facts")
4
+ _("Import Puppet classes")
5
+ _("Action with sub plans")
@@ -3,12 +3,13 @@
3
3
  # This file is distributed under the same license as the foreman_bootdisk package.
4
4
  #
5
5
  # Translators:
6
+ # Robert Antoni Buj Gelonch <rbuj@fedoraproject.org>, 2017
6
7
  # Robert Antoni Buj Gelonch <rbuj@fedoraproject.org>, 2015-2016
7
8
  msgid ""
8
9
  msgstr ""
9
- "Project-Id-Version: Foreman\n"
10
+ "Project-Id-Version: foreman_bootdisk 17.0.0\n"
10
11
  "Report-Msgid-Bugs-To: \n"
11
- "PO-Revision-Date: 2017-09-20 00:09+0000\n"
12
+ "PO-Revision-Date: 2019-10-22 20:06+0000\n"
12
13
  "Last-Translator: Lukáš Zapletal\n"
13
14
  "Language-Team: Catalan (http://www.transifex.com/foreman/foreman/language/ca/)"
14
15
  "\n"
@@ -21,6 +22,9 @@ msgstr ""
21
22
  msgid "A variant of the per-host image which contains the OS bootloader embedded inside the disk. This may be useful if chainloading fails on certain hardware, but has the downside that the image must be regenerated for any change in the OS, bootloader or PXELinux templates."
22
23
  msgstr ""
23
24
 
25
+ msgid "Action with sub plans"
26
+ msgstr ""
27
+
24
28
  msgid "All images are usable as either ISOs or as disk images, including being written to a USB disk with `dd`."
25
29
  msgstr ""
26
30
 
@@ -45,9 +49,18 @@ msgstr ""
45
49
  msgid "Boot disks"
46
50
  msgstr "Discs d'arrencada"
47
51
 
52
+ msgid "Both IP and Subnet must be set"
53
+ msgstr ""
54
+
48
55
  msgid "Command to generate ISO image, use genisoimage or mkisofs"
49
56
  msgstr "L'ordre per generar la imatge ISO, utilitzeu genisoimage o mkisofs"
50
57
 
58
+ msgid "Creating new image failed, install truncate utility"
59
+ msgstr ""
60
+
61
+ msgid "Detach ISO image from CDROM drive for %s"
62
+ msgstr ""
63
+
51
64
  msgid "Download generic image"
52
65
  msgstr "Baixa la imatge genèrica"
53
66
 
@@ -57,9 +70,21 @@ msgstr "Baixa la imatge d'amfitrió"
57
70
  msgid "Download subnet generic image"
58
71
  msgstr "Baixa la imatge genèrica de subxarxa"
59
72
 
73
+ msgid "Ensure %{path} contains grubx64.efi and shimx64.efi: install TFTP module or copy those files into /var/lib/foreman/bootdisk (Grub2 directory setting)"
74
+ msgstr ""
75
+
60
76
  msgid "Failed to attach ISO image to CDROM drive of instance %{name}: %{message}"
61
77
  msgstr ""
62
78
 
79
+ msgid "Failed to create a directory within the ESP image"
80
+ msgstr ""
81
+
82
+ msgid "Failed to detach ISO image from CDROM drive of instance %{name}: %{message}"
83
+ msgstr ""
84
+
85
+ msgid "Failed to format the ESP image via mkfs.msdos"
86
+ msgstr ""
87
+
63
88
  msgid "Failed to generate ISO image for instance %{name}: %{message}"
64
89
  msgstr ""
65
90
 
@@ -78,6 +103,9 @@ msgstr "Imatge completa d'amfitrió"
78
103
  msgid "Generating ISO image for %s"
79
104
  msgstr ""
80
105
 
106
+ msgid "Generic Grub2 EFI image template"
107
+ msgstr ""
108
+
81
109
  msgid "Generic image"
82
110
  msgstr "Imatge genèrica"
83
111
 
@@ -87,14 +115,23 @@ msgstr ""
87
115
  msgid "Generic images are a reusable disk image that works for any host registered in Foreman. It requires a basic DHCP and DNS service to function and contact the server, but does not require DHCP reservations or static IP addresses."
88
116
  msgstr ""
89
117
 
118
+ msgid "Grub2 directory"
119
+ msgstr ""
120
+
121
+ msgid "Grub2 template to use for generic EFI host boot disks"
122
+ msgstr ""
123
+
90
124
  msgid "Help"
91
125
  msgstr "Ajuda"
92
126
 
93
127
  msgid "Host '%s' image"
94
128
  msgstr ""
95
129
 
96
- msgid "Host has no IP address defined"
97
- msgstr "L'amfitrió no té definida cap adreça IP"
130
+ msgid "Host bootdisk does not work with static IPv6"
131
+ msgstr ""
132
+
133
+ msgid "Host has no IPv4 or IPv6 address defined"
134
+ msgstr ""
98
135
 
99
136
  msgid "Host has no domain defined"
100
137
  msgstr "L'amfitrió no té definit cap domini"
@@ -115,17 +152,23 @@ msgid "Host is not in build mode, so the template cannot be rendered"
115
152
  msgstr ""
116
153
 
117
154
  msgid "ISO build failed"
118
- msgstr "No s'ha pogut construir la ISO"
155
+ msgstr "No s'ha pogut construir l'ISO"
119
156
 
120
157
  msgid "ISO generation command"
121
158
  msgstr ""
122
159
 
123
- msgid "ISO hybrid conversion failed"
160
+ msgid "ISO hybrid conversion failed: %s"
124
161
  msgstr ""
125
162
 
126
163
  msgid "ISOLINUX directory"
127
164
  msgstr ""
128
165
 
166
+ msgid "Import Puppet classes"
167
+ msgstr ""
168
+
169
+ msgid "Import facts"
170
+ msgstr ""
171
+
129
172
  msgid "Installation media caching"
130
173
  msgstr ""
131
174
 
@@ -135,11 +178,14 @@ msgstr "Els fitxers dels mitjans d'instal·lació s'emmagatzemaran en memòria c
135
178
  msgid "Once chainloaded, the OS bootloader and installer are downloaded directly from the installation media configured in Foreman, and the provisioning script (kickstart/preseed) is downloaded from Foreman."
136
179
  msgstr ""
137
180
 
181
+ msgid "Path to directory containing grubx64.efi and shimx64.efi"
182
+ msgstr ""
183
+
138
184
  msgid "Path to directory containing iPXE images"
139
185
  msgstr "El camí al directori que conté les imatges iPXE"
140
186
 
141
187
  msgid "Path to directory containing isolinux images"
142
- msgstr ""
188
+ msgstr "El camí al directori que conté les imatges isolinux"
143
189
 
144
190
  msgid "Path to directory containing syslinux images"
145
191
  msgstr "El camí al directori que conté les imatges syslinux"
@@ -156,18 +202,15 @@ msgstr ""
156
202
  msgid "Plugin for Foreman that creates iPXE-based boot disks to provision hosts without the need for PXE infrastructure."
157
203
  msgstr ""
158
204
 
205
+ msgid "Remote action:"
206
+ msgstr ""
207
+
159
208
  msgid "SYSLINUX directory"
160
209
  msgstr ""
161
210
 
162
211
  msgid "Subnet '%s' generic image"
163
212
  msgstr ""
164
213
 
165
- msgid "Subnet (%s) has no gateway defined"
166
- msgstr "La subxarxa (%s) no té definida cap passarel·la"
167
-
168
- msgid "Subnet (%s) has no primary DNS server defined"
169
- msgstr "La subxarxa (%s) no té definit cap servidor DNS primari"
170
-
171
214
  msgid "Subnet boot disks"
172
215
  msgstr "Discs d'arrencada de subxarxa"
173
216
 
@@ -195,8 +238,14 @@ msgstr ""
195
238
  msgid "Unable to find template specified by %s setting"
196
239
  msgstr "No es pot trobar la plantilla especificada per l'ajust %s"
197
240
 
198
- msgid "Unable to generate disk template: %s"
199
- msgstr "No es pot generar la plantilla de disc: %s"
241
+ msgid "Unable to generate disk %{kind} template: %{error}"
242
+ msgstr ""
243
+
244
+ msgid "Unable to generate disk template, %{kind} template not found."
245
+ msgstr ""
246
+
247
+ msgid "Unable to mcopy %{path}"
248
+ msgstr ""
200
249
 
201
250
  msgid "Upload ISO image to datastore for %s"
202
251
  msgstr ""
@@ -205,7 +254,7 @@ msgid "Various types of boot disks can be created to provision hosts without the
205
254
  msgstr ""
206
255
 
207
256
  msgid "iPXE directory"
208
- msgstr ""
257
+ msgstr "Directori iPXE"
209
258
 
210
259
  msgid "iPXE template to use for generic host boot disks"
211
260
  msgstr ""
@@ -5,13 +5,16 @@
5
5
  # Translators:
6
6
  # Christina Gurski <Gurski_christina@yahoo.de>, 2015
7
7
  # Ettore Atalan <atalanttore@googlemail.com>, 2014,2016
8
+ # Martin Zimmermann <martin.zimmermann@gmx.com>, 2018
8
9
  # Paul Puschmann, 2014
9
- # simon11 <simon.stieger.98@live.de>, 2014
10
+ # abf90805572190d649c59f7a021d76cb, 2014
11
+ # simon11 <transifex@stieger.co>, 2014
12
+ # simon11 <transifex@stieger.co>, 2014
10
13
  msgid ""
11
14
  msgstr ""
12
- "Project-Id-Version: Foreman\n"
15
+ "Project-Id-Version: foreman_bootdisk 17.0.0\n"
13
16
  "Report-Msgid-Bugs-To: \n"
14
- "PO-Revision-Date: 2017-09-20 00:09+0000\n"
17
+ "PO-Revision-Date: 2019-10-22 20:06+0000\n"
15
18
  "Last-Translator: Bryan Kearney <bryan.kearney@gmail.com>\n"
16
19
  "Language-Team: German (http://www.transifex.com/foreman/foreman/language/de/)\n"
17
20
  "MIME-Version: 1.0\n"
@@ -23,6 +26,9 @@ msgstr ""
23
26
  msgid "A variant of the per-host image which contains the OS bootloader embedded inside the disk. This may be useful if chainloading fails on certain hardware, but has the downside that the image must be regenerated for any change in the OS, bootloader or PXELinux templates."
24
27
  msgstr "Eine Variante des Abbildes pro Host mit im im Medium eingebetteten Betriebssystem-Bootloader. Dies ist hilfreich, falls Chainloading auf einer bestimmten Hardware fehlschlägt, hat jedoch den Nachteil, dass das Abbild bei jeglicher Änderung von Betriebssystem, Bootloader oder PXELinux-Vorlagen neu generiert werden muss."
25
28
 
29
+ msgid "Action with sub plans"
30
+ msgstr "Aktion mit Unterplänen"
31
+
26
32
  msgid "All images are usable as either ISOs or as disk images, including being written to a USB disk with `dd`."
27
33
  msgstr "Alle Abbilder können entweder als ISOs oder als Festplattenabbilder verwendet werden und auch mit `dd` auf eine USB-Festplatte geschrieben."
28
34
 
@@ -39,17 +45,26 @@ msgid "Boot disk based"
39
45
  msgstr "Startmedium-basiert"
40
46
 
41
47
  msgid "Boot disk download not available for %s architecture"
42
- msgstr ""
48
+ msgstr "Startmedium Download nicht verfügbar für Architektur %s"
43
49
 
44
50
  msgid "Boot disk embedded template"
45
- msgstr ""
51
+ msgstr "Im Startmedium eingebettete Vorlage"
46
52
 
47
53
  msgid "Boot disks"
48
54
  msgstr "Startmedien"
49
55
 
56
+ msgid "Both IP and Subnet must be set"
57
+ msgstr ""
58
+
50
59
  msgid "Command to generate ISO image, use genisoimage or mkisofs"
51
60
  msgstr "Kommando zur Erstellung von ISO-Abbildern, verwende genisoimage oder mkisofs"
52
61
 
62
+ msgid "Creating new image failed, install truncate utility"
63
+ msgstr ""
64
+
65
+ msgid "Detach ISO image from CDROM drive for %s"
66
+ msgstr ""
67
+
53
68
  msgid "Download generic image"
54
69
  msgstr "Generisches Abbild herunterladen"
55
70
 
@@ -59,17 +74,29 @@ msgstr "Host-Abbild herunterladen"
59
74
  msgid "Download subnet generic image"
60
75
  msgstr "Generisches Abbild von Subnetz herunterladen"
61
76
 
77
+ msgid "Ensure %{path} contains grubx64.efi and shimx64.efi: install TFTP module or copy those files into /var/lib/foreman/bootdisk (Grub2 directory setting)"
78
+ msgstr ""
79
+
62
80
  msgid "Failed to attach ISO image to CDROM drive of instance %{name}: %{message}"
81
+ msgstr "Fehler beim Einhängen des ISO-Abbild am CDROM-Laufwerk für Instanz %{name}: %{message}"
82
+
83
+ msgid "Failed to create a directory within the ESP image"
63
84
  msgstr ""
64
85
 
65
- msgid "Failed to generate ISO image for instance %{name}: %{message}"
86
+ msgid "Failed to detach ISO image from CDROM drive of instance %{name}: %{message}"
87
+ msgstr ""
88
+
89
+ msgid "Failed to format the ESP image via mkfs.msdos"
66
90
  msgstr ""
67
91
 
92
+ msgid "Failed to generate ISO image for instance %{name}: %{message}"
93
+ msgstr "Fehler beim Erzeugen des ISO-Abbild für Instanz %{name}: %{message}"
94
+
68
95
  msgid "Failed to render boot disk template"
69
96
  msgstr "Fehler beim Rendern der Vorlage für Startmedium"
70
97
 
71
98
  msgid "Failed to upload ISO image for instance %{name}: %{message}"
72
- msgstr ""
99
+ msgstr "Fehler beim Upload des ISO-Abbild für Instanz %{name}: %{message}"
73
100
 
74
101
  msgid "Full host '%s' image"
75
102
  msgstr "Vollständiges Host \"%s\"-Abbild"
@@ -80,6 +107,9 @@ msgstr "Vollständiges Host-Abbild"
80
107
  msgid "Generating ISO image for %s"
81
108
  msgstr "ISO-Abbild für %s wird erzeugt"
82
109
 
110
+ msgid "Generic Grub2 EFI image template"
111
+ msgstr ""
112
+
83
113
  msgid "Generic image"
84
114
  msgstr "Generisches Abbild"
85
115
 
@@ -89,14 +119,23 @@ msgstr "Generische Abbildvorlage"
89
119
  msgid "Generic images are a reusable disk image that works for any host registered in Foreman. It requires a basic DHCP and DNS service to function and contact the server, but does not require DHCP reservations or static IP addresses."
90
120
  msgstr "Generische Abbilder sind wiederverwendbare Festplattenabbilder die für beliebige in Foreman registrierte Hosts funktionieren. Sie erfordern einen einfachen DHCP- und DNS-Service, um zu funktionieren und den Server zu kontaktieren. Jedoch benötigen sie keinerlei DHCP-Reservierungen oder statische IP-Adressen."
91
121
 
122
+ msgid "Grub2 directory"
123
+ msgstr ""
124
+
125
+ msgid "Grub2 template to use for generic EFI host boot disks"
126
+ msgstr ""
127
+
92
128
  msgid "Help"
93
129
  msgstr "Hilfe"
94
130
 
95
131
  msgid "Host '%s' image"
96
132
  msgstr "Host '%s'-Abbild"
97
133
 
98
- msgid "Host has no IP address defined"
99
- msgstr "Host hat keine IP-Adresse definiert"
134
+ msgid "Host bootdisk does not work with static IPv6"
135
+ msgstr ""
136
+
137
+ msgid "Host has no IPv4 or IPv6 address defined"
138
+ msgstr ""
100
139
 
101
140
  msgid "Host has no domain defined"
102
141
  msgstr "Host hat keine Domäne definiert"
@@ -122,14 +161,20 @@ msgstr "ISO-Erstellung fehlgeschlagen"
122
161
  msgid "ISO generation command"
123
162
  msgstr "ISO-Erzeugungsbefehl"
124
163
 
125
- msgid "ISO hybrid conversion failed"
126
- msgstr "ISO hybrid Konvertierung fehlgeschlagen"
164
+ msgid "ISO hybrid conversion failed: %s"
165
+ msgstr ""
127
166
 
128
167
  msgid "ISOLINUX directory"
129
168
  msgstr "ISOLINUX-Verzeichnis"
130
169
 
170
+ msgid "Import Puppet classes"
171
+ msgstr "Puppet-Klassen importieren"
172
+
173
+ msgid "Import facts"
174
+ msgstr "Fakten importieren"
175
+
131
176
  msgid "Installation media caching"
132
- msgstr ""
177
+ msgstr "Installationsmedien-Dateien Caching"
133
178
 
134
179
  msgid "Installation media files will be cached for full host images"
135
180
  msgstr "Installationsmedien-Dateien werden für vollständige Host-Images zwischengespeichert."
@@ -137,11 +182,14 @@ msgstr "Installationsmedien-Dateien werden für vollständige Host-Images zwisch
137
182
  msgid "Once chainloaded, the OS bootloader and installer are downloaded directly from the installation media configured in Foreman, and the provisioning script (kickstart/preseed) is downloaded from Foreman."
138
183
  msgstr "Sobald sie nacheinander geladen (Chainloading) sind, werden der OS-Bootloader und das OS-Installationsprogramm direkt von den in Foreman konfigurierten Installationsmedien heruntergeladen, und das Bereitstellungsskript (kickstart/preseed) wird von Foreman heruntergeladen."
139
184
 
185
+ msgid "Path to directory containing grubx64.efi and shimx64.efi"
186
+ msgstr ""
187
+
140
188
  msgid "Path to directory containing iPXE images"
141
189
  msgstr "Pfad zum Verzeichnis mit iPXE-Abbildern"
142
190
 
143
191
  msgid "Path to directory containing isolinux images"
144
- msgstr ""
192
+ msgstr "Pfad zum Verzeichnis welches die ISOLINUX Abbilder enthält"
145
193
 
146
194
  msgid "Path to directory containing syslinux images"
147
195
  msgstr "Pfad zum Verzeichnis mit syslinux-Abbildern"
@@ -150,26 +198,23 @@ msgid "Per-host images contain data about a particular host registered in Forema
150
198
  msgstr "\"Pro-Host\"-Abbilder enthalten Daten über einen bestimmten Host, der in Foreman registriert ist, und richten eine vollständig statische Verbindung ein, wobei die Notwendigkeit von DHCP vermieden wird. Nach der Konfiguration der Verbindung werden sie nacheinander von Foreman geladen (Chainloading) und nehmen die gegenwärtige OS-Konfiguration und den Buildstatus vom Server auf."
151
199
 
152
200
  msgid "Please ensure the ipxe-bootimgs package is installed."
153
- msgstr ""
201
+ msgstr "Bitte die Installation des IPXE-bootimgs Paket sicherstellen."
154
202
 
155
203
  msgid "Please ensure the isolinux/syslinux package(s) are installed."
156
- msgstr ""
204
+ msgstr "Bitte die Installation des/der ISOLINUX/SYSLINUX Paket(e) sicherstellen."
157
205
 
158
206
  msgid "Plugin for Foreman that creates iPXE-based boot disks to provision hosts without the need for PXE infrastructure."
159
207
  msgstr "Plugin für Foreman, welches iPXE-basierte Startmedien erstellt, um Hosts ohne die Notwendigkeit einer PXE-Infrastruktur bereitzustellen."
160
208
 
209
+ msgid "Remote action:"
210
+ msgstr "Entfernte Aktion:"
211
+
161
212
  msgid "SYSLINUX directory"
162
213
  msgstr "SYSLINUX-Verzeichnis"
163
214
 
164
215
  msgid "Subnet '%s' generic image"
165
216
  msgstr "Subnetz '%s' generisches Abbild"
166
217
 
167
- msgid "Subnet (%s) has no gateway defined"
168
- msgstr "Subnetz (%s) hat keinen Gateway definiert"
169
-
170
- msgid "Subnet (%s) has no primary DNS server defined"
171
- msgstr "Subnetz (%s) hat keinen primären DNS-Server definiert"
172
-
173
218
  msgid "Subnet boot disks"
174
219
  msgstr "Subnetz-Startmedien"
175
220
 
@@ -197,8 +242,14 @@ msgstr "\"True\" für vollständiges, \"false\" für einfaches wiederverwendbare
197
242
  msgid "Unable to find template specified by %s setting"
198
243
  msgstr "Konnte Vorlage mit der %s-Einstellung nicht finden"
199
244
 
200
- msgid "Unable to generate disk template: %s"
201
- msgstr "Startmedium-Vorlage konnte nicht erzeugt werden: %s"
245
+ msgid "Unable to generate disk %{kind} template: %{error}"
246
+ msgstr ""
247
+
248
+ msgid "Unable to generate disk template, %{kind} template not found."
249
+ msgstr ""
250
+
251
+ msgid "Unable to mcopy %{path}"
252
+ msgstr ""
202
253
 
203
254
  msgid "Upload ISO image to datastore for %s"
204
255
  msgstr "ISO-Abbild zum Datenspeicher für %s hochladen"