[node-devel] [PATCH] Add network configure in emergency shell

Eli Qiao taget at linux.vnet.ibm.com
Thu Dec 22 06:41:18 UTC 2011



于 2011年12月21日 22:41, Mike Burns 写道:
> Thanks for the patch.
>
> Just so you're aware, the normal process for patch submissions is to
> post patches to gerrit:
>
> http://ovirt.org/wiki/Working_with_oVirt_Gerrit
>
> It looks like you're working off a rather old version.  The
> autoinstall_failed function was moved to ovirt-functions back in
> September.
>
> The current repo is at:
> Gitweb: http://gerrit.ovirt.org/gitweb?p=ovirt-node.git
> giturl: http://gerrit.ovirt.org/p/ovirt-node.git
>
> The actual commit that moved the function is here:
>
> http://gerrit.ovirt.org/gitweb?p=ovirt-node.git;a=commit;h=a6f000ae812ee1ee4d762ba1f6c807968ac13170
>
>
> Some initial comments on you're patch are below:
>
> On Wed, 2011-12-21 at 15:47 +0800, taget at linux.vnet.ibm.com wrote:
>> From: jimmy<taget at 163.com>
>>
>> This patch is to configure networking before dropping in to emergency shell.
>> By doing this, user can using ssh to connect host server.
>>
>> Signed-off-by: Eli<taget at vnet.linux.ibm.com>
>> ---
>>   ovirt-firstboot |    3 +++
>>   1 files changed, 3 insertions(+), 0 deletions(-)
>>
>> diff --git a/scripts/virt-firstboot b/scripts/ovirt-firstboot
>> index ef0a071..48f31e6 100755
>> --- a/scripts/ovirt-firstboot
>> +++ b/scripts/ovirt-firstboot
>> @@ -36,6 +36,9 @@ trap 'exit $?' 1 2 13 15
>>   autoinstall_failed(){
>>       log "Automatic installation failed. Please review console messages."
>>       log "Press Enter to drop to emergency shell."
>> +    /usr/libexec/ovirt-config-networking AUTO
> Since changed to use python scripts instead of bash.  This should be
> calling the network_auto function in network.py.  You can see how this
> is called in ovirt-auto-install.py
>
>> +    log "Configure root password : "
>> +    /usr/bin/passwd
> This will set the root password, but ssh password authentication is
> disabled by default, so you need to enable that too.
>
>>       read<  /dev/console
>>       bash<  /dev/console
>>   }
>
> The overall concept of being able to ssh in when auto-installation fails
> is good, but it's not solved completely here.  Assuming I understand
> correctly, you're looking to be able to start the installation process
> and then ssh in to debug it if/when it fails.  You're current patch
> doesn't remove the need for console access since you need to be able to
> type the password anyway to set it.
>
> My recommendation would be to:
>
> 1.  get the updated repo
> 2.  work in ovirt-auto-install.py to configure networking in the else
> condition
> 3.  use existing means to set passwords and ssh password authentication
>          you can set root password with rootpw commandline option
>          you can set admin password with adminpw commandline option
>          you can enable ssh password auth with ssh_pwauth option
>          These options are documented in ovirt-early where they're
>          parsed.
>
hi Mike,
I don't think add network configure and enable ssh password in the else 
condition is a good way , cause if so , the code is duplicated and ugly.


So , can we just configure networking and enable ssh password before we 
call storage_auto() ? By doing this , we could access the host even the 
automatic installation failed.
like this :

*in scripts/ovirt-auto-install.py*/
....
import os
import sys
from ovirtnode.ovirtfunctions import *
from ovirtnode.storage import *
from ovirtnode.install import *
from ovirtnode.network import *
from ovirtnode.log import *
from ovirtnode.kdump import *
from ovirtnode.snmp import *
from ovirt_config_setup.collectd import *

# store /etc/shadow if adminpw/rootpw are set, handled already in 
ovirt-early
     file = open("/proc/cmdline")
     args = file.read()
     if "adminpw" in args or "rootpw" in args:
         print "Storing /etc/shadow"
         ovirt_store_config("/etc/passwd")
         ovirt_store_config("/etc/shadow")
     file.close()
     # network configuration
     print "Configuring Network"
     if OVIRT_VARS["OVIRT_BOOTIF"] != "":
         network_auto()

     if OVIRT_VARS.has_key("OVIRT_HOSTNAME"):
         system("hostname %s" % OVIRT_VARS["OVIRT_HOSTNAME"])
     #set ssh_passwd_auth
     if OVIRT_VARS.has_key("OVIRT_SSH_PWAUTH"):
         if self.ssh_passwd_status.value() == 1:
             
augtool("set","/files/etc/ssh/sshd_config/PasswordAuthentication", "yes")
         elif self.ssh_passwd_status.value() == 0:
             
augtool("set","/files/etc/ssh/sshd_config/PasswordAuthentication", "no")/
/print "Performing automatic disk partitioning"/
/if storage_auto():
     # iscsi handled in install.py
     print "Configuring Logging"
     logging_auto()
     print "Configuring Collectd"
     collectd_auto()
     install = Install()
     print "Configuring KDump"
     kdump_auto()
     print "Configuring SNMP"
     snmp_auto()
     ... ...
else
     print "Automatic installation failed. Please review /tmp/ovirt.log"
     sys.exit(1)/

-- 
best regards
eli

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ovirt.org/pipermail/node-devel/attachments/20111222/d9da3b34/attachment.html>


More information about the node-devel mailing list