-
Notifications
You must be signed in to change notification settings - Fork 991
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fixes #37367 - Switch to 'network' directive instead of ifcfg
- Loading branch information
1 parent
42e7178
commit ca34010
Showing
20 changed files
with
536 additions
and
146 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
108 changes: 108 additions & 0 deletions
108
app/views/unattended/provisioning_templates/snippet/kickstart_network_interface.erb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,108 @@ | ||
<%# | ||
name: kickstart_network_interface | ||
model: ProvisioningTemplate | ||
snippet: true | ||
model: ProvisioningTemplate | ||
kind: snippet | ||
description: | | ||
Generates network directive for a given interface. It is not expected to be used directly. | ||
-%> | ||
<%# | ||
# Variables: iface, host, use_slaac, static, static6 | ||
-%> | ||
<%if @iface.managed? -%> | ||
<% | ||
network_options = [] | ||
nameservers = [] | ||
subnet4 = @iface.subnet | ||
subnet6 = @iface.subnet6 | ||
|
||
rhel_compatible = @host.operatingsystem.family == 'Redhat' && @host.operatingsystem.name != 'Fedora' | ||
is_fedora = @host.operatingsystem.name == 'Fedora' | ||
os_major = @host.operatingsystem.major.to_i | ||
|
||
# device and hostname | ||
if @iface.bond? || @iface.bridge? | ||
network_options.push("--device=#{@iface.identifier}") | ||
else | ||
network_options.push("--device=#{@iface.mac || @iface.identifier}") | ||
end | ||
network_options.push("--hostname #{@host.name}") | ||
|
||
# single stack | ||
network_options.push("--noipv6") if subnet4 && !subnet6 | ||
network_options.push("--noipv4") if !subnet4 && subnet6 | ||
|
||
# dual stack MTU check | ||
raise("IPv4 and IPv6 subnets have different MTU") if subnet4 && subnet6 && subnet4.mtu.present? && subnet6.mtu.present? && subnet4.mtu != subnet6.mtu | ||
|
||
# mtu method is taking into account both ipv4 and ipv6 stacks | ||
if @iface.respond_to?(:mtu) && @iface.mtu | ||
network_options.push("--mtu=#{@iface.mtu}") | ||
end | ||
|
||
# IPv4 | ||
if subnet4 | ||
if !subnet4.dhcp_boot_mode? || @static | ||
network_options.push("--bootproto static") | ||
network_options.push("--ip=#{@iface.ip}") | ||
network_options.push("--netmask=#{subnet4.mask}") | ||
network_options.push("--gateway=#{subnet4.gateway}") | ||
elsif subnet4.dhcp_boot_mode? | ||
network_options.push("--bootproto dhcp") | ||
end | ||
|
||
nameservers.concat(subnet4.dns_servers) | ||
end | ||
|
||
# IPv6 | ||
if subnet6 | ||
if !subnet6.dhcp_boot_mode? || @static6 | ||
network_options.push("--ipv6=#{@iface.ip6}/#{subnet6.cidr}") | ||
network_options.push("--ipv6gateway=#{subnet6.gateway}") | ||
elsif subnet6.dhcp_boot_mode? | ||
if @use_slaac | ||
network_options.push("--ipv6 auto") | ||
else | ||
network_options.push("--ipv6 dhcp") | ||
end | ||
end | ||
|
||
nameservers.concat(subnet6.dns_servers) | ||
end | ||
|
||
# bond | ||
if @iface.bond? | ||
bond_slaves = @iface.attached_devices_identifiers.join(',') | ||
network_options.push("--bondslaves=#{bond_slaves}") | ||
network_options.push("--bondopts=mode=#{@iface.mode},#{@iface.bond_options.tr(' ', ',')}") | ||
end | ||
|
||
# bridge | ||
if @iface.bridge? | ||
bridge_slaves = @iface.attached_devices_identifiers.join(',') | ||
network_options.push("--bridgeslaves=#{bridge_slaves}") | ||
# Currently no support for bridge options in the interface. | ||
end | ||
|
||
# VLAN (only on physical is recognized) | ||
if @iface.virtual? && @iface.tag.present? && @iface.attached_to.present? | ||
network_options.push("--vlanid=#{@iface.tag}") | ||
network_options.push("--interfacename=vlan#{@iface.tag}") if (is_fedora && os_major >= 21) || (rhel_compatible && os_major >= 7) | ||
end | ||
|
||
# DNS | ||
if nameservers.empty? | ||
network_options.push("--nodns") | ||
else | ||
network_options.push("--nameserver=#{nameservers.join(',')}") | ||
end | ||
|
||
# Search domain - available from Fedora 39 (RHEL 10) | ||
if @iface.domain && ((is_fedora && os_major >= 39) || (rhel_compatible && os_major >= 10)) | ||
network_options.push("--ipv4-dns-search=#{@iface.domain}") if subnet4 | ||
network_options.push("--ipv6-dns-search=#{@iface.domain}") if subnet6 | ||
end | ||
-%> | ||
<%= "network #{network_options.join(' ')}\n" -%> | ||
<% end -%> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3,10 +3,6 @@ | |
|
||
|
||
|
||
service network restart | ||
|
||
|
||
|
||
|
||
|
||
|
||
|
Oops, something went wrong.