Changeset 2841


Ignore:
Timestamp:
Nov 11, 2016, 3:01:50 PM (3 years ago)
Author:
joamuran
Message:

new release

Location:
llx-netinstall/trunk/fuentes
Files:
22 added
4 edited

Legend:

Unmodified
Added
Removed
  • llx-netinstall/trunk/fuentes/debian/changelog

    r2659 r2841  
     1llx-netinstall (0.47) xenial; urgency=high
     2
     3  * Added module for admin center
     4
     5 --  <jose@gmail.com>  Fri, 11 Nov 2016 15:00:51 +0100
     6
    17llx-netinstall (0.46) xenial; urgency=medium
    28
  • llx-netinstall/trunk/fuentes/debian/control

    r2663 r2841  
    1111Description: lliurex network installation
    1212 Package to install pc from net image in server
     13
     14Package: admin-center-lliurex-ltsp
     15Depends: ${misc:Depends}, admin-center
     16Architecture: all
     17Description: Netinstall Module for admin-center.
     18 Netinstall allows you to install
     19 LliureX into clients via network.
     20
  • llx-netinstall/trunk/fuentes/install.llx-netinstall/etc/n4d/conf.d/NetinstallManager

    r239 r2841  
    88restore=adm,admins
    99load_exports=adm,admins
     10getNetinstall=*,anonymous
     11setNetinstall=adm,admins
     12setNetinstallUnattended=adm,admins
  • llx-netinstall/trunk/fuentes/install.llx-netinstall/usr/share/n4d/python-plugins/NetinstallManager.py

    r239 r2841  
    1414                #Load template file
    1515                self.tpl_env = Environment(loader=FileSystemLoader('/usr/share/n4d/templates/netinstall'))
     16                self.imagepath="/etc/ltsp/bootopts/"
    1617                pass
    1718        #def init
     
    8586        # ######################### #
    8687       
     88        def getNetinstall(self):
     89                '''
     90                Reads file /etc/ltsp/bootopts/netinstall and returns true or false
     91                '''
     92                # 1. /opt/ltsp/name-chroot
     93                # 2. /opt/ltsp/images/name-chroot.img
     94                # 3. /var/lib/tftpboot/ltsp/name-chroot
     95                # if 1,2 and 3 exist -> show
     96                # if 1 but not exist 2 or/and 3 -> show with error
     97                #
     98               
     99                json_data=open(self.imagepath+"netinstall.json")
     100                data = json.load(json_data)
     101                json_data.close()
     102                if(data["netinstall_boot"].lower()=="true"):
     103                        netinstall=True;
     104                else:
     105                        netinstall=False;
     106               
     107                if(data["netinstall_unattended"].lower()=="true"):
     108                        unattended=True;
     109                else:
     110                        unattended=False;
     111                       
     112                return {"netinstall":netinstall, "unattended":unattended}
     113                       
     114                       
     115        # END def GetNetInstall
     116
     117        def setNetinstall(self, status, unattended):
     118                '''
     119                sets option for netinstall int bootopt.json (status and unattended install)
     120                '''
     121                try:
     122                        mirror_var="/var/lib/n4d/variables-dir/LLIUREXMIRROR"
     123                        if os.path.isfile(mirror_var):
     124                                if (status.lower()=="true" or status.lower()=="false"):
     125                                        path_to_write = os.path.join(self.imagepath,"netinstall.json")
     126                                        f = open(path_to_write,'w')
     127                                        data='{"netinstall_boot":"'+str(status)+'", "netinstall_unattended":"'+str(unattended)+'"}'
     128                                        f.writelines(data)
     129                                        f.close()
     130                                       
     131                                        # Enable or disable NETINSTALL on menu (the last option, but enabled)
     132                                        if (status.lower()=="true"):
     133                                                objects["LlxBootManager"].pushToBootList("netinstall")
     134                                        else:
     135                                                objects["LlxBootManager"].removeFromBootList("netinstall")
     136
     137                                        # Removing user and password from preseed
     138                                        self.setNetinstallUnattended(status, "", "", "")
     139                                       
     140                                        return {"status":"true", "msg":"all ok"}
     141       
     142                                else:
     143                                        return {"status":"false", "msg":"option not valid"}
     144                        else:
     145                                        return {"status":"false", "msg":"mirror is not available"}
     146                               
     147                        #return data;
     148                except Exception as e:
     149                        return {"status":"false", "msg":str(e)};
     150
     151                # END def getListTemplate(self, image)
     152               
     153        def setNetinstallUnattended(self, status, username, password, rootpassword):
     154                '''
     155                Writing in presseed username and password
     156                '''                             
     157                try:
     158                        filedir="/var/www/preseed"
     159                        filepath="/var/www/preseed/unattended.cfg"
     160                        filepartman="/var/www/preseed/partman_sda.cfg"
     161
     162                        if not os.path.exists(filedir):
     163                                os.makedirs(filedir)
     164                       
     165                        preseed=open(filepath,'w')
     166                        preseed.write("# LMD Created user account\n")
     167                        salt="sw9.tfRI"                 
     168                        userpassencrypted=crypt.crypt(str(password),"$1$"+salt+"$")
     169                        rootpassencrypted=crypt.crypt(str(rootpassword),"$1$"+salt+"$")
     170                       
     171                        if(status==True):
     172                                # Saving file
     173                               
     174                                userfullline="d-i passwd/user-fullname string "+str(username)+"\n";
     175                                userline="d-i passwd/username string "+str(username)+"\n";
     176                                passline="d-i passwd/user-password-crypted password "+str(userpassencrypted)+"\n"
     177                               
     178                                if (len(rootpassword) > 0):
     179                                        rootpassline = "d-i passwd/root-password-crypted password "+str(rootpassencrypted) + "\n"
     180                                else:
     181                                        rootpassline = "# d-i passwd/root-password-crypted password "+str(rootpassencrypted) + "\n"
     182                                       
     183                                # Partition preseed
     184                                try:
     185                                        partman = open(filepartman,'r')
     186                                        preseed.writelines(partman.readlines())
     187                                        preseed.write("\n")
     188                                        partman.close()
     189                                except Exception as e:
     190                                        return str(e)
     191                               
     192                        else:
     193                                userfullline="#d-i passwd/user-fullname string \n"
     194                                userline="#d-i passwd/username string \n"
     195                                passline="# d-i passwd/user-password-crypted password \n"
     196                                rootpassline = "# d-i passwd/root-password-crypted password \n"
     197
     198                        preseed.write("# Normal user name\n")
     199                        preseed.write(userfullline)
     200                        preseed.write(userline)
     201                        preseed.write("# Normal user's password, either in clear text\n")
     202                        preseed.write("#d-i passwd/user-password password insecure\n")
     203                        preseed.write("# Normal user's password encrypted using an MD5 hash.\n")
     204                        preseed.write(passline)
     205                        preseed.write(rootpassline)
     206                       
     207                        # Allow weak passwords
     208                        preseed.write("d-i user-setup/allow-password-weak boolean true\n")
     209                       
     210                        preseed.close()
     211                       
     212                        return {"status":"true", "msg":"all ok"}
     213                       
     214                except Exception as e:
     215                        return {"status":"false", "msg":str(e)}
     216
     217                # END def getListTemplate(self, image)
     218               
     219               
     220       
    87221#class N4dProxy
Note: See TracChangeset for help on using the changeset viewer.