Использование мастера для обеспечения виртуальной машины статическим 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
Я связал это с конкретной группой хостов, которую я хотел обеспечить статическими адресами
Зайдите в Инфраструктура -> подсети -> нажмите по умолчанию -> измените "режим загрузки" на статический