1. Field of the Invention
The present invention relates in general to the field of information handling system manufacture, and more particularly to a system and method for management of remote software deployment to information handling systems.
2. Description of the Related Art
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.
Manufacturing information handling systems to fulfill the diverse tasks demanded by consumers often presents a complex task of building systems with selected components and applications. When information handling systems are built to order, each system that passes through the manufacturing process has uniquely ordered hardware and software components so that a large number of potential configurations may result. Generally, in order to make the process of deploying and configuring software less time consuming, information handling system manufacturers use a variety of commercial applications that copy images of desired software to manufactured information handling systems. As systems are built, the systems are interfaced with software deployment servers that copy operating systems and applications to the hard disc drives of the manufactured systems. For instance, various commercially available applications provide images to manufactured information handling systems and aid in the management of deployment of software to target information handling systems. After manufacture and distribution of information handling systems, users often deploy similarly configured information handling systems in order to reduce the complexity of integrating systems to a network and servicing the information handling systems. In such networks, information technology administrators sometimes use software deployment applications to deploy new software to networked information handling systems and to re-deploy existing configurations to maintain information handling systems on the network.
One difficulty that arises with information handling system manufacture and software deployment is the remote management of the deployment process to monitor manufacturing status and quality control. Effective management of software deployment and configuration generally requires knowledge of the state of target information handling systems provide to a location remote from the target systems and manufacturing floor. Accurate information as to the state of a target information handling system helps software deployment personnel ensure that deployment tasks are accomplished accurately and that valid deployment tasks are performed on desired target information handling systems. In particular, accurate state information is called for where software deployment involves more complex actions than just copying an image to a hard disc drive. For instance, software deployment managers sometimes adjust the deployment process to perform RAID configuration, capture of an image of a manufactured target information handling system, deployment of a captured image to other target information handling systems and configuration of deployed software. However, conventional software deployment tools typically determine target information handling system state information with a task oriented or dynamic provisioning approach. The task oriented approach determines target status by monitoring the execution of assigned tasks at a target. Dynamic provisioning determines target status through analysis of a server system separated into hardware server assets and software assets.
Therefore a need has arisen for a system and method which manages software deployment and configuration by remotely inferring a target information handling system state from status information discovered from the target information handling systems.
In accordance with the present invention, a method and system are provided which substantially reduce the disadvantages and problems associated with previous methods and systems for managing software deployment and configuration to manufactured information handling systems. A remote deployment manager infers a target information handling system state from status information remotely discovered from the target system and applies inferred target system states to manage valid actions at the target systems by remote deployment systems.
More specifically, a discovery module of a remote deployment manager remotely discovers status information from target information handling systems through remote deployment systems that deploy software to the target systems. A rules-based inferred state engine applies state calculation rules and a target state table to infer a state for the target information handling system from the discovered status information. The remote deployment manager validates actions received for target information handling systems with an action validator that applies inferred states and requested actions to rules for action and prevents communication of invalid actions to target information handling systems. In one embodiment, a capture module captures images from selected target information handling systems for subsequent deployment to manufactured information handling systems. A preassignment module preassigns a captured configuration to selected target information handling systems to have deployment of the captured image to the selected targets when subsequently discovered by the discovery module. In another embodiment, RAID configuration is supported by an inferred state determined from status information of a local operating system loaded on a target without a request for a boot to the local operating system.
The present invention provides a number of important technical advantages. One example of an important technical advantage is that remote deployment and configuration of software is managed with inferred target states to allow a central management with actual status of a target instead of a comparison of pending tasks for a target. Inferred states support operations that span deployment operations including RAID configuration, image capture, deployment and configuration with processes including operating system deployment, system and network configuration and post operating system scripting, meaning scripting done after the basic operating system is deployed to the target system and configured. For instance, the remote deployment manager allows configuration of a system with a local operating system running so that a manager can install agents on the target and configure the system to an “up” state for production use. Further, deployment is supported to systems that do not have a local operating system image installed (“bare metal” systems), systems with operating systems installed and systems designated for RAID before image deployment.
The present invention may be better understood, and its numerous objects, features and advantages made apparent to those skilled in the art by referencing the accompanying drawings. The use of the same reference number throughout the several figures designates a like or similar element.
Deployment of software to information handling systems is managed with inferred states of deployment targets to allow remote performance of deployment tasks consistent with an inferred state. 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.
Referring now to
One example of a software deployment function supported from inferred states is the preassignment of an image and configuration to a target system. Preassignment module 26 preassigns an image and a configuration to a target 12 and pushes the image and configuration to the target at reboot. In one embodiment, targets 12 are preassigned images and configurations before discovery of a target by discovery module 16, such as through association with a unique identifier, with preassignment module 26 creating a virtual system associated with an image and configuration that is automatically pushed to the target on discovery of the target. A capture module 28 allows capture of an image of a selected target 12 for use with subsequently manufactured information handling systems identified by preassignment module 26. Deployment module 30 simultaneously deploys a captured image to multiple targets 12 and backup module 32 saves a copy of a captured image for subsequent use.
The improved production flexibility provided by the inferred states of remote deployment manager 10 includes allowing configuration of RAID for an information handling system before image deployment, allowing deployment of an image to a “bare metal” system or a system that has an operating system installed, and configuring a target that has a running local operating system by installing an agent so that the image of the target may be used for subsequent production. In order to prevent a user from performing invalid actions that could disrupt manufacturing operations, an action validator 34 monitors inputs at user interface 24 and target inferred states to detect violations of rules in rules for action table 36. If an action requested at user interface 24 violates a rule for a target 12 based on the inferred state of the target, the action is refused and the user interface 24 displays the rule violation.
Referring now to
If a local operating system boot is requested at step 46, the process continues to step 50 to determine if a configuration agent is running on the target. If no configuration agent is running, then at step 52 the target is determined to be in a stable unmanaged system state, such as set for a manual configuration. If a configuration agent is running, the process continues to step 54 to determine if a configuration is required for the target. If no configuration is required, the process continues to step 62 in which the target is in an “up” state in which the target is running and managed. If configuration is required at step 54, the process continues to step 56 to determine whether a configuration is assigned. If no configuration is assigned at step 56, the process continues to step 58 to wait for a configuration assignment is a stable configuration wait state. If a configuration is assigned at step 56, the process continues to step 60 for application of the configuration to the target and completes at step 62 in the “up” state.
Although the present invention has been described in detail, it should be understood that various changes, substitutions and alterations can be made hereto without departing from the spirit and scope of the invention as defined by the appended claims.