kickstartファイル中にnetworkについて書けば動くはずなんだけども、どうやら以下のようにしないとだめ。
network --device=ens32 --bootproto=static --ip=10.1.1.1 --netmask=255.255.0.0 --gateway=10.1.255.254 --nameserver=10.1.255.254
普通に" --device=ens32"が必要だった、というだけなんだけども、RHEL7からはなんかデバイス名がハードウェア依存になるっぽいので、ここはkickstartファイルに書けない。常に同じデバイス名であることが保証されてるなら別ですが。
(ちなみにVMWareの仮想NICでVMXNET3だとens32, E1000だとens192だった。なので個人用途ではほぼ決め撃ちでも問題ない。)
検索してもそれっぽい情報をひっかけられなかったので、%postで書けないか何度も動かしてみてると、
nmcliで設定してもダメみたいで、network-scripts灰化にifcfg-[デバイス名]を作ってあげればよさそうだった。NetworkManagerとはなんだったのか。
kickstartファイルの一番下に%postでifcfg-[デバイス名]のファイルを作るスクリプトを書いてあげたらうまくいった。
中身は普通のBashスクリプトで、GATEWAY==DNS Serverという扱い。デバイス情報はnmcliで取る。
%post #raw GATEWAY="10.1.255.254" IPV4ADDR="10.1.1.1" IF_NAME=`nmcli -t --fields DEVICE con | grep -v '^lo' | head -n 1` UUID=`nmcli --fields GENERAL.UUID con show $IF_NAME | awk '{print $2}' HWADDR=`nmcli --fields GENERAL.HWADDR dev show $IF_NAME | awk '{print $2}' PREFIX=16 echo "override ifcfg-$IF_NAME" cat << __EOF__ > /etc/sysconfig/network-scripts/ifcfg-$IF_NAME TYPE=Ethernet BOOTPROTO=none DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no NAME=$IF_NAME UUID=$UUID ONBOOT=yes IPADDR0=$IPV4ADDR PREFIX0=$PREFIX GATEWAY0=$GATEWAY DNS1=$GATEWAY HWADDR=$HWADDR IPV6_PEERDNS=yes IPV6_PEERROUTES=yes __EOF__ #end raw %end