Использование мастера для обеспечения виртуальной машины статическим ip

Я пытаюсь обеспечить VM с Centos6.5 на VMware со статическим IP-адресом с помощью Foreman 1.5.1. Однако виртуальный компьютер продолжает получать адрес DHCP. Я делаю сетевую установку. Я создал подсеть со всей информацией о сети (диапазон подсети, шлюз, DNS-сервер и т. Д.). В foreman я включил интеллектуальный прокси-сервер 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 -%>

кикстарт по умолчанию:

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, он устанавливается с помощью pxe, регистрируется в мастере и т. Д. Кроме того, IP-адрес не является статическим.

Что я здесь не так делаю?

Фактический файл ks после установки содержит следующую строку:

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

что странно, потому что я добавляю ?static=yes на адрес кс. (Я думаю, это способ сделать это?)

3 ответа

Решение

Теперь я получил его, изменив эту строку в шаблоне кикстарта по умолчанию из:

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.

Тем не менее, я все еще задаюсь вопросом, как правильно передать эту переменную для запуска.

Создайте шаблон PXELinux и введите static=yes в ваш запрос на кикстарт

Например, я добавил свой, как так...

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

Я связал это с конкретной группой хостов, которую я хотел обеспечить статическими адресами

Зайдите в Инфраструктура -> подсети -> нажмите по умолчанию -> измените "режим загрузки" на статический

Другие вопросы по тегам