Я пытаюсь настроить виртуальную машину с Centos6.5 на виртуальную машину со статическим 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, зарегистрирован в foreman и т. Д. За исключением того, что IP-адрес не статический.
Что я здесь делаю не так?
Фактический файл ks после установки содержит следующую строку:
network --onboot yes --device eth0 --mtu=1500 --bootproto dhcp --hostname test3.example.net
что странно, потому что я добавляю ?static=yes
на адрес ks. (я думаю, вот как это сделать?)
Создайте шаблон PXELinux и укажите static = yes в запросе кикстарта.
Например, я добавил вот так ...
append initrd=<%= @initrd %> ks=<%= foreman_url('provision')%>&static=yes ksdevice=bootif network kssendmac
Я связал это с конкретной группой хостов, которую я хотел снабдить статическими адресами.
Теперь у меня все заработало, изменив эту строку в шаблоне кикстарта по умолчанию с:
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.
Однако мне все еще интересно, как правильно передать эту переменную для кикстарта.
перейдите в Инфраструктура -> подсети -> щелкните по умолчанию -> измените "режим загрузки" на статический