Hide Forgot
+++ This bug was initially created as a clone of Bug #1338631 +++ Description of problem: "SettingsNotFoundError" occur during install with ipv6 parameter in kickstart file. Version-Release number of selected component (if applicable): rhev-hypervisor7-ng-3.6-20160518.0 imgbased-0.6-0.1.el7ev.noarch vdsm-4.17.28-0.el7ev.noarch Red Hat Enterprise Virtualization Manager Version: 3.6.6.2-0.1.el6 How reproducible: 100% Steps to Reproduce: 1. Install ngn on machine with kickstart file in attachment keywords: network --device=enp0s25 --bootproto=static --ipv6=2001::1/64 --gateway=2001::2 2. Check the installation process Actual results: Installation failed, and "SettingsNotFoundError" occur. Expected results: Install successfully with ipv6 parameter Additional info: --- Additional comment from on 2016-05-23 03:35 EDT --- --- Additional comment from on 2016-05-23 03:36 EDT --- --- Additional comment from Fabian Deutsch on 2016-05-23 03:40:51 EDT --- I can not find the error in the logs, but it looks like an issue in anaconda. --- Additional comment from Radek Vykydal on 2016-05-23 09:25:12 EDT --- The --bootoproto option is used only for ipv4 configuration. If used one needs to supply at least --ip and --netmask. In case you don't want to configure ipv4 on a device (not to use default which is dhcp), use --noipv4. Also, for ipv6 gateway there is --ipv6gateway option (documented in rhel 7 installation guide, seems to be missing in https://github.com/rhinstaller/pykickstart/blob/master/docs/kickstart-docs.rst#network). What is the goal of your configuration? Use ipv4 on the device during installation and configure ipv6 only for target system? Or configure static ipv6 additionally to ipv4 (dhcp)? --- Additional comment from Radek Vykydal on 2016-05-23 10:22:14 EDT --- The connection on which anaconda crashes is not created because, as NM says: 07:20:45,048 WARNING NetworkManager: <warn> ifcfg-rh: loading "/etc/sysconfig/network-scripts/ifcfg-enp0s25" fails: ipv4.addresses: this property cannot be empty for 'method=manual' when parsing this ifcfg file: 07:20:49,254 DEBUG ifcfg: /etc/sysconfig/network-scripts/ifcfg-enp0s25: 07:20:49,254 DEBUG ifcfg: # Generated by parse-kickstart 07:20:49,254 DEBUG ifcfg: UUID=7d0ab369-4245-4067-b066-736b8250be67 07:20:49,254 DEBUG ifcfg: IPADDR= 07:20:49,254 DEBUG ifcfg: GATEWAY=2001::2 07:20:49,254 DEBUG ifcfg: IPV6_AUTOCONF=no 07:20:49,255 DEBUG ifcfg: NETMASK= 07:20:49,255 DEBUG ifcfg: BOOTPROTO=static 07:20:49,255 DEBUG ifcfg: DEVICE=enp0s25 07:20:49,255 DEBUG ifcfg: IPV6ADDR=2001::1/64 07:20:49,255 DEBUG ifcfg: ONBOOT=yes 07:20:49,255 DEBUG ifcfg: IPV6INIT=yes Anaconda probably shouldn't be crashing though. With RHEL 7.3 nightly http://download.eng.brq.redhat.com/pub/rhel/nightly/RHEL-7.3-20160520.n.0/ the traceback doesn't occur. It is because new NM actually creates the connection for the ifcfg file. --- Additional comment from on 2016-05-23 23:22:30 EDT --- Hi Radek, I want to use ipv4 on the device during installation and configure ipv6 only for target system. And the configure ipv6 statically. Should I using kickstart commands like below? network --device=enp0s25 --bootproto=dhcp network --device=enp0s25 --noipv4 --ipv6=2001::1/64 --ipv6gateway=2001::2 test with above commands in kickstart file, it can be installed successfully, and the configuration file looks like right for ipv6 [root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-enp0s25 # Generated by parse-kickstart IPV6_DEFAULTGW=2001::2 IPV6INIT=yes IPV6_AUTOCONF=no BOOTPROTO=dhcp DEVICE=enp0s25 IPV6ADDR=2001::1/64 ONBOOT=yes UUID=836e9380-1725-4caf-9bd0-4aa98fcf5274 TYPE=Ethernet DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no NAME="System enp0s25" PEERDNS=yes PEERROUTES=yes if so, I think some update should be done in https://github.com/rhinstaller/pykickstart/blob/master/docs/kickstart-docs.rst#network --- Additional comment from Radek Vykydal on 2016-05-24 04:57:46 EDT --- You can configure a device only once in kickstart. The second configuration would override (or merge? the results are undefined) the first one. If you want to use different configurations of a device for installer environment and for target system, and you use networking in early stage (eg to fetch kickstart) configure the device for installation using boot options and for target system using kickstart. In your case, the device configuration is not supplied via boot options, but because the device needs to be activated in early stage (initramfs) to fetch kickstart, dracut default is used which is: try dhcp on all devices. (If you wanted to configure the device for installer explicitly, you could use boot option ip=enp0s25:dhcp.) For target system, you should be able to use just: network --device=enp0s25 --noipv4 --ipv6=2001::1/64 --ipv6gateway=2001::2 (note that due to your first network command "network --device=enp0s25 --bootproto=dhcp", the device is configured to use dhcp for ipv4 on target system which is perhaps not what you want, using --noipv4) The problem is that anaconda assumes --activate flag to be set for the first network command in kickstart, which means the device will be reactivated in later stage of installer (after switch root from initramfs when anaconda starts) with the kickstart configuration. We are thinking about removing this assumption (in scope of bug #1277975) to make the scenarios as yours possible. As a workaround, make the network command be not the first one, ie use dummy first network command for nonexisting device [1] network --device=DUMMY network --device=enp0s25 --noipv4 --ipv6=2001::1/64 --ipv6gateway=2001::2 We should definitely update documentation (both https://github.com/rhinstaller/pykickstart/blob/master/docs/kickstart-docs.rst#network and RHEL 7 installation guide saying that: --bootproto is option for ipv4 configuration --noipv4 needs to be used to disable ipv4 configuration I'm going to open BZ for documentation team. [1] or network --hostname can be moved to be the first command if it should be configured.
We should update Installation Guide kickstart network command documentation make clear that 1) --bootproto option regards ipv4 configuration only 2) --noipv4 option needs to be used to disable ipv4 configuration of a device I propose adding this information (reword if needed) to --bootproto option: Adding a note: This option configures ipv4 configuration of the device. For ipv6 configuration use --ipv6 and --ipv6gateway options. And update the first paragraph of --bootproto option description to: --bootproto= - One of dhcp, bootp, ibft, or static. The default option is dhcp; the dhcp and bootp options are treated the same. To disable ipv4 configuration of the device, use --noipv4 option.
Document URL: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html-single/Installation_Guide/index.html Section Number and Name: 23.3.2. Kickstart Commands and Options