Я часто создаю серверы centos7 и имею несколько особых требований к сети. Например, я могу использовать серверы имен или репозитории в частных диапазонах, которые не могут быть доступны через мою обычную подсеть или шлюз по умолчанию.
Представьте себе кикстарт с чем-то вроде следующего:
network --device eth0 --bootproto static --ip 192.168.0.100 --netmask 255.255.0.0 --gateway 192.168.0.1 --nameserver 10.0.0.100
repo --name="private" --baseurl=http://172.16.0.100/private/7/x86_64
Это чисто теоретическая установка. Теоретическая коробка имеет IP-адрес в диапазоне 192.168 со шлюзом по умолчанию, который может подключиться к более широкому миру, но хотел бы достичь сети 10/8 и 172,16 / 12.
Кроме того, представьте, что шлюз по умолчанию не может подключиться к этим другим подсетям.
В живой среде centos я мог бы сделать следующее
ip route add 10.0.0.0/8 via 192.168.0.2
ip route add 172.16.0.0/12 via 192.168.0.3
и чтобы сделать его постоянным, его можно добавить в / etc / sysconfig / network-scripts / route-eth0
Как мне заставить все это задействоваться в анаконде? Исторически это могло сработать в% pre, но если я использую ssh в anaconda во время его работы, я вижу, что этих маршрутов нет.
Почему бы вам просто не настроить статические маршруты в %post
?
%post
cat > /etc/sysconfig/network-scripts/route-eth0 <<EOF
10.0.0.0/8 via 192.168.0.2
172.16.0.0/12 via 192.168.0.3
EOF
Если вам нужны статические маршруты во время установки, вы, безусловно, можете добавить соответствующие ip route
команды для %pre
также.
В конце концов я нашел решение
%pre
nmcli connection modify "System eth0" +ipv4.routes "10.0.0.0/8 192.168.0.2"
%end
И то, и другое работает для сборки, но также остается постоянным и в дальнейшем.