foreman_bootdisk 15.1.0 → 16.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/AUTHORS +3 -1
- data/README.md +16 -0
- data/app/helpers/concerns/foreman_bootdisk/hosts_helper_ext.rb +14 -14
- data/app/models/setting/bootdisk.rb +12 -19
- data/app/services/foreman_bootdisk/iso_generator.rb +8 -8
- data/app/views/foreman_bootdisk/generic_static_host.erb +34 -0
- data/db/seeds.d/50-bootdisk_templates.rb +14 -31
- data/lib/foreman_bootdisk/engine.rb +2 -2
- data/lib/foreman_bootdisk/version.rb +1 -1
- data/locale/ca/LC_MESSAGES/foreman_bootdisk.mo +0 -0
- data/locale/ca/foreman_bootdisk.po +22 -4
- data/locale/de/LC_MESSAGES/foreman_bootdisk.mo +0 -0
- data/locale/de/foreman_bootdisk.po +22 -4
- data/locale/en/LC_MESSAGES/foreman_bootdisk.mo +0 -0
- data/locale/en/foreman_bootdisk.po +13 -4
- data/locale/en_GB/LC_MESSAGES/foreman_bootdisk.mo +0 -0
- data/locale/en_GB/foreman_bootdisk.po +24 -6
- data/locale/es/LC_MESSAGES/foreman_bootdisk.mo +0 -0
- data/locale/es/foreman_bootdisk.po +22 -4
- data/locale/foreman_bootdisk.pot +18 -6
- data/locale/fr/LC_MESSAGES/foreman_bootdisk.mo +0 -0
- data/locale/fr/foreman_bootdisk.po +23 -5
- data/locale/it/LC_MESSAGES/foreman_bootdisk.mo +0 -0
- data/locale/it/foreman_bootdisk.po +22 -4
- data/locale/ja/LC_MESSAGES/foreman_bootdisk.mo +0 -0
- data/locale/ja/foreman_bootdisk.po +23 -5
- data/locale/ko/LC_MESSAGES/foreman_bootdisk.mo +0 -0
- data/locale/ko/foreman_bootdisk.po +22 -4
- data/locale/pt_BR/LC_MESSAGES/foreman_bootdisk.mo +0 -0
- data/locale/pt_BR/foreman_bootdisk.po +22 -4
- data/locale/ru/LC_MESSAGES/foreman_bootdisk.mo +0 -0
- data/locale/ru/foreman_bootdisk.po +22 -4
- data/locale/sv_SE/LC_MESSAGES/foreman_bootdisk.mo +0 -0
- data/locale/sv_SE/foreman_bootdisk.po +22 -4
- data/locale/zh_CN/LC_MESSAGES/foreman_bootdisk.mo +0 -0
- data/locale/zh_CN/foreman_bootdisk.po +22 -4
- data/locale/zh_TW/LC_MESSAGES/foreman_bootdisk.mo +0 -0
- data/locale/zh_TW/foreman_bootdisk.po +22 -4
- data/release-gem +2 -0
- metadata +33 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3a69fd6de3a18c8670dfe431cf989b8c02f94b9aa48da2c17aa93e504d98f869
|
4
|
+
data.tar.gz: 7354aff9025bfdd9f1acd3e312b2350268866b108a534dc3143b99ff731de1b9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1fe67673899bbaf6b8588103341bf6f8436aecc7d761e574f9c835940d530eb199bbc29c44a61234710abd7ec00a76e2e89dc7ecbcb17211a0c7ff5df27d8c16
|
7
|
+
data.tar.gz: 70838f0a73b4c1541bc728de2f0399aa3946da0714e31b05d1dee08a7254aa6be8c1cd0a3b769dcfa566b21963fd9fb0591792e23758c6ceeb4885a1a2a3ff20
|
data/AUTHORS
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
Bryan Kearney
|
2
|
-
crito
|
3
2
|
Dominic Cleal
|
4
3
|
Greg Sutcliffe
|
5
4
|
Ido Kanner
|
@@ -14,11 +13,14 @@ Michael Hofer
|
|
14
13
|
Michael Moll
|
15
14
|
Ohad Levy
|
16
15
|
Ondrej Prazak
|
16
|
+
Ondřej Ezr
|
17
17
|
Ondřej Pražák
|
18
18
|
Robert Antoni Buj Gelonch
|
19
|
+
Rohan21Lobo
|
19
20
|
Ronald van Zantvoort
|
20
21
|
Sam Kottler
|
21
22
|
Sean O'Keeffe
|
22
23
|
Stephen Benjamin
|
23
24
|
Swapnil Abnave
|
24
25
|
Timo Goebel
|
26
|
+
crito
|
data/README.md
CHANGED
@@ -236,6 +236,22 @@ To generate from the command line on the Foreman server:
|
|
236
236
|
Set `OUTPUT=/path` to change the output destination path (directory or file).
|
237
237
|
It must be writable by the 'foreman' user.
|
238
238
|
|
239
|
+
### Generic static image
|
240
|
+
|
241
|
+
This is generic image type which asks for network credentials instead of doing
|
242
|
+
DHCP request. Tokens must be turned off in order to find the host by MAC
|
243
|
+
address. To do that, set Token duration to 0 in Administer - Settings.
|
244
|
+
|
245
|
+
- Network interface name
|
246
|
+
- IP Address
|
247
|
+
- Netmask
|
248
|
+
- Gateway
|
249
|
+
- DNS
|
250
|
+
|
251
|
+
To use generic static host image, set "Generic image template" to "Bootdisk
|
252
|
+
iPXE - host template" in Administer - Settings - Boot disk. Only one template
|
253
|
+
can be used at one time across all hosts.
|
254
|
+
|
239
255
|
### Subnet images
|
240
256
|
|
241
257
|
Subnet images are similar to generic images, but chain-loading is done via the
|
@@ -2,27 +2,27 @@
|
|
2
2
|
|
3
3
|
module ForemanBootdisk
|
4
4
|
module HostsHelperExt
|
5
|
-
def host_title_actions(
|
6
|
-
if
|
5
|
+
def host_title_actions(host)
|
6
|
+
if host.bootdisk_downloadable?
|
7
7
|
title_actions(
|
8
8
|
button_group(
|
9
9
|
select_action_button(
|
10
10
|
_('Boot disk'), { class: 'btn btn-group' },
|
11
11
|
display_bootdisk_link_if_authorized(
|
12
|
-
_("Host '%s' image") %
|
12
|
+
_("Host '%s' image") % host.name.split('.')[0],
|
13
13
|
{
|
14
14
|
controller: 'foreman_bootdisk/disks',
|
15
15
|
action: 'host',
|
16
|
-
id:
|
16
|
+
id: host
|
17
17
|
},
|
18
18
|
class: 'la'
|
19
19
|
),
|
20
20
|
display_bootdisk_link_if_authorized(
|
21
|
-
_("Full host '%s' image") %
|
21
|
+
_("Full host '%s' image") % host.name.split('.')[0],
|
22
22
|
{
|
23
23
|
controller: 'foreman_bootdisk/disks',
|
24
24
|
action: 'full_host',
|
25
|
-
id:
|
25
|
+
id: host
|
26
26
|
},
|
27
27
|
class: 'la'
|
28
28
|
),
|
@@ -35,7 +35,7 @@ module ForemanBootdisk
|
|
35
35
|
},
|
36
36
|
class: 'la'
|
37
37
|
),
|
38
|
-
display_bootdisk_for_subnet,
|
38
|
+
display_bootdisk_for_subnet(host),
|
39
39
|
content_tag(:li, '', class: 'divider'),
|
40
40
|
display_bootdisk_link_if_authorized(
|
41
41
|
_('Help'), {
|
@@ -48,29 +48,29 @@ module ForemanBootdisk
|
|
48
48
|
)
|
49
49
|
)
|
50
50
|
else
|
51
|
-
bootdisk_button_disabled
|
51
|
+
bootdisk_button_disabled(host)
|
52
52
|
end
|
53
53
|
|
54
54
|
super
|
55
55
|
end
|
56
56
|
|
57
|
-
def bootdisk_button_disabled
|
57
|
+
def bootdisk_button_disabled(host)
|
58
58
|
title_actions(
|
59
59
|
button_group(
|
60
60
|
link_to(_('Boot disk'), '#', disabled: true, class: 'btn btn-default',
|
61
|
-
title: _('Boot disk download not available for %s architecture') %
|
61
|
+
title: _('Boot disk download not available for %s architecture') % host.architecture.name)
|
62
62
|
)
|
63
63
|
)
|
64
64
|
end
|
65
65
|
|
66
66
|
# need to wrap this one in a test for template proxy presence
|
67
|
-
def display_bootdisk_for_subnet
|
68
|
-
if (proxy =
|
67
|
+
def display_bootdisk_for_subnet(host)
|
68
|
+
if (proxy = host.try(:subnet).try(:tftp)) && proxy.has_feature?('Templates')
|
69
69
|
display_bootdisk_link_if_authorized(
|
70
|
-
_("Subnet '%s' generic image") %
|
70
|
+
_("Subnet '%s' generic image") % host.subnet.name, {
|
71
71
|
controller: 'foreman_bootdisk/disks',
|
72
72
|
action: 'subnet',
|
73
|
-
id:
|
73
|
+
id: host
|
74
74
|
},
|
75
75
|
class: 'la'
|
76
76
|
)
|
@@ -2,30 +2,23 @@
|
|
2
2
|
|
3
3
|
class Setting
|
4
4
|
class Bootdisk < ::Setting
|
5
|
-
def self.
|
6
|
-
return unless ApplicationRecord.connection.table_exists?('settings')
|
7
|
-
return unless super
|
8
|
-
|
5
|
+
def self.default_settings
|
9
6
|
ipxe = ['/usr/lib/ipxe'].find { |p| File.exist?(p) } || '/usr/share/ipxe'
|
10
7
|
isolinux = ['/usr/lib/ISOLINUX'].find { |p| File.exist?(p) } || '/usr/share/syslinux'
|
11
8
|
syslinux = ['/usr/lib/syslinux/modules/bios', '/usr/lib/syslinux'].find { |p| File.exist?(p) } || '/usr/share/syslinux'
|
12
9
|
templates = -> { Hash[ProvisioningTemplate.where(template_kind: TemplateKind.where(name: 'Bootdisk')).map { |temp| [temp[:name], temp[:name]] }] }
|
13
10
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
].compact.each { |s| create s.update(category: 'Setting::Bootdisk') }
|
26
|
-
end
|
27
|
-
|
28
|
-
true
|
11
|
+
[
|
12
|
+
set('bootdisk_ipxe_dir', N_('Path to directory containing iPXE images'), ipxe, N_('iPXE directory')),
|
13
|
+
set('bootdisk_isolinux_dir', N_('Path to directory containing isolinux images'), isolinux, N_('ISOLINUX directory')),
|
14
|
+
set('bootdisk_syslinux_dir', N_('Path to directory containing syslinux images'), syslinux, N_('SYSLINUX directory')),
|
15
|
+
set('bootdisk_host_template', N_('iPXE template to use for host-specific boot disks'),
|
16
|
+
'Boot disk iPXE - host', N_('Host image template'), nil, collection: templates),
|
17
|
+
set('bootdisk_generic_host_template', N_('iPXE template to use for generic host boot disks'),
|
18
|
+
'Boot disk iPXE - generic host', N_('Generic image template'), nil, collection: templates),
|
19
|
+
set('bootdisk_mkiso_command', N_('Command to generate ISO image, use genisoimage or mkisofs'), 'genisoimage', N_('ISO generation command')),
|
20
|
+
set('bootdisk_cache_media', N_('Installation media files will be cached for full host images'), true, N_('Installation media caching'))
|
21
|
+
]
|
29
22
|
end
|
30
23
|
|
31
24
|
def self.humanized_category
|
@@ -11,7 +11,7 @@ require 'uri'
|
|
11
11
|
module ForemanBootdisk
|
12
12
|
class ISOGenerator
|
13
13
|
def self.generate_full_host(host, opts = {}, &block)
|
14
|
-
raise
|
14
|
+
raise(Foreman::Exception, N_('Host is not in build mode, so the template cannot be rendered')) unless host.build?
|
15
15
|
|
16
16
|
tmpl = render_pxelinux_template(host)
|
17
17
|
|
@@ -30,7 +30,7 @@ module ForemanBootdisk
|
|
30
30
|
def self.render_pxelinux_template(host)
|
31
31
|
pxelinux_template = host.provisioning_template(kind: :PXELinux)
|
32
32
|
|
33
|
-
raise
|
33
|
+
raise(Foreman::Exception, N_('Unable to generate disk template, PXELinux template not found.')) unless pxelinux_template
|
34
34
|
|
35
35
|
template = ForemanBootdisk::Renderer.new.render_template(
|
36
36
|
template: pxelinux_template,
|
@@ -40,7 +40,7 @@ module ForemanBootdisk
|
|
40
40
|
|
41
41
|
unless template
|
42
42
|
err = host.errors.full_messages.to_sentence
|
43
|
-
raise
|
43
|
+
raise(::Foreman::Exception.new(N_('Unable to generate disk PXELinux template: %s'), err))
|
44
44
|
end
|
45
45
|
|
46
46
|
template
|
@@ -59,7 +59,7 @@ module ForemanBootdisk
|
|
59
59
|
|
60
60
|
if opts[:isolinux]
|
61
61
|
isolinux_source_file = File.join(Setting[:bootdisk_isolinux_dir], 'isolinux.bin')
|
62
|
-
raise
|
62
|
+
raise(Foreman::Exception, N_('Please ensure the isolinux/syslinux package(s) are installed.')) unless File.exist?(isolinux_source_file)
|
63
63
|
|
64
64
|
FileUtils.cp(isolinux_source_file, File.join(wd, 'build', 'isolinux.bin'))
|
65
65
|
|
@@ -76,7 +76,7 @@ module ForemanBootdisk
|
|
76
76
|
|
77
77
|
if opts[:ipxe]
|
78
78
|
ipxe_source_file = File.join(Setting[:bootdisk_ipxe_dir], 'ipxe.lkrn')
|
79
|
-
raise
|
79
|
+
raise(Foreman::Exception, N_('Please ensure the ipxe-bootimgs package is installed.')) unless File.exist?(ipxe_source_file)
|
80
80
|
|
81
81
|
FileUtils.cp(ipxe_source_file, File.join(wd, 'build', 'ipxe'))
|
82
82
|
File.open(File.join(wd, 'build', 'script'), 'w') { |file| file.write(opts[:ipxe]) }
|
@@ -95,10 +95,10 @@ module ForemanBootdisk
|
|
95
95
|
else
|
96
96
|
File.join(wd, 'output.iso')
|
97
97
|
end
|
98
|
-
raise
|
98
|
+
raise(Foreman::Exception, N_('ISO build failed')) unless system(build_mkiso_command(output_file: iso, source_directory: File.join(wd, 'build')))
|
99
99
|
|
100
100
|
# Make the ISO bootable as a HDD/USB disk too
|
101
|
-
raise
|
101
|
+
raise(Foreman::Exception, N_('ISO hybrid conversion failed')) unless system('isohybrid', iso)
|
102
102
|
|
103
103
|
yield iso
|
104
104
|
end
|
@@ -156,7 +156,7 @@ module ForemanBootdisk
|
|
156
156
|
# prevent multiple writes to the cache
|
157
157
|
write_cache = false
|
158
158
|
else
|
159
|
-
raise
|
159
|
+
raise ::Foreman::Exception, N_(format("Unable to download boot file %{uri}, HTTP return code %{code}", uri: uri, code: response.code))
|
160
160
|
end
|
161
161
|
end
|
162
162
|
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
#!ipxe
|
2
|
+
#
|
3
|
+
# Generic host template with interactive static IP configuration. Tokens
|
4
|
+
# must be disabled in order to access templates via MAC addresses.
|
5
|
+
#
|
6
|
+
|
7
|
+
<% (0..32).each do |i| -%>
|
8
|
+
:net<%= i %>
|
9
|
+
isset ${net<%= i -%>/mac} || goto configure
|
10
|
+
echo Found ${net<%= i -%>/mac} as net<%= i -%> on a ${net<%= i -%>/chip}
|
11
|
+
goto net<%= i+1 %>
|
12
|
+
<% end -%>
|
13
|
+
|
14
|
+
:configure
|
15
|
+
echo -n Interface (e.g. net0): && read interface
|
16
|
+
iseq ${interface} n && goto reboot ||
|
17
|
+
iseq ${interface} N && goto reboot ||
|
18
|
+
|
19
|
+
ifopen ${interface}
|
20
|
+
echo Please enter IPv4 details for ${interface}
|
21
|
+
echo
|
22
|
+
|
23
|
+
echo -n IP address: && read ${interface}/ip
|
24
|
+
echo -n Subnet mask: && read ${interface}/netmask
|
25
|
+
echo -n Default gateway: && read ${interface}/gateway
|
26
|
+
echo -n DNS server: && read dns
|
27
|
+
|
28
|
+
chain <%= bootdisk_chain_url %>${${interface}/mac} || goto reboot
|
29
|
+
exit 0
|
30
|
+
|
31
|
+
:reboot
|
32
|
+
echo Unable to continue, rebooting...
|
33
|
+
sleep 30
|
34
|
+
exit 1
|
@@ -1,32 +1,12 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
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
|
-
|
28
|
-
|
29
|
-
tmpl = ProvisioningTemplate.unscoped.where(name:
|
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,16 @@ ProvisioningTemplate.without_auditing do
|
|
36
16
|
tmpl.attributes = {
|
37
17
|
template: content,
|
38
18
|
default: true,
|
39
|
-
vendor:
|
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
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
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 iPXE - generic static host", read_bootdisk_template("generic_static_host.erb"))
|
48
31
|
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.
|
41
|
+
requires_foreman '>= 1.24'
|
42
42
|
|
43
43
|
security_block :bootdisk do |_map|
|
44
44
|
permission :download_bootdisk, 'foreman_bootdisk/disks': %i[generic host full_host subnet help],
|
@@ -53,7 +53,7 @@ module ForemanBootdisk
|
|
53
53
|
apipie_documented_controllers ["#{ForemanBootdisk::Engine.root}/app/controllers/foreman_bootdisk/api/v2/*.rb"]
|
54
54
|
provision_method 'bootdisk', N_('Boot disk based')
|
55
55
|
template_labels 'Bootdisk' => N_('Boot disk embedded template')
|
56
|
-
allowed_template_helpers :bootdisk_chain_url, :bootdisk_raise
|
56
|
+
allowed_template_helpers :bootdisk_chain_url, :bootdisk_raise, :bootdisk_build?
|
57
57
|
end
|
58
58
|
end
|
59
59
|
|
Binary file
|
@@ -7,9 +7,9 @@
|
|
7
7
|
# Robert Antoni Buj Gelonch <rbuj@fedoraproject.org>, 2015-2016
|
8
8
|
msgid ""
|
9
9
|
msgstr ""
|
10
|
-
"Project-Id-Version: foreman_bootdisk 15.
|
10
|
+
"Project-Id-Version: foreman_bootdisk 15.1.0\n"
|
11
11
|
"Report-Msgid-Bugs-To: \n"
|
12
|
-
"PO-Revision-Date: 2019-
|
12
|
+
"PO-Revision-Date: 2019-08-12 08:51+0000\n"
|
13
13
|
"Last-Translator: Lukáš Zapletal\n"
|
14
14
|
"Language-Team: Catalan (http://www.transifex.com/foreman/foreman/language/ca/)"
|
15
15
|
"\n"
|
@@ -22,6 +22,9 @@ msgstr ""
|
|
22
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."
|
23
23
|
msgstr ""
|
24
24
|
|
25
|
+
msgid "Action with sub plans"
|
26
|
+
msgstr ""
|
27
|
+
|
25
28
|
msgid "All images are usable as either ISOs or as disk images, including being written to a USB disk with `dd`."
|
26
29
|
msgstr ""
|
27
30
|
|
@@ -46,6 +49,9 @@ msgstr ""
|
|
46
49
|
msgid "Boot disks"
|
47
50
|
msgstr "Discs d'arrencada"
|
48
51
|
|
52
|
+
msgid "Both IP and Subnet must be set"
|
53
|
+
msgstr ""
|
54
|
+
|
49
55
|
msgid "Command to generate ISO image, use genisoimage or mkisofs"
|
50
56
|
msgstr "L'ordre per generar la imatge ISO, utilitzeu genisoimage o mkisofs"
|
51
57
|
|
@@ -94,8 +100,11 @@ msgstr "Ajuda"
|
|
94
100
|
msgid "Host '%s' image"
|
95
101
|
msgstr ""
|
96
102
|
|
97
|
-
msgid "Host
|
98
|
-
msgstr "
|
103
|
+
msgid "Host bootdisk does not work with static IPv6"
|
104
|
+
msgstr ""
|
105
|
+
|
106
|
+
msgid "Host has no IPv4 or IPv6 address defined"
|
107
|
+
msgstr ""
|
99
108
|
|
100
109
|
msgid "Host has no domain defined"
|
101
110
|
msgstr "L'amfitrió no té definit cap domini"
|
@@ -127,6 +136,12 @@ msgstr ""
|
|
127
136
|
msgid "ISOLINUX directory"
|
128
137
|
msgstr ""
|
129
138
|
|
139
|
+
msgid "Import Puppet classes"
|
140
|
+
msgstr ""
|
141
|
+
|
142
|
+
msgid "Import facts"
|
143
|
+
msgstr ""
|
144
|
+
|
130
145
|
msgid "Installation media caching"
|
131
146
|
msgstr ""
|
132
147
|
|
@@ -157,6 +172,9 @@ msgstr ""
|
|
157
172
|
msgid "Plugin for Foreman that creates iPXE-based boot disks to provision hosts without the need for PXE infrastructure."
|
158
173
|
msgstr ""
|
159
174
|
|
175
|
+
msgid "Remote action:"
|
176
|
+
msgstr ""
|
177
|
+
|
160
178
|
msgid "SYSLINUX directory"
|
161
179
|
msgstr ""
|
162
180
|
|
Binary file
|
@@ -12,9 +12,9 @@
|
|
12
12
|
# simon11 <simon.stieger.98@live.de>, 2014
|
13
13
|
msgid ""
|
14
14
|
msgstr ""
|
15
|
-
"Project-Id-Version: foreman_bootdisk 15.
|
15
|
+
"Project-Id-Version: foreman_bootdisk 15.1.0\n"
|
16
16
|
"Report-Msgid-Bugs-To: \n"
|
17
|
-
"PO-Revision-Date: 2019-
|
17
|
+
"PO-Revision-Date: 2019-08-12 08:51+0000\n"
|
18
18
|
"Last-Translator: Lukáš Zapletal\n"
|
19
19
|
"Language-Team: German (http://www.transifex.com/foreman/foreman/language/de/)\n"
|
20
20
|
"MIME-Version: 1.0\n"
|
@@ -26,6 +26,9 @@ msgstr ""
|
|
26
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."
|
27
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."
|
28
28
|
|
29
|
+
msgid "Action with sub plans"
|
30
|
+
msgstr ""
|
31
|
+
|
29
32
|
msgid "All images are usable as either ISOs or as disk images, including being written to a USB disk with `dd`."
|
30
33
|
msgstr "Alle Abbilder können entweder als ISOs oder als Festplattenabbilder verwendet werden und auch mit `dd` auf eine USB-Festplatte geschrieben."
|
31
34
|
|
@@ -50,6 +53,9 @@ msgstr "Im Startmedium eingebettete Vorlage"
|
|
50
53
|
msgid "Boot disks"
|
51
54
|
msgstr "Startmedien"
|
52
55
|
|
56
|
+
msgid "Both IP and Subnet must be set"
|
57
|
+
msgstr ""
|
58
|
+
|
53
59
|
msgid "Command to generate ISO image, use genisoimage or mkisofs"
|
54
60
|
msgstr "Kommando zur Erstellung von ISO-Abbildern, verwende genisoimage oder mkisofs"
|
55
61
|
|
@@ -98,8 +104,11 @@ msgstr "Hilfe"
|
|
98
104
|
msgid "Host '%s' image"
|
99
105
|
msgstr "Host '%s'-Abbild"
|
100
106
|
|
101
|
-
msgid "Host
|
102
|
-
msgstr "
|
107
|
+
msgid "Host bootdisk does not work with static IPv6"
|
108
|
+
msgstr ""
|
109
|
+
|
110
|
+
msgid "Host has no IPv4 or IPv6 address defined"
|
111
|
+
msgstr ""
|
103
112
|
|
104
113
|
msgid "Host has no domain defined"
|
105
114
|
msgstr "Host hat keine Domäne definiert"
|
@@ -131,6 +140,12 @@ msgstr "ISO hybrid Konvertierung fehlgeschlagen"
|
|
131
140
|
msgid "ISOLINUX directory"
|
132
141
|
msgstr "ISOLINUX-Verzeichnis"
|
133
142
|
|
143
|
+
msgid "Import Puppet classes"
|
144
|
+
msgstr ""
|
145
|
+
|
146
|
+
msgid "Import facts"
|
147
|
+
msgstr ""
|
148
|
+
|
134
149
|
msgid "Installation media caching"
|
135
150
|
msgstr "Installationsmedien-Dateien Caching"
|
136
151
|
|
@@ -161,6 +176,9 @@ msgstr "Bitte die Installation des/der ISOLINUX/SYSLINUX Paket(e) sicherstellen.
|
|
161
176
|
msgid "Plugin for Foreman that creates iPXE-based boot disks to provision hosts without the need for PXE infrastructure."
|
162
177
|
msgstr "Plugin für Foreman, welches iPXE-basierte Startmedien erstellt, um Hosts ohne die Notwendigkeit einer PXE-Infrastruktur bereitzustellen."
|
163
178
|
|
179
|
+
msgid "Remote action:"
|
180
|
+
msgstr ""
|
181
|
+
|
164
182
|
msgid "SYSLINUX directory"
|
165
183
|
msgstr "SYSLINUX-Verzeichnis"
|
166
184
|
|