[opensuse-autoinstall] configuring NFS mounts in autoyast *disables* NFSv4
(Platform: SLES 11 amd64) I have run into some strange interaction between autoyast and NFSv4. If I don't put an NFS section in my profile, it apparently keeps things at their defaults, including NFS4_SUPPORT="yes" in /etc/sysconfig/nfs, without any sysconfig entries for this. However, if I include an nfs client section which configures an NFSv4 mountpoint, somehow that sysconfig setting gets set to "no", which means idmapd fails to start on boot. I tried overriding that with a sysconfig entry in my autoyast profile, but apparently whatever is incorrectly configuring NFS runs after the sysconfig settings, as the only difference adding the sysconfig setting does is generate some messages in the y2log. It appears to apply those sysconfig settings, but near the end of installation, there's this: 2010-02-01 12:11:08 <1> test(3957) [YCP] clients/installation.ycp:58 === installation === 2010-02-01 12:11:08 <1> test(3957) [ncurses] YNCursesUI.cc(~YNCursesUI):113 Stop YNCursesUI 2010-02-01 12:11:08 <1> test(3957) [ui-macro] YCPMacroRecorder.cc(closeMacroFile):109 Macro recording done. 2010-02-01 12:11:08 <1> test(3957) [ncurses] NCurses.cc(~NCurses):149 Shutdown NCurses... 2010-02-01 12:11:08 <1> test(3957) [ncurses] NCurses.cc(~NCurses):168 NCurses down 2010-02-01 12:11:08 <1> test(3957) [wfm] WFMSubAgent.cc(~WFMSubAgent):41 Deleting SubAgent: 0 scr 2010-02-01 12:11:08 <1> test(3957) [wfm] WFMSubAgent.cc(~WFMSubAgent):41 Deleting SubAgent: 1 scr 2010-02-01 12:11:08 <1> test(3957) [liby2] Y2ProgramComponent.cc(result):159 Sending result: `result (nil) 2010-02-01 12:11:08 <1> test(3957) [liby2] Y2ProgramComponent.cc(result):159 Sending result: `result (nil) 2010-02-01 12:11:08 <1> test(3957) [liby2] Y2ProgramComponent.cc(result):159 Sending result: `result (nil) 2010-02-01 12:11:08 <2> test(3957) [agent-ini] IniParser.cc(UpdateIfModif):906 Data file '/etc/sysconfig/nfs' was changed externaly! 2010-02-01 12:11:08 <1> test(3957) [liby2] Y2ProgramComponent.cc(result):159 Sending result: `result (nil) 2010-02-01 12:11:08 <1> test(3957) [wfm] WFMSubAgent.cc(~WFMSubAgent):41 Deleting SubAgent: -1 ag_system 2010-02-01 12:11:08 <1> test(3957) [liby2] genericfrontend.cc(main):777 Finished YaST2 component 'y2base' 2010-02-01 12:11:08 <1> test(3957) [liby2] genericfrontend.cc(main):782 Exiting with client return value '`next' Apparently the "external" change to that file is my autoyast sysconfig setting, as I don't get that message without it. The things just before this in the y2log are running my post-install scripts (which include [ab]using Perl to set the domain in idmapd.conf, since there's apparently no autoyast or sysconfig setting for that) and then SuSEconfig. Since that "changed externaly [sic]" message occurs after post-scripts, I have a feeling trying to set the sysconfig value with "perl -pi -e 's/^(NFS4_SUPPORT=).*/\1"yes"/' /etc/sysconfig/nfs" in a post-script would get overriden also. Is there a setting I am missing somewhere, or have I just hit a bug? I didn't find any "enable NFSv4" settings in autoyast docs or the schemas. Note: I am not installing via NFSv4, just attempting to configure mountpoints. The installation source and autoyast are both over http. autoyast profile: ==== <?xml version="1.0"?> <!DOCTYPE profile> <profile xmlns="http://www.suse.com/1.0/yast2ns" xmlns:config="http://www.suse.com/1.0/configns"> <classes config:type="list"> <class> <class_name>std</class_name> <configuration>files.xml</configuration> </class> [more classes snipped] <class> <class_name>zope</class_name> <configuration>nfs.xml</configuration> </class> <class> <class_name>zope</class_name> <configuration>software.xml</configuration> </class> <class> <class_name>std</class_name> <configuration>sysconfig.xml</configuration> </class> </classes> </profile> ==== classes/zope/nfs.xml (generated via 'yast2 autoyast') : ==== <?xml version="1.0"?> <!DOCTYPE profile> <profile xmlns="http://www.suse.com/1.0/yast2ns" xmlns:config="http://www.suse.com/1.0/configns"> <nfs config:type="list"> <nfs_entry> <mount_point>/nfs/zope</mount_point> <nfs_options>defaults</nfs_options> <server_path>nfs.vpr.int:/zope</server_path> <vfstype>nfs4</vfstype> </nfs_entry> </nfs> </profile> ==== classes/std/sysconfig.xml: ==== <?xml version="1.0"?> <!DOCTYPE profile> <profile xmlns="http://www.suse.com/1.0/yast2ns" xmlns:config="http://www.suse.com/1.0/configns"> <sysconfig config:type="list"> <sysconfig_entry> <sysconfig_key>DAILY_TIME</sysconfig_key> <sysconfig_path>/etc/sysconfig/cron</sysconfig_path> <sysconfig_value>04:00</sysconfig_value> </sysconfig_entry> <!-- don't add entry for {127.0.0.2, myhostname} to /etc/hosts --> <sysconfig_entry> <sysconfig_key>WRITE_HOSTNAME_TO_HOSTS</sysconfig_key> <sysconfig_path>/etc/sysconfig/network/dhcp</sysconfig_path> <sysconfig_value>no</sysconfig_value> </sysconfig_entry> <sysconfig_entry> <sysconfig_key>NFS4_SUPPORT</sysconfig_key> <sysconfig_path>/etc/sysconfig/nfs</sysconfig_path> <sysconfig_value>yes</sysconfig_value> </sysconfig_entry> </sysconfig> </profile> ==== The other sysconfig settings are applied correctly. As mentioned earlier, if I leave out the NFS section, /etc/sysconfig/nfs is correct. Thanks, Andrew Daugherity Systems Analyst Division of Research & Graduate Studies Texas A&M University -- To unsubscribe, e-mail: opensuse-autoinstall+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-autoinstall+help@opensuse.org
Hi,
I have run into some strange interaction between autoyast and NFSv4. If I don't put an NFS section in my profile, it apparently keeps things at their defaults, including NFS4_SUPPORT="yes" in /etc/sysconfig/nfs, without any sysconfig entries for this. However, if I include an nfs client section which configures an NFSv4 mountpoint, somehow that sysconfig setting gets set to "no", which means idmapd fails to start on boot.
Is there a setting I am missing somewhere, or have I just hit a bug? I didn't find any "enable NFSv4" settings in autoyast docs or the schemas.
Yeah, you've hit my buggy code :-| There are in fact two issues. The first one is overriding sysconfig value with Nfs module default (this is trivial to fix and can be done for the next SLE11 servicepack). The second one is more a feature request - some optional vars for switching NFSv4 support on/off and setting up idmapd.conf in <nfs> section of AY profile. There is already bugzilla ticket for this. However, it's not something that could be easily pushed into servicepack, as current <nfs> section structure doesn't allow incorporating such change without creating backwards incompatibility.
The things just before this in the y2log are running my post-install scripts (which include [ab]using Perl to set the domain in idmapd.conf, since there's apparently no autoyast or sysconfig setting for that) and then SuSEconfig. Since that "changed externaly [sic]" message occurs after post-scripts, I have a feeling trying to set the sysconfig value with "perl -pi -e 's/^(NFS4_SUPPORT=).*/\1"yes"/' /etc/sysconfig/nfs" in a post-script would get overriden also.
It depends. If the post-script has a <network_needed> tag set to true, anything it changes will get overriden by what is specified (or implicitly set) in AY profile. By default (<network_needed> is false) it is however not the case, post-scripts are executed after configuration has already finished. In case of emergency, you may (ab)use Perl in init-script, which is executed even later. fB. -- To unsubscribe, e-mail: opensuse-autoinstall+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-autoinstall+help@opensuse.org
participants (2)
-
Andrew Daugherity
-
Katarina Machalkova