Abstract:
A system and method for automatically installing an operating system from a deployment server to a target server utilizing a directory service. The directory service utilizes target objects and policy objects to authenticate the identity of a particular target and then to direct the target system to a deployment server that maintains a validated image of a desired operating system. The target system then communicates with the deployment server in order to install the appropriate operating system.

Description:
TECHNICAL FIELD  
       [0001]     The present invention is related to the field of computer systems and more specifically to an automated system and method for installing operating systems.  
       BACKGROUND OF THE INVENTION  
       [0002]     As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.  
         [0003]     Operating Systems are used by computing systems and other information handling system components to manage the applications run by the computing systems. The installation of operating systems onto an information handling system component often requires significant time and resources. Additionally, Information Technology organization and system administrators must ensure that operating systems are properly licensed, contain only approved and validated code and are loaded onto the appropriate computing systems. The determination and management of this information requires significant time, effort and resources, typically requiring system administers to manually gather and manage this information. Failure to ensure that operating systems are properly licensed and installed will likely lead to significant problems and expense.  
       SUMMARY OF THE INVENTION  
       [0004]     Therefore a need has arisen for an improved system and method for installing operating systems within computers.  
         [0005]     A further need has arisen for authenticating target systems and installing validated operating systems onto target systems.  
         [0006]     The present disclosure describes a system and method utilizing a directory service for automating the installation of operating systems onto target computers. The directory service utilizes target objects and policy objects to authenticate the identity of a particular target and then to direct the target system to a deployment server that maintains a validated image of a desired operating system. The target system then communicates with the deployment server in order to install the selected operating system.  
         [0007]     In one aspect an information handling system is disclosed including one or more target systems in communication with a directory service where the target system includes a LDAP client stack. The directory service has one or more target objects and one or more operating system policy objects. The directory service is able to authenticate the target system and direct the target system to a deployment server for operating system installation. The deployment server is in communication with the target system in the directory service. The deployment server includes at least one operating system image for installation onto the target system.  
         [0008]     In another aspect, a directory system for operating installation is disclosed. The directory system includes multiple target objects and multiple policy objects. Each target object is associated with a target system and includes a user name and a password for authenticating the target system. Each of the policy objects is associated with one or more of the target objects. And each policy object indicates the location for providing a selected operating system image for installation onto a target system.  
         [0009]     In yet another aspect, a method for installing an operating system is described including first booting a target system to a LDAP client stack and then communicating a target system authentication string to a directory service. Next, the target system is authenticated using a target object and then accessing a policy object that is associated with a target object after completion of the authentication step. Next, the method includes obtaining instructions from the policy object that direct the target system to access a deployment server for obtaining a validated operating system.  
         [0010]     The present disclosure provides a number of important technical advantages. One important technical advantage is the use of target objects and policy objects within a directory service for use in installing an operating system. The use of the directory service allows for centralized management and updating of policy information and target system information. This also provides a improved method for ensuring that all target systems are properly identified and that only validated operating system code is installed onto target systems. Additional advantages will be apparent to those of skill in the art and from the figures, description and claims provided herein.  
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0011]     A more complete and thorough understanding of the present embodiments and advantages thereof may be acquired by referring to the following description taken in conjunction with the accompanying drawings, in which like reference numbers indicate like features, and wherein:  
         [0012]      FIG. 1  shows an information handling system for the automated installation of an operating system according to teachings of the present disclosure;  
         [0013]      FIG. 2  shows an expanded system for automated installation of operating systems onto a target server; and  
         [0014]      FIG. 3  shows an automated method for installing an operating system onto a target server.  
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0015]     Preferred embodiments of the invention and its advantages are best understood by reference to  FIGS. 1-3  wherein like numbers refer to like and corresponding parts and like element names to like and corresponding elements.  
         [0016]     For purposes of this disclosure, an information handling system may include any instrumentality or aggregate of instrumentalities operable to compute, classify, process, transmit, receive, retrieve, originate, switch, store, display, manifest, detect, record, reproduce, handle, or utilize any form of information, intelligence, or data for business, scientific, control, or other purposes. For example, an information handling system may be a personal computer, a network storage device, or any other suitable device and may vary in size, shape, performance, functionality, and price. The information handling system may include random access memory (RAM), one or more processing resources such as a central processing unit (CPU) or hardware or software control logic, ROM, and/or other types of nonvolatile memory. Additional components of the information handling system may include one or more disk drives, one or more network ports for communicating with external devices as well as various input and output (I/O) devices, such as a keyboard, a mouse, and a video display. The information handling system may also include one or more buses operable to transmit communications between the various hardware components.  
         [0017]     Now referring to  FIG. 1 , an information handling system indicated generally at  10  is shown. Information Handling System  10  includes directory service  12  in communication with target system  14  and deployment server  16 . Directory service  12  is also in communication with administrative server  18 . Directory service  12  generally includes target objects  20  and policy objects  22 . Directory service  12  also includes memory resource  24 . In a preferred embodiment memory resource  24  may store authentication policies  20  and  22 .  
         [0018]     In the present embodiment, directory service  12  is in communication with target system  14  as well as additional target systems  40  and  42 . Target system  24  shall be discussed in greater detail herein, however, it should be understood that additional target systems  40  and  42  may include similar elements, functionality and controlling logic. Target system  14  includes lightweight directory access protocol (LDAP) client stack  30 , EFI  32  and license key  34 . Deployment server  16  includes validated image repository  50 .  
         [0019]     In operation, administrative server  18  allows an administrator to create and/or modify target server objects  20  and policy objects  22  within directory service  12 . Administrative server  18  also preferably allows an administrator to associate each individual policy object  22  with one or more target objects  20 . In a preferred embodiment a so-called snap-in utility  19  may be used to create a target object. Snap-in utility  19  may comprise a module of code that may be incorporated with a larger framework in order to provide the functionality described herein. Snap-in module  19  may include executable instructions for managing target objects  20  and policy objects  22  within directory service  12 . In one example embodiment, snap-in module  19  may be incorporated within a Microsoft management Console (MMC) In alternate embodiments any suitable utility may be provided by administrative server  18  to construct and modify target objects and/or policy objects.  
         [0020]     Target objects  20 , which may also be referred to herein as a target server objects, are objects that are each associated with a particular target system (such as target system  12 ). Each target object includes a username and a password (as described below with respect to  FIG. 2 ). In the present embodiment the username is a unique identifier  38  associated with target system  14 . In a preferred embodiment, unique identifier  38  comprises a service tag number or similar identifier provided by the manufacturer of target system  14 .  
         [0021]     In a preferred embodiment, the password for a target object  20  associated with target system  14  is license key  34  that has been assigned to target system  14 . This ensures that the target system  14  can be authenticated and also ensures that target system  14  has properly licensed to load a particular operating system thereon. License key  34  may also be referred to as a notice of authenticity (NOA). In an alternative embodiment, target system  14  and target object  20  may utilize any suitable password scheme.  
         [0022]     Deployment server  16  includes utilities for communicating with target system  14  and directory service  12 . Deployment server  16  includes one or more operating systems stored within image repository  50 . In the present preferred embodiment, all of the operating system images stored within repository  50  have been validated.  
         [0023]     In operation, target server  12  first boots to LDAP client stack  30  of EFI  32 . Target server  14  then authenticates to directory service  12  using service tag  38  as its username and license key  34  for a password (arrow  70 ). During this step directory service  12  searches for a target object having the same username and verifies that the password is correct. Next, directory service  12  then identifies a policy object associated with the selected target object  20 . The policy object preferably includes instructions for operating system installation instructions which are sent to target system  12  (arrow  72 ). These instructions may provide the location of deployment server  16  and may also include an authentication string to be provided to deployment server  16 .  
         [0024]     After receiving the installation instructions target server  14  may then submit a request to deployment server  16  to carry out the automated installation of a selected operating system (arrow  73 ). In a preferred embodiment, target system requests a Preboot execution (PXE) boot from deployment server  16  and may preferably send the authentication string to deployment server  16 .  
         [0025]     Deployment server  16  then authenticates to the directory service  12  to match the authorization string of the target server  14  with the policy that is associated with the target server object and determines the appropriate operating system to deploy. In an alternate embodiment, deployment server  16  may commence operating system installation without validating the authorization string—for instance, deployment server  16  may store authorization codes. An image of the appropriate operating system image is then provided to target system  14  (arrow  76 ) and target server  14  may then initiate operating system deployment. Target server  14  may then complete operating system installation and activation using its license key  34 .  
         [0026]     Now referring to  FIG. 2  information handling system  100  is shown. Information handling system  100  generally includes target server  160 , deployment server  170  and administrative server  150  all in communication with directory service  110 . Directory service  110  includes servers  112 A,  112 B,  112 C and  112 D. Each server  112  includes a corresponding memory resource  114 . Each server  112  may preferably be located in a separate location and provide local access to the directory service. In this manner, directory service  110  may locate servers  112  at different locations within a single facility or in different states or continents. Servers  112  preferably communicate using methods and protocols well known to those of skill in the art to communicate informational updates such that all of the servers  112 A-D each contains the same pertinent information and that information that is introduced to one servers is updated within the other servers within directory service  110 .  
         [0027]     In the present embodiment, directory service  110  includes target objects  120 ,  122  and  124  and policy objects  126  and  128 . Target object  1 - 120  includes a username (service tag  132 ) and a password (COA  130 ). Target object  2 - 122  includes a username (service tag  136 ) and a password (COA  134 ). Target object  3 - 124  includes a username (service tag  140 ) and a password (COA  138 ). Policy object A- 126  includes location information  142  and U/P field  144 . Similarly, policy object B- 128  includes location information  146  and U/P field  148 . U/P field  148  may include username and password information for authenticating to deployment server  170 . In alternate embodiments, more or fewer target objects and/or policy objects may be provided within directory service  110 .  
         [0028]     In the present embodiment policy object A- 126  is associated with target object  1 - 120  and target object  2 - 122 . Policy object B- 128  is associated with target object  3 - 124 . In this manner policy object A- 126  may be used to direct the operating system installation for a target system associated with either target object  1 - 120  or target object  2 - 122 . Additionally, policy object B- 128  will be used to direct operating installation for a target system identified by target object  3 . In alternate embodiments policy objects  126  and  128  may be associated with more or fewer target objects.  
         [0029]     Administrative server  150  may store a plurality of data sets of COAs  152  and service tags  154 . This information may preferably be used to populate, modify and evaluate target objects and policy objects managed by administration server  150 . Administration server  156  may receive information from manufacturer  156 , thereby allowing administration server  150  to obtain information related to target systems, such as unique identifiers and COAs.  
         [0030]     Target server  160  is in operative communication with server C- 112 . Target server  160  includes a persistent memory  162  storing COA  164  and unique identifier  166 . In the present embodiment, a so-called service tag is provided unique identifier, however, in alternate embodiments any suitable identifier may be used. Target server  160  preferably includes LDAP client stack  168  for allowing target server  160  to perform a limited boot to allow it to communicate with directory service  110  and deployment server  170  in order to obtain an operating system.  
         [0031]     Deployment server  170  is in communication with target server  160  and with server  112 C. Deployment server includes memory resource  172  which is operable to store one or more images of operating system for installation onto target server  160  or other target servers.  
         [0032]     Now referring to  FIG. 3 , a method indicated generally at  300  is shown. Method begins  310  by first creating one or more policy objects  312  and one or more target objects  314 . The policy objects and target objects are then loaded on a directory service that is made available to target servers. A target server may then boot to an LDAP client stack  316  stored thereon and send an authentication request to directory service  318 . The target object associated with the target server is then retrieved in order to authenticate target server  322  using a user name and a password. In a preferred embodiments the user name may comprise a unique identifier for identifying the target system and the password may be a license assigned to the target system. Following authentication, the policy object associated with the pertinent target object is accessed  324  in order to obtain deployment server instructions from policy object  326 . These instruction preferably identify the operating system that is to be deployed onto the target server. This step may also include providing the target server with an authentication string used to allow the deployment server to authenticate the operating system deployment request.  
         [0033]     Target system  14  then preferably accesses deployment server  328  to request the deployment of an operating system. As described above, accessing component server may also include providing deployment server with an authentication string provided by the policy object. In some embodiments the deployment server may validate the authentication string with the directory service. In other embodiments, deployment server may validate the authentication string without having to contact the directory service. Next the appropriate operating system is deployed onto the target system  330 . This method ends following installation of the correct operating system onto target system  14 .  
         [0034]     Although the disclosed embodiments have been described in detail, it should be understood that various changes, substitutions and alterations can be made to the embodiments without departing from their spirit and scope.