使用工头用静态IP提供虚拟机

我正在使用Foreman 1.5.1在vmware上configuration一个带有静态IP地址的vmware。 但是,虚拟机一直在configuration一个DHCP地址。 我正在做一个基于networking的安装。 我创build了一个子网,包含有关networking的所有信息(子网范围,网关,DNS服务器等)。 在领class中,我启用了该子网的dhcp智能代理(禁用它仍将给出相同的结果,只要dhcp服务器正在运行)

这里来自供应模板的相关行:

Kickstart pxe:

<% if @host.operatingsystem.name == 'Fedora' and @host.operatingsystem.major.to_i > 16 -%>` append initrd=<%= @initrd %> ks=<%= foreman_url('provision')%>?static=yes ks.device=bootif network ks.sendmac ip=<%= @host.ip %> netmask=<%= @host.subnet.mask %> gateway=<%= @host.subnet.gateway %> dns=<%= @host.subnet.dns_primary %> <% elsif @host.operatingsystem.name != 'Fedora' and @host.operatingsystem.major.to_i >= 7 -%> `append initrd=<%= @initrd %> ks=<%= foreman_url('provision')%>?static=yes network ks.sendmac ip= <%= @host.ip %> netmask=<%= @host.subnet.mask %> gateway=<%= @host.subnet.gateway %> dns=<%= @host.subnet.dns_primary %> <% else -%> append initrd=<%= @initrd %> ks=<%= foreman_url('provision')%>?static=yes ksdevice=bootif network kssendmac ip=<%= @host.ip %> netmask=<%= @host.subnet.mask %> gateway=<%= @host.subnet.gateway %> dns=<%= @host.subnet.dns_primary %> <% end -%> 

kickstart默认:

 network --bootproto <%= @static ? "static --ip=#{@host.ip} --netmask=#{@host.subnet.mask} --gateway=#{@host.subnet.gateway} --nameserver=#{[@host.subnet.dns_primary,@host.subnet.dns_secondary].reject{|n| n.blank?}.join(',')}" : 'dhcp' %> --hostname <%= @host %> 

一切正常,服务器在vmware中创build,使用pxe安装,在工头注册等。除了ip地址不是静态的。

我在这里做错了什么?

安装后的实际ks文件包含以下行:

 network --onboot yes --device eth0 --mtu=1500 --bootproto dhcp --hostname test3.example.net 

这是奇怪的,因为我添加?static=yes的KSurl。 (我认为这是做到这一点?)

我现在通过改变默认的kickstart模板中的这一行:

 network --bootproto <%= @static ? "static --ip=#{@host.ip} --netmask=#{@host.subnet.mask} --gateway=#{@host.subnet.gateway} --nameserver=#{[@host.subnet.dns_primary,@host.subnet.dns_secondary].reject{|n| n.blank?}.join(',')}" : 'dhcp' %> --hostname <%= @host %> 

至:

 network --bootproto <%= "static --ip=#{@host.ip} --netmask=#{@host.subnet.mask} --gateway=#{@host.subnet.gateway} --nameserver=#{[@host.subnet.dns_primary,@host.subnet.dns_secondary].reject{|n| n.blank?}.join(',')}" %> --hostname <%= @host %> 

这样我强制使用静态IP。

但是,我仍然想知道如何通过该variables正确启动。

创build一个PXELinux模板并将static = yes提供给您的kickstart请求

例如,我像这样加了我的…

 append initrd=<%= @initrd %> ks=<%= foreman_url('provision')%>&static=yes ksdevice=bootif network kssendmac 

我把它和我想用静态地址configuration的特定主机组关联起来

去基础设施 – >子网 – >点击默认 – >改变“启动模式”为静态