US20030069951A1 - Zero-click deployment of data processing systems - Google Patents

Zero-click deployment of data processing systems Download PDF

Info

Publication number
US20030069951A1
US20030069951A1 US09/953,396 US95339601A US2003069951A1 US 20030069951 A1 US20030069951 A1 US 20030069951A1 US 95339601 A US95339601 A US 95339601A US 2003069951 A1 US2003069951 A1 US 2003069951A1
Authority
US
United States
Prior art keywords
data processing
deployment
processing systems
information
configuration
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US09/953,396
Other versions
US6944653B2 (en
Inventor
Ryan Fong
David Hu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US09/944,313 external-priority patent/US20030055919A1/en
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Priority to US09/953,396 priority Critical patent/US6944653B2/en
Assigned to HEWLETT-PACKARD COMPANY reassignment HEWLETT-PACKARD COMPANY ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: FONG, RYAN PATRICK, HU, DAVID J.
Publication of US20030069951A1 publication Critical patent/US20030069951A1/en
Assigned to HEWLETT-PACKARD DEVELOPMENT COMPANY L.P. reassignment HEWLETT-PACKARD DEVELOPMENT COMPANY L.P. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: HEWLETT-PACKARD COMPANY
Application granted granted Critical
Publication of US6944653B2 publication Critical patent/US6944653B2/en
Adjusted expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/303Terminal profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Definitions

  • This invention relates generally to providing a method to facilitate the set-up of a group of data processing systems, and more specifically to providing a method to quickly deploy a group of computers with a specific set of software and hardware parameters in a chaotic environment, remote environment, and any other environment where human operation and intervention is impossible, impractical, or undesirable.
  • Deployment of data processing systems includes selecting several software and hardware parameters. These parameters are listed in detail below, but include personalization information and options information, as well as other types of parameters (e.g., configuration parameters).
  • one prior art deployment software product is the PowerQuest DeployCenter (available from PowerQuest, with corporate headquarters in Orem, Utah), which automates the capture and restoration of data (e.g., personal information) on end-user's systems, including network and operating system settings (e.g., this allows the user to elect the operating system settings to be transferred to other computers and affects the way that the operating system functions).
  • PowerQuest DeployCenter available from PowerQuest, with corporate headquarters in Orem, Utah
  • the objects transferable during deployment include (but are not limited to): Desktop settings (e.g., for the Windows operating system this could include Active Desktop, Colors, Desktop Icons, Display, Icon Font, Pattern, Screen Saver, Wallpaper, Window Metrics and Start Menu); Personality settings (e.g., for the Windows operating system this could include Accessibility, Internet Browser Settings, Keyboard, Mouse, Printers, Send To Menu, Shell, Sound, Taskbar and User Profiles); Connectivity Settings (e.g., for the Windows operating system this could include Computer Description, Computer Name, DNS configuration, mapped drives, RAS networking connections, shared folders & drives, TCP/IP configuration, WINS configuration, Workgroup and Domain); Files (e.g., files that can be transferred at the same time as the settings).
  • Desktop settings e.g., for the Windows operating system this could include Active Desktop, Colors, Desktop Icons, Display, Icon Font, Pattern, Screen Saver, Wallpaper, Window Metrics and Start Menu
  • Personality settings e.g., for the Windows operating system this
  • the PowerQuest DeployCenter does not capture (i.e., take a snapshot of) the hardware configuration of a reference server, such as the hardware inventory, firmware settings, CMOS settings, boot order (e.g., booting from CD, disk drive, floppy diskette, or network), and the enablement/disablement of embedded hardware.
  • the DeployCenter can only save information that is related to, or on, the actual disk drive being captured. Thus, it does not capture information about the hardware, the firmware settings, CMOS, boot order, or the enablement/disablement of any embedded hardware. It can manipulate the file system format, disk drive partitions, free space, and files.
  • RAD Rembo Auto Deploy
  • This is a system image creation, management, and deployment tool intended to allow an administrator to take a snapshot of an operating system configuration for a computer, including: base disk image, application packages, configuration settings, and specific hardware configurations (such as firmware upgrades).
  • RAD is driven from a central database containing unique parameters for each computer (including the rules that decide which images and software are applied to each computer). Parameters are set prior to deployment.
  • RAD assembles the target computer's operating system from various building blocks.
  • the first is the base disk image.
  • a base disk image is a copy of the hard disk contents (including the operating system) from a reference computer ⁇ e.g., in a Windows operating system this is prepared with the Microsoft System Preparation tool (SysPrep), available from Microsoft Corporation, with corporate headquarters in Redmond, Wash. ⁇ .
  • SysPrep Microsoft System Preparation tool
  • Software images are similar to base disk images, but are related to a specific piece of software. Multiple software images can be merged with the base disk image, and the combined base disk image and software images are written to a hard disk.
  • a SysPrep answer file (or a Linux equivalent file) is created and copied to the hard disk to customize the operating system.
  • RAD requires a user to enter specific computer configuration parameters and choose which software package to install.
  • RAD uses a reference server to take a snapshot of some of the hardware inventory ⁇ including PCI devices, and desktop management interface (DMI) information ⁇ , disk drive settings, and CMOS settings.
  • DMI desktop management interface
  • RAD does not have features to control embedded hardware settings. RAD only images the first system disk drive or RAID volume as reported by the BIOS; alternate disk drives must be installed using operating system-based tools, or by using command lines. RAD only supports incremental images on the primary OS partition; the operator must use software updates packages with an unattended setup command line to install software on a secondary partition.
  • a major problem inhibiting deployment of a group of data processing systems is the complexity of setting up the software and parameters of a larger group of data processing systems. It would be desirable to provide a comprehensive method and system to intelligently deploy a group of data processing systems with a specific set of software, hardware firmware versions, and parameters without human intervention.
  • the present invention provides a comprehensive method and system to facilitate the deployment of a group of data processing systems with a specific set of software, hardware firmware versions, and parameters without human intervention.
  • the invention can be implemented in numerous ways, such as a method, a computer network, and a computer program on electronically-readable media. Three aspects of the invention are described below.
  • a first aspect of the invention is directed to a method to deploy one or more data processing systems.
  • the method includes capturing deployment information from a reference data processing system to deploy on the one or more data processing systems, wherein the deployment information is stored in a memory; selecting the one or more data processing systems; selecting a package of the deployment information to be deployed on the one or more data processing systems; and intelligently deploying the one or more data processing systems without human intervention, wherein the intelligently deploying includes referencing the package of deployment information that is stored in the memory.
  • a second aspect of the invention is directed to a computer network to facilitate the intelligent deployment of one or more data processing systems.
  • the computer network includes one or more data processing systems to be intelligently deployed; one or more reference data processing systems containing deployment information; a means for transmission capable of conveying the deployment information to the one or more data processing systems without human intervention; and a dedicated data processing system containing deployment information copied from the one or more reference data processing systems, wherein the dedicated data processing system conveys to the one or more data processing systems over the means for transmission a package of deployment information selected from the deployment information.
  • a third aspect of the invention is directed to a computer program embodied on electronically-readable media, containing instructions to facilitate the deployment of one or more data processing systems.
  • the computer program includes a program code segment to capture deployment information from a reference data processing system to deploy on the one or more data processing systems, wherein the deployment information is stored in a memory; a program code segment to select one or more data processing systems to be included in the one or more data processing systems; a program code segment to select a package of the deployment information to be deployed on the one or more data processing systems; and a program code segment to intelligently deploy the one or more data processing systems without human intervention, including program code to reference the package of deployment information that is stored in the memory.
  • FIG. 1 illustrates a typical configuration of one or more data processing systems, in accordance with one application of a preferred embodiment of the present invention.
  • FIG. 2 illustrates an architectural block diagram for one preferred embodiment of the invention.
  • FIG. 3 illustrates an alternative embodiment of the invention, where the intelligent deployment logic (IDL) is not a stand-alone module, and the IDL is part of the information center manager (ICM).
  • IDL intelligent deployment logic
  • ICM information center manager
  • FIG. 4 illustrates some deployment options, according to a preferred embodiment of the present invention.
  • FIG. 5A illustrates a process flow chart for one embodiment of the invention that is capable of both one-click deployment and zero-click deployment.
  • FIG. 5B continues the process flow chart starting at step AA for one-click deployment and starting at BB for zero-click deployment, as illustrated on FIG. 5A for one embodiment of the invention.
  • FIG. 6 illustrates a more detailed flow chart of a method for deploying data processing system(s) in accordance with one embodiment of the invention.
  • FIG. 7 illustrates a flow chart of image capture, in accordance with one preferred embodiment of the invention.
  • FIG. 8 illustrates a flow chart involving asset management of one or more data processing systems, in accordance with one preferred embodiment of the invention.
  • FIG. 9 illustrates the relationship between attribute match criteria and various types of deployment, in accordance with various embodiments of the invention.
  • the invention provides a method and a system to facilitate the deployment of a group of data processing systems.
  • One most preferred embodiment of the invention is implemented on a computer network that is connected or coupled to what is commonly referred to as the Internet or the World Wide Web.
  • Both zero-click deployment and one-click deployment most preferably include intelligent deployment.
  • Intelligent zero-click deployment includes deployment initiation, where the zero-click deployment software compares the program-selected hardware and/or software attributes to the target data processing systems. Intelligent deployment also includes testing for a successful match of the target data processing system attributes against the match criteria attributes; a match indicates a successful deployment candidate (in this case deployment is allowed to continue). However, if the match of attributes is unsuccessful, the zero-click deployment software can decide whether the deployment proceeds.
  • Intelligent zero-click deployment can also stop deployment when a mismatch of attributes occurs due to target data processing system incompatibility, or suspend the deployment until an adjustment is made in the target data processing system(s) or in the deployment itself, or continue the deployment.
  • the attributes originate from a pre-defined list, which can be included or excluded from the attribute comparison prior to deployment initiation.
  • FIG. 1 illustrates a typical configuration of one or more data processing systems, in accordance with one application of a preferred embodiment of the present invention.
  • the desktop personal computer 102 , workstation 104 , laptop computer 106 server 108 , disk array 110 , and a printer 112 are connected through a network (e.g., a data processing network) to a dedicated server 114 .
  • the dedicated server 114 would typically be running a recent version of Windows or Linux (e.g., RedHat Linux) on a Netserver/HP Unix server system (or this could be any system capable of running the deployment software of the present invention and the deployment software plug-in components of a vendor), and be connected to a network.
  • Windows or Linux e.g., RedHat Linux
  • Netserver/HP Unix server system or this could be any system capable of running the deployment software of the present invention and the deployment software plug-in components of a vendor
  • a Web browser on a workstation 118 can be used to remotely access the dedicated server 114 .
  • the dedicated server 114 would typically include a Pre-boot Execution Environment (PXE) server (to load an operating system from a remote boot server prior to beginning actual deployment), a database 120 , and a file library 122 .
  • the file library 122 contains image and utility libraries normally installed as part of the software of the dedicated server 114 .
  • the database 120 and file library 122 may or may not be located on the same data processing system as the dedicated server 114 .
  • the dynamic host configuration protocol (DHCP) server 116 is on the same data processing system as the dedicated server 114 , but in another embodiment the DHCP server 116 is on a different data processing system.
  • DHCP dynamic host configuration protocol
  • a server When a server provides this data processing system network service on the network, it will dynamically configure a data processing system's network settings, including the IP address, subnet, DNS server, lease expiration date, and other settings.
  • a PXE Server is implemented as part of the dedicated server 114 . If there is a router between the PXE Server and a target data processing system, the router must be setup to route the appropriate network packets.
  • a BOOTP packet is a specific type of packet that the router may or may not route depending on its configuration. The router preferably supports all packets that are needed for transmission over the network to target data processing systems.
  • the reference data processing system and target data processing systems preferably include PXE supporting network cards.
  • the network interface cards NICs
  • the default boot order may be selectively modified to specify the PXE-enabled NIC at the top of the boot order.
  • the data processing systems are connected to the same network as the dedicated server.
  • the data processing systems support Wake-on-LAN (WOL), or another wake-up mechanism (listed in Table 3 below), and include network cards with WOL enabled.
  • WOL Wake-on-LAN
  • the dedicated server 114 preferably has a management console running on a workstation in a supported Web browser.
  • the printer 112 is connected to the dedicated server or network for printing asset management reports.
  • Components that may be required in addition to the dedicated server software include: SysPrep from Microsoft and/or equivalent Linux utility, BIOS and firmware version readers, update utilities, ROM files, configuration binary/text files, configuration utilities from vendors (e.g., utilities for BIOS, SCSI, and RAID), and a supported database (e.g., an ORACLE database).
  • a PXE-boot process is preferred, but not required on data processing systems with an Intel architecture.
  • a PXE-boot process is not necessary for data processing systems with a Hewlett-Packard proprietary architecture (e.g., the Prism architecture).
  • a data processing system may need to be powered-on or rebooted.
  • a preferred way to power-on a data processing system is through WOL, when the data processing system has WOL capabilities and WOL is enabled. However, since activating a data processing system through WOL requires user input at a console, a preferred method of starting a data processing system prior to a zero-click deployment would use the power switch located on the data processing system.
  • PXE would then occur during the PXE-boot process, which would happen if the data processing system automatically reboots itself, or if an installation technician presses the power button on the data processing system itself at the installation site. Neither process would require any user input through a remote web console.
  • FIG. 2 illustrates an architectural block diagram for one preferred embodiment of the invention.
  • the presentation layer of the graphical user interface (GUI) 202 communicates with the Information Center Manager (ICM) 210 to present one-click deployment information to users.
  • the GUI 202 communicates with a scheduler 204 .
  • the scheduler 204 communicates with the Intelligent Deployment Logic (IDL) 206 to have rules applied to a set of target data processing systems.
  • the IDL 206 communicates with the ICM 210 for specific information regarding rules and target data processing systems.
  • the scheduler 204 communicates with the task manager 208 to execute specific tasks, such as deployment when new data processing systems are found.
  • ICM Information Center Manager
  • the task manager 208 will be informed by a third party software plug-in that a data processing system has been found. If there is no task associated with it, the task manager 208 informs the scheduler 204 of a new data processing system. The scheduler 204 will communicate with the IDL 206 to have rules applied to a set of target data processing systems.
  • FIG. 3 illustrates an alternative embodiment of the invention, where the IDL 206 is not a stand-alone module, and the IDL 206 is part of the ICM 210 .
  • the presentation layer of the GUI 202 communicates with the ICM 210 to present one-click deployment information to users.
  • the GUI 202 communicates with a scheduler 204 .
  • the scheduler 204 communicates with the ICM 210 (which contains an IDL 206 ) to have rules applied to a set of target data processing systems.
  • the IDL 206 inside the ICM 210 communicates with the ICM 210 for specific information regarding rules and target data processing systems.
  • the scheduler 204 communicates with the task manager 208 to execute specific tasks, such as deployment when new data processing systems are found.
  • the task manager 208 will be informed by a third party software plug-in that a data processing system has been found. If there is no task associated with it, the task manager 208 informs the scheduler 204 of a new data processing system. The scheduler 204 will communicate with the ICM 210 (the IDL 206 ) to have rules applied to a set of target data processing systems.
  • the discovery program determines the system hardware and firmware configuration information for one or more data processing systems, and saves this information for future reference.
  • This information is preferably saved on a non-volatile memory, such as a magnetic disk drive, a magneto-optic disk drive, a floppy diskette, a compact disc, or a flash memory.
  • the information can be saved on a volatile memory, such as a random access memory (RAM).
  • RAM random access memory
  • Run from Preferred embodiments can run from a bootable DOS DOS or OS environment, or from a supported network operating system (NOS).
  • Remote and Preferred embodiments can be initiated remotely across a unattended network connection and can operate without any user intervention.
  • Validation Preferred embodiments support validation against an existing system's hardware/firmware configuration to determine whether a system's hardware changed since the previous discovery process.
  • Local Storage Preferred embodiments of local storage discovery Information obtain some or all of the following information: Number of physical disk drives. Firmware version of each physical disk. Capacity of each physical disk drive.
  • RAID Storage Preferred embodiments of the invention use discovery to Information obtain some or all of the following information about RAID storage: Drive numbers of logical RAID drives. RAID configuration. Number of Disk Array Controllers (DAC). Vendor for each DAC. Vendor specific model for each DAC.
  • DAC Disk Array Controller
  • DAC BIOS and firmware version information System In preferred embodiments, some or all of the following Hardware system hardware information is obtained through Information discovery: System model identification. System Basic Input Output Software (BIOS) version. System F2 setup configuration (CMOS & related chips, random access memory (RAM) information (e.g., capacity, type, speed, number of chips, and error correcting capability (ECC)), central processing unit (CPU) information, (e.g., vendor, model, & speed)). Video card information (e.g., vendor & BIOS/firmware version). Maximum vertical refresh rate of an attached monitor. Network Interface Card (NIC) detection. Small Computer Serial Interface (SCSI) controller information, such as vendor, model and firmware versions.
  • BIOS System Basic Input Output Software
  • RAM random access memory
  • CPU central processing unit
  • Video card information e.g., vendor & BIOS/firmware version
  • Maximum vertical refresh rate of an attached monitor e.g., network Interface Card (NIC) detection. Small Computer Serial Interface (SCSI) controller information, such as vendor
  • EIDE/IDE controller information e.g., current configuration
  • Peripheral Computer Interface (PCI) slot information including the number of PCI slots and the types of devices in the slots.
  • Intel Standard Architecture (ISA) slot information including the number of ISA slots and the types of devices in the slots.
  • Advanced Graphics Port (AGP) slot information including the vendor, model, and firmware version of the card in the slot.
  • Preferred embodiments of image capture can be used to capture a system's hardware configuration, base software image, and/or incremental software images.
  • Table 2 lists some differences between discovery and image capturing.
  • Table 3 follows Table 2 and lists some preferred image capturing features.
  • Discovery Discovery preferably automatically runs the discovery action to obtain a system's hardware and software information.
  • Image Capturing Image capture preferably captures the hardware Captures Reference configuration, base software image, and/or System Configuration incremental software images from a reference and Images system. The capturing process is non- destructive to the reference system's existing configuration.
  • a more preferred embodiment of the invention provides a programming code segment to capture hardware information (e.g., both text data and/or binary data), and to transmit the hardware information (e.g., CPU information, PCI information, BIOS information, and so forth) back to a dedicated server.
  • Third-party utilities e.g., deployment utility software from vendors like Rembo or PowerQuest
  • third-party utilities may be used to capture and deploy software image(s) on non-Intel-based data processing systems.
  • a preferred embodiment provides a database for storing references to software image store(s) after software image(s) are put on the dedicated server.
  • other value-added information e.g., hardware info
  • All PCI (and non-PCI) device BIOS and firmware versions & configurations including Redundant Arrays of Inexpensive Disks, SCSI controllers, other disk controllers.
  • Motherboard-embedded device info BIOS & firmware.
  • System information ⁇ e.g., manufacturer, product name, version, serial number, universal unique identification (UUID), & wake-up mechanism (e.g. LAN Remote, Power Switch, PCI, Modem Ring, APM Timer, and equivalents) ⁇ .
  • Processor information e.g., socket designation, type, family, manufacturer, ID, version, voltage, clock frequencies).
  • Cache information (e.g., internal/external cache configuration, maximum cache size, installed cache size, & system cache type).
  • Memory Devices e.g., location, use, memory error correction, maximum capacity, and number of memory devices, memory array handle, total width in bits, data width in bits, size, form factor (i.e., type of RAM; e.g., SDRAM, DIMM, SIMM DDR, & so forth), device set, device locator (i.e., to identify the physical socket or board position), back locator (i.e., to identify the physical bank of the device) ⁇ .
  • Networks e.g., LAN, WAN, Internet, wireless networks, and direct connection).
  • Preferred embodiments dynamically create a DOS bootable image containing the system profile files and utilities.
  • the hardware configuration supports a unique identifier and a link to the reference system's system profile in the database.
  • Base Software captures a base software image, Image typically including a NOS image, of a reference system.
  • a base software image is associated with a link to the reference system's profile in the database.
  • Preferred embodiments support some of the following NOS images: Windows NT 4.0, Windows 2000 Server, Windows XP RedHat Linux, SuSe Linux, Debian Linux HP-UX and future upgrades and enhancements of the above NOS.
  • Incremental A preferred embodiment captures incremental software Software images by differencing the current software Image configuration with an existing base software image.
  • incremental software images are linked to the reference system's system profile and to the base software image in the database.
  • the image capture process supports imaging Drives and multiple partitions on a drive, multiple drives and Partitions partitions across one or more physical drives.
  • the image capture process automatically captures all partitions on all drives, and links the images together as a base or incremental software image. Complete Allows creation of a hardware configuration and base (“Zero-Click”) software image without human operator intervention.
  • FIG. 4 illustrates some deployment options, according to a preferred embodiment of the present invention.
  • the dedicated server 402 is connected to various data processing systems.
  • Headless Deployment 404 involves a data processing system that is not connected to a monitor 406 , keyboard 408 , or mouse 410 .
  • the data processing system has headless BIOS support and deployment typically is both unattended and remote in this deployment option.
  • Unattended Deployment 412 does not require human interaction.
  • the data processing system may or may not be headless.
  • An alternative embodiment can include a centralized deployment server that is able to control deployment on this system without the need for a GUI on the target data processing system.
  • Headless Deployment 404 A more preferred option for data processing system deployment is Headless Deployment 404 , which assumes that the deployment is remote and unattended. Another preferred option is remote-unattended deployment, which appears as a Headless Deployment 404 , although the data processing system is physically connected to a console.
  • Preferred embodiments of the present invention can deploy multiple data processing systems, and deploy hardware configurations and software images as specified by the Image Capture process.
  • Table 4 lists a summary of preferred deployment features that can be supported as necessary in various embodiments of the invention.
  • TABLE 4 Preferred Deployment Options Feature Description Headless Preferably, the system supports headless operation. Even if Deployment the system does not support true headless deployment, preferably deployment can done remotely and unattended.
  • Preferred embodiments of Zero-Click Deployment will deploy to any data processing system as if it were a headless or remote, unattended system. This method of operation requires no user input. Unattended Deployment does not need user interaction. Unattended Deployment deployment may or may not be done remotely.
  • Group Deployment preferably supports multicast technologies and Deployment handles multiple system and images with one deployment action.
  • deployment of a hardware configuration is done Hardware alone, or as part of deploying a complete system. If Configura- deployed alone, the hardware configuration should not be tion destructive to the target's existing software configuration.
  • hardware configuration utilities are deployed with a bootable DOS image, along with the necessary configuration data files created during hardware configuration image capture.
  • the DOS image is used to run the hardware and firmware utilities, and it is removed from the target system when the utilities are finished.
  • the system profile associated with the reference system matches the target's system profile.
  • Deploy Base Preferably, software images are deployed as specified Software by the Image Capture process.
  • the target's system profile Image preferably matches the reference system's profile.
  • deployment of software or incremental images uses some or all of the following database information: Logical drive of each partition. Number of partitions on each drive. Partition size. Partition file system format (e.g., HP's utility partition). Whether it is a swap partition. Disk and partition number of the active boot partition. A link to the image associated with each partition.
  • deployment creates and formats partitions and deploys images as part of base or incremental software images.
  • the reference system's profile preferably determines how the partitions are created, and how the image is restored on each partition.
  • incremental images can be deployed alone, Incremental with a hardware configuration, or with a base software Software image.
  • Preferred embodiments ensure that incremental Image images are deployed on top of the base software image from which they were created during Image Capture.
  • Multiple A preferred embodiment supports deployment to multiple Drives and partitions on a single drive, multiple drives, and partitions Partitions across multiple physical drives.
  • Preferred embodiments of the invention can update a data processing system's hardware configuration in a non-destructive manner, both before software image deployment, and on a data processing system that has already been configured.
  • the hardware configuration can be updated at any time without modifying the remaining portion of the configuration of the data processing system.
  • the most preferred embodiment is able to deploy new or additional hardware configuration and/or software image(s) to a system that has already been deployed.
  • Re-deployment could be used to update a systems hardware configuration, deploy additional software components with incremental images, or completely change the configuration of a system by deploying a different base software image.
  • Re-deployment involves regaining control over a system that is currently running a network operating system (NOS).
  • NOS network operating system
  • Table 5 lists selectively included re-deployment features. TABLE 5
  • the deployment process may be restarted after Deployment cancellation, or once a deployment error has been corrected.
  • the deployment process can resume at the last uncompleted stage.
  • deployment can be used to rollback a system to Deployment a previous state (e.g., after canceling a deployment process, so that the system can be deployed back to the previous deployment state).
  • Rules-Based it is possible to define a set of rules for Deployment automatically deploying configurations and images.
  • asset management includes database operations, administration, and a scheduling utility.
  • Table 6 lists some preferred asset management features. TABLE 6 Asset Management Features Feature Description Defined Preferred embodiments can create groups of systems for Groups purposes such as deployment or discovery. Rule-Based Grouping rules can be maintained in the deployment Grouping database and used to automatically place a new system in an existing group. Rule-Based Deployment rules can be maintained in the database for Deployment automatic deployment of hardware configurations or images. Validation Preferably, asset management supports validation of systems, groups, hardware configurations, and images by matching system profiles. System profiles preferably match some or all of the following: System model. Number and size of hard drives. PCI card data. Number and size of partitions (unless the system is a new target).
  • Utility Preferred embodiments of the invention can add, update, or Library delete files in the utility library (for use during discovery, image capture, or deployment).
  • Unique Preferred embodiments of the invention can insert, modify System or delete system information.
  • System information can Information include one or more of the following: IP address(es) or DHCP. Network name. Organization name. Domain. User name and password. Time zone and language. Regional options. Network options. Default Preferably, unique system information is automated by System using default information for selected systems. Preferred Information embodiments use the default information entered to automatically create unique information for each of the selected systems.
  • Preferred embodiments of the invention will be able to create rules that will apply to all deployments within a group, or across groups, that will automatically affect what is deployed to a data processing system according to whatever knowledge is already known about a target data processing system.
  • the present invention will support data processing system deployments in locations where network connectivity is not available by providing bootable CD or diskette sets. These CDs or diskettes can be used for deploying any data processing system, with the option of letting the user enter computer configuration settings or specific software packages. Furthermore, preferred embodiments of the present invention will separate the base image from the application software package images, so that even if the application software packages are created on a specific platform (the reference computer), they can be deployed to other platforms (other system images) without requiring modifications.
  • the present invention will be capable of deploying different configurations across several data processing systems simultaneously by using a multicast transport protocol. Multicasting makes it possible to optimize network usage, since files that are needed by several data processing systems will only be sent once, instead of being sent to each data processing system individually.
  • status reports are sent to a central console to help an administrator monitor the deployment.
  • FIG. 5A illustrates a process flow chart for one embodiment of the invention that is capable of both one-click deployment and zero-click deployment.
  • the method starts in operation 502 .
  • Operation 504 is next, where a preferred embodiment of the invention includes a program module that will work in the background and listen for new systems that are powered on, and start PXE.
  • Operation 506 is next, where a dedicated server identifies the data processing system ⁇ e.g., by the media access control (MAC) address ⁇ .
  • Operation 508 is next, where a test is made to determine whether or not there is a task already defined for that data processing system. If the test of operation 508 determines that there is an active task, then operation 510 is next and the active task is started.
  • MAC media access control
  • Operation 512 is next, where the method ends. However, if the test of operation 508 determines there is no active task, then operation 514 is next where the discovery and rules checking process starts. As the flow chart shows, there may be a deployment if certain criteria are met. In operation 516 the next deployment rule is checked. This includes comparing the data processing system attributes to the rule attributes, starting at the first rule and stopping at the first applicable rule. Operation 518 is next, where a test is made to determine if the data processing system matches the rule. If the test of operation 518 determines a match, operation 520 is next, where a test is made to determine if the rule is a one-click or zero-click rule. If the rule is a one-click rule, step AA on FIG. 5B is next.
  • step BB on FIG. 5B is next. However, if the data processing system does not match the rule, then operation 522 is next, where a test is made to determine if there are more rules. If there are more rules, then operation 516 is repeated. If there are no more rules, then operation 524 is next, where the action is performed, and a user-editable server setting can specify the action. Then operation 526 is next, where the method ends.
  • FIG. 5B continues the process flow chart starting at step AA for one-click deployment and starting at BB for zero-click deployment, as illustrated on FIG. 5A for one embodiment of the invention.
  • the method continues from step AA for a one-click rule in operation 528 , where the pending task is added to the task manager.
  • Operation 530 is next, where the pending task is displayed to a user.
  • Operation 532 is next, where a test is made to determine if the user accepts or deletes the task. If the user chooses deletion, then operation 534 is next, where the pending task is deleted from the scheduler.
  • Operation 536 is next, where the method ends. However, if user accepts the task, then operation 538 is next, where the pending task is set to active and operation 542 is next.
  • step BB for a zero-click rule in operation 540 , where the pending task is added to the scheduler.
  • Operation 542 is next, where the task manager starts the task.
  • Operation 544 is next, where the action results are returned to a database (e.g., on a dedicated server). The method ends in operation 546 .
  • FIG. 6 illustrates a more detailed flow chart of a method for deploying data processing system(s) in accordance with one embodiment of the invention.
  • the method starts in operation 602 .
  • the deployment process begins by the selection of the type of action needed.
  • a test is made to determine if there is a need for a new rule, to view a rule, enable/disable/delete a rule, or change a rule priority. If a new rule is needed, then operation 608 is next, where the deployment package is selected (e.g., the images of the data processing system). Then operation 616 is next, where the deployment action is set. Operation 618 is next, where the activation settings are set.
  • Operation 620 is next, where the expiration options are set. Then operation 622 is next with a return to the rule menu. If the test of operation 606 determines there is a need to view a rule, then operation 612 is next, where the rule details, rule history, and associated rule information is shown. Then operation 622 is next with a return to the rule menu. If the test of operation 606 determines there is a need to enable a rule, disable a rule, or delete a rule, then operation 614 is next, where a request for confirmation is made to enable the rule, disable the rule, or delete the rule. Then operation 622 is next with a return to the rule menu.
  • operation 610 is next, where a the current list of rule priorities is shown and modifications are allowed. Then operation 622 is next with a return to the rule menu. The method ends in operation 624 .
  • the rules are active in the background of the deployment center.
  • events are added and may be scheduled using the functional area menu item. Then scheduled events may be manipulated using the scheduler options shown in FIG. 7, where the rules listed in FIG. 6 are also seen.
  • FIG. 7 illustrates a flow chart of the scheduler, in accordance with one preferred embodiment of the invention.
  • the method starts in operation 702 .
  • operation 704 the user begins by entering a GUI main menu.
  • Operation 706 is next, where the scheduler menu is entered.
  • Operation 708 is next, where all the scheduled tasks are shown (including the one-click or zero-click deployment rules), and indicated by one-click or zero-click deployment rules, sorted by date and time (or by some other convenient characteristic).
  • a test is made to determine if the selection is to view the event details, edit an event, or delete an event. If the test of operation 708 determines the event details are to be viewed, then operation 710 is next, where the event details, event history, and other information are shown.
  • operation 718 is next, where there is a return to the top-level menu. If the test of operation 708 determines an event is to be edited, then operation 712 is next, where the event editing functional area of the GUI is entered and all the data for event editing is loaded. Then operation 716 is next, where the data is saved and the scheduler tasks are updated. Then operation 718 is next, where there is a return to the top-level menu. If the test of operation 708 determines that an event is to be deleted, then operation 714 is next, where a confirmation is requested before the event deletion proceeds. Then operation 718 is next, where there is a return to the top-level menu.
  • FIG. 8 illustrates a flow chart involving asset management of one or more data processing systems, in accordance with one preferred embodiment of the invention.
  • the method starts in operation 802 .
  • Operation 804 is next, where edit system information option is selected.
  • Operation 806 is next, where the system information option is selected: default information or individual information. If the test of operation 806 determines a default information option is selected, then operation 808 is next.
  • operation 810 is next, where the group and/or system(s) are selected.
  • operation 812 is next, where the default information is entered.
  • operation 822 is next, where the update is initiated. If the test of operation 806 determines an individual information option is selected, then operation 814 is next.
  • operation 816 is next, where the single system is selected. Then operation 818 is next, where the individual system information is displayed. Then operation 820 is next, where the individual system information is entered. Then operation 822 is next, where the update is initiated. Operation 824 is next, where an update confirmation is displayed. The method ends in operation 826 .
  • FIG. 9 illustrates the relationship between attribute match criteria and various types of deployment, in accordance with various embodiments of the invention.
  • Three different types of deployment embodiments are shown: one-click deployment 902 , zero-click deployment 904 , and multi-click deployment 906 .
  • deployment involves a “trivial filter” 908 .
  • deployment involves a “match criteria/filter” 910 .
  • the next step is to “allow deployment” 930 .
  • the next step is to “generate error/warning” 920 , which is then followed by the step “allow deployment” 930 .
  • Preferred embodiments handle an attribute match failure by generating an error or warning before automatically continuing with deployment (e.g., when there is a “minor” mismatch/error in attributes), by generating an error or warning and stopping deployment (e.g., when there is a “major” mismatch/error in attributes), or by generating an error or warning, and suspending deployment until the deployment software decides to continue with deployment (e.g., when there is a mismatch/error in attributes).

Abstract

A method and computer network to autonomously deploy a group of data processing systems without human user interaction. One embodiment of the invention involves a method to deploy one or more data processing systems without human intervention. A second embodiment of the invention involves a computer network to facilitate the intelligent deployment of one or more data processing systems without human intervention. A third embodiment of the invention involves a computer program embodied on an electronically-readable media, containing instructions to deploy one or more data processing systems without human intervention.

Description

    CROSS-REFERENCE TO CO-PENDING APPLICATIONS
  • This application is a continuation-in-part of the co-pending U.S. patent application, Ser. No. 09/944,313, entitled “One-Click Deployment of Data Processing Systems,” filed on Aug. 30, 2001, by the common assignee, which is hereby incorporated by reference.[0001]
  • BACKGROUND OF THE INVENTION
  • 1. Field of the Invention [0002]
  • This invention relates generally to providing a method to facilitate the set-up of a group of data processing systems, and more specifically to providing a method to quickly deploy a group of computers with a specific set of software and hardware parameters in a chaotic environment, remote environment, and any other environment where human operation and intervention is impossible, impractical, or undesirable. [0003]
  • 2. Description of the Prior Art [0004]
  • Organizations have developed several in-house programs and procedures for deploying data processing systems (e.g., computer servers). These in-house programs and procedures have been less than comprehensive, and the complexity of deploying data processing systems has also been approximately proportional to the number of data processing systems involved. Such deployments are frequently extremely time-consuming and frustrating under the best of circumstances to human operators, and usually require extensive human operator knowledge and supervision. [0005]
  • Complex data processing system deployment (especially networks of dozens or hundreds of data processing systems) typically requires extensive intervention by highly specialized human operators. Such complex data processing system deployment may be especially difficult in times of serious business dislocations (e.g., during or after extensive layoffs, and so forth), since sufficiently knowledgeable human operators may no longer be unavailable, or no longer cooperative. [0006]
  • Complex data processing system deployment is also extremely demanding on human operators in chaotic environments (e.g., during or after earthquakes, fires, massive power failures, terrorist attacks, full-scale military battles and conflicts, and so forth), since sufficiently knowledgeable human operators may be unavailable, injured, or insufficiently calm and incapable of making correct decisions. Incorrect decisions in complex data processing system deployments can cause an extensive amount of very complicated and very subtle problems that require an enormous amount of debug and recovery time. However, debug and recovery time may be in very short supply when the crisis recovery requires an extremely quick recovery of operational capabilities. [0007]
  • Complex data processing system deployment in remote environments (e.g., monitoring sites near natural hazards, unmanned underwater vehicles, robotic repair equipment in radioactive and other hazardous areas of nuclear power plants and chemical plants, unmanned space vehicles, manned space vehicles with incapacitated crews, and so forth) may also require extremely quick and complex data processing system deployment during and after unforeseen events that greatly reduce or eliminate the command, communication, and control systems that originally allowed deployment participation by remote human operators. Deployment of data processing systems after such events can be impossible, or quite difficult and time consuming, if no fully automatic deployment capability exists. Furthermore, deployment of data processing systems may be necessary when the consequences of the unforeseen event require an extremely quick recovery of operational capabilities of the data processing systems. [0008]
  • Deployment of data processing systems includes selecting several software and hardware parameters. These parameters are listed in detail below, but include personalization information and options information, as well as other types of parameters (e.g., configuration parameters). [0009]
  • For example, one prior art deployment software product is the PowerQuest DeployCenter (available from PowerQuest, with corporate headquarters in Orem, Utah), which automates the capture and restoration of data (e.g., personal information) on end-user's systems, including network and operating system settings (e.g., this allows the user to elect the operating system settings to be transferred to other computers and affects the way that the operating system functions). The objects transferable during deployment include (but are not limited to): Desktop settings (e.g., for the Windows operating system this could include Active Desktop, Colors, Desktop Icons, Display, Icon Font, Pattern, Screen Saver, Wallpaper, Window Metrics and Start Menu); Personality settings (e.g., for the Windows operating system this could include Accessibility, Internet Browser Settings, Keyboard, Mouse, Printers, Send To Menu, Shell, Sound, Taskbar and User Profiles); Connectivity Settings (e.g., for the Windows operating system this could include Computer Description, Computer Name, DNS configuration, mapped drives, RAS networking connections, shared folders & drives, TCP/IP configuration, WINS configuration, Workgroup and Domain); Files (e.g., files that can be transferred at the same time as the settings). [0010]
  • However, the PowerQuest DeployCenter does not capture (i.e., take a snapshot of) the hardware configuration of a reference server, such as the hardware inventory, firmware settings, CMOS settings, boot order (e.g., booting from CD, disk drive, floppy diskette, or network), and the enablement/disablement of embedded hardware. The DeployCenter can only save information that is related to, or on, the actual disk drive being captured. Thus, it does not capture information about the hardware, the firmware settings, CMOS, boot order, or the enablement/disablement of any embedded hardware. It can manipulate the file system format, disk drive partitions, free space, and files. [0011]
  • Another prior art deployment software package is the Rembo Auto Deploy (RAD) package (available from Rembo Technology Sarl, with corporate headquarters in Carouge, Switzerland). This is a system image creation, management, and deployment tool intended to allow an administrator to take a snapshot of an operating system configuration for a computer, including: base disk image, application packages, configuration settings, and specific hardware configurations (such as firmware upgrades). RAD is driven from a central database containing unique parameters for each computer (including the rules that decide which images and software are applied to each computer). Parameters are set prior to deployment. [0012]
  • RAD assembles the target computer's operating system from various building blocks. The first is the base disk image. A base disk image is a copy of the hard disk contents (including the operating system) from a reference computer {e.g., in a Windows operating system this is prepared with the Microsoft System Preparation tool (SysPrep), available from Microsoft Corporation, with corporate headquarters in Redmond, Wash.}. On top of the base disk image, an administrator can apply software images. Software images are similar to base disk images, but are related to a specific piece of software. Multiple software images can be merged with the base disk image, and the combined base disk image and software images are written to a hard disk. At the end of the deployment, a SysPrep answer file (or a Linux equivalent file) is created and copied to the hard disk to customize the operating system. [0013]
  • However, the deployment process needs a specialized deployment center and may require manual intervention. In manual mode, RAD requires a user to enter specific computer configuration parameters and choose which software package to install. RAD uses a reference server to take a snapshot of some of the hardware inventory {including PCI devices, and desktop management interface (DMI) information}, disk drive settings, and CMOS settings. [0014]
  • However, RAD does not have features to control embedded hardware settings. RAD only images the first system disk drive or RAID volume as reported by the BIOS; alternate disk drives must be installed using operating system-based tools, or by using command lines. RAD only supports incremental images on the primary OS partition; the operator must use software updates packages with an unattended setup command line to install software on a secondary partition. [0015]
  • A major problem inhibiting deployment of a group of data processing systems is the complexity of setting up the software and parameters of a larger group of data processing systems. It would be desirable to provide a comprehensive method and system to intelligently deploy a group of data processing systems with a specific set of software, hardware firmware versions, and parameters without human intervention. [0016]
  • SUMMARY OF THE INVENTION
  • The present invention provides a comprehensive method and system to facilitate the deployment of a group of data processing systems with a specific set of software, hardware firmware versions, and parameters without human intervention. The invention can be implemented in numerous ways, such as a method, a computer network, and a computer program on electronically-readable media. Three aspects of the invention are described below. [0017]
  • A first aspect of the invention is directed to a method to deploy one or more data processing systems. The method includes capturing deployment information from a reference data processing system to deploy on the one or more data processing systems, wherein the deployment information is stored in a memory; selecting the one or more data processing systems; selecting a package of the deployment information to be deployed on the one or more data processing systems; and intelligently deploying the one or more data processing systems without human intervention, wherein the intelligently deploying includes referencing the package of deployment information that is stored in the memory. [0018]
  • A second aspect of the invention is directed to a computer network to facilitate the intelligent deployment of one or more data processing systems. The computer network includes one or more data processing systems to be intelligently deployed; one or more reference data processing systems containing deployment information; a means for transmission capable of conveying the deployment information to the one or more data processing systems without human intervention; and a dedicated data processing system containing deployment information copied from the one or more reference data processing systems, wherein the dedicated data processing system conveys to the one or more data processing systems over the means for transmission a package of deployment information selected from the deployment information. [0019]
  • A third aspect of the invention is directed to a computer program embodied on electronically-readable media, containing instructions to facilitate the deployment of one or more data processing systems. The computer program includes a program code segment to capture deployment information from a reference data processing system to deploy on the one or more data processing systems, wherein the deployment information is stored in a memory; a program code segment to select one or more data processing systems to be included in the one or more data processing systems; a program code segment to select a package of the deployment information to be deployed on the one or more data processing systems; and a program code segment to intelligently deploy the one or more data processing systems without human intervention, including program code to reference the package of deployment information that is stored in the memory. [0020]
  • These and other objects and advantages of the invention will become apparent to those skilled in the art from the following detailed description of the invention and the accompanying drawings.[0021]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 illustrates a typical configuration of one or more data processing systems, in accordance with one application of a preferred embodiment of the present invention. [0022]
  • FIG. 2 illustrates an architectural block diagram for one preferred embodiment of the invention. [0023]
  • FIG. 3 illustrates an alternative embodiment of the invention, where the intelligent deployment logic (IDL) is not a stand-alone module, and the IDL is part of the information center manager (ICM). [0024]
  • FIG. 4 illustrates some deployment options, according to a preferred embodiment of the present invention. [0025]
  • FIG. 5A illustrates a process flow chart for one embodiment of the invention that is capable of both one-click deployment and zero-click deployment. [0026]
  • FIG. 5B continues the process flow chart starting at step AA for one-click deployment and starting at BB for zero-click deployment, as illustrated on FIG. 5A for one embodiment of the invention. [0027]
  • FIG. 6 illustrates a more detailed flow chart of a method for deploying data processing system(s) in accordance with one embodiment of the invention. [0028]
  • FIG. 7 illustrates a flow chart of image capture, in accordance with one preferred embodiment of the invention. [0029]
  • FIG. 8 illustrates a flow chart involving asset management of one or more data processing systems, in accordance with one preferred embodiment of the invention. [0030]
  • FIG. 9 illustrates the relationship between attribute match criteria and various types of deployment, in accordance with various embodiments of the invention.[0031]
  • DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
  • The invention provides a method and a system to facilitate the deployment of a group of data processing systems. One most preferred embodiment of the invention is implemented on a computer network that is connected or coupled to what is commonly referred to as the Internet or the World Wide Web. [0032]
  • Intelligent Deployment [0033]
  • Both zero-click deployment and one-click deployment (discussed in the co-pending U.S. patent application, Ser. No. 09/944,313, entitled “One-Click Deployment of Data Processing Systems,” filed on Aug. 30, 2001, by the common assignee, which is hereby incorporated by reference), most preferably include intelligent deployment. Intelligent zero-click deployment includes deployment initiation, where the zero-click deployment software compares the program-selected hardware and/or software attributes to the target data processing systems. Intelligent deployment also includes testing for a successful match of the target data processing system attributes against the match criteria attributes; a match indicates a successful deployment candidate (in this case deployment is allowed to continue). However, if the match of attributes is unsuccessful, the zero-click deployment software can decide whether the deployment proceeds. Intelligent zero-click deployment can also stop deployment when a mismatch of attributes occurs due to target data processing system incompatibility, or suspend the deployment until an adjustment is made in the target data processing system(s) or in the deployment itself, or continue the deployment. The attributes originate from a pre-defined list, which can be included or excluded from the attribute comparison prior to deployment initiation. [0034]
  • FIG. 1 illustrates a typical configuration of one or more data processing systems, in accordance with one application of a preferred embodiment of the present invention. The desktop [0035] personal computer 102, workstation 104, laptop computer 106 server 108, disk array 110, and a printer 112 are connected through a network (e.g., a data processing network) to a dedicated server 114. The dedicated server 114 would typically be running a recent version of Windows or Linux (e.g., RedHat Linux) on a Netserver/HP Unix server system (or this could be any system capable of running the deployment software of the present invention and the deployment software plug-in components of a vendor), and be connected to a network. Preferably, a Web browser on a workstation 118 can be used to remotely access the dedicated server 114. The dedicated server 114 would typically include a Pre-boot Execution Environment (PXE) server (to load an operating system from a remote boot server prior to beginning actual deployment), a database 120, and a file library 122. The file library 122 contains image and utility libraries normally installed as part of the software of the dedicated server 114. The database 120 and file library 122 may or may not be located on the same data processing system as the dedicated server 114. In one embodiment, the dynamic host configuration protocol (DHCP) server 116 is on the same data processing system as the dedicated server 114, but in another embodiment the DHCP server 116 is on a different data processing system. When a server provides this data processing system network service on the network, it will dynamically configure a data processing system's network settings, including the IP address, subnet, DNS server, lease expiration date, and other settings. In preferred embodiments, a PXE Server is implemented as part of the dedicated server 114. If there is a router between the PXE Server and a target data processing system, the router must be setup to route the appropriate network packets. A BOOTP packet is a specific type of packet that the router may or may not route depending on its configuration. The router preferably supports all packets that are needed for transmission over the network to target data processing systems.
  • The reference data processing system and target data processing systems preferably include PXE supporting network cards. Usually the network interface cards (NICs) have PXE-boot devices that are always available, but the default boot order may be selectively modified to specify the PXE-enabled NIC at the top of the boot order. Preferably, the data processing systems are connected to the same network as the dedicated server. Preferably, the data processing systems support Wake-on-LAN (WOL), or another wake-up mechanism (listed in Table 3 below), and include network cards with WOL enabled. The [0036] dedicated server 114 preferably has a management console running on a workstation in a supported Web browser. The printer 112 is connected to the dedicated server or network for printing asset management reports. Components that may be required in addition to the dedicated server software include: SysPrep from Microsoft and/or equivalent Linux utility, BIOS and firmware version readers, update utilities, ROM files, configuration binary/text files, configuration utilities from vendors (e.g., utilities for BIOS, SCSI, and RAID), and a supported database (e.g., an ORACLE database).
  • A PXE-boot process is preferred, but not required on data processing systems with an Intel architecture. A PXE-boot process is not necessary for data processing systems with a Hewlett-Packard proprietary architecture (e.g., the Prism architecture). Before the PXE-boot process can begin, a data processing system may need to be powered-on or rebooted. A preferred way to power-on a data processing system is through WOL, when the data processing system has WOL capabilities and WOL is enabled. However, since activating a data processing system through WOL requires user input at a console, a preferred method of starting a data processing system prior to a zero-click deployment would use the power switch located on the data processing system. PXE would then occur during the PXE-boot process, which would happen if the data processing system automatically reboots itself, or if an installation technician presses the power button on the data processing system itself at the installation site. Neither process would require any user input through a remote web console. [0037]
  • FIG. 2 illustrates an architectural block diagram for one preferred embodiment of the invention. The presentation layer of the graphical user interface (GUI) [0038] 202 communicates with the Information Center Manager (ICM) 210 to present one-click deployment information to users. The GUI 202 communicates with a scheduler 204. The scheduler 204 communicates with the Intelligent Deployment Logic (IDL) 206 to have rules applied to a set of target data processing systems. The IDL 206 communicates with the ICM 210 for specific information regarding rules and target data processing systems. The scheduler 204 communicates with the task manager 208 to execute specific tasks, such as deployment when new data processing systems are found.
  • In preferred embodiments of the invention for zero-click deployment, the [0039] task manager 208 will be informed by a third party software plug-in that a data processing system has been found. If there is no task associated with it, the task manager 208 informs the scheduler 204 of a new data processing system. The scheduler 204 will communicate with the IDL 206 to have rules applied to a set of target data processing systems.
  • FIG. 3 illustrates an alternative embodiment of the invention, where the [0040] IDL 206 is not a stand-alone module, and the IDL 206 is part of the ICM 210. Here, the presentation layer of the GUI 202 communicates with the ICM 210 to present one-click deployment information to users. The GUI 202 communicates with a scheduler 204. The scheduler 204 communicates with the ICM 210 (which contains an IDL 206) to have rules applied to a set of target data processing systems. The IDL 206 inside the ICM 210 communicates with the ICM 210 for specific information regarding rules and target data processing systems. The scheduler 204 communicates with the task manager 208 to execute specific tasks, such as deployment when new data processing systems are found. In preferred embodiments of the invention for zero-click deployment, the task manager 208 will be informed by a third party software plug-in that a data processing system has been found. If there is no task associated with it, the task manager 208 informs the scheduler 204 of a new data processing system. The scheduler 204 will communicate with the ICM 210 (the IDL 206) to have rules applied to a set of target data processing systems.
  • Discovery [0041]
  • The discovery program determines the system hardware and firmware configuration information for one or more data processing systems, and saves this information for future reference. This information is preferably saved on a non-volatile memory, such as a magnetic disk drive, a magneto-optic disk drive, a floppy diskette, a compact disc, or a flash memory. Alternatively, the information can be saved on a volatile memory, such as a random access memory (RAM). Table 1 lists some discovery features. [0042]
    TABLE 1
    Discovery Features
    Feature Description
    Independent In preferred embodiments, the discovery program is
    from External independent from the implementation of other features,
    Components such as the image capture and deployment features.
    DOS Program Preferred embodiments are implemented as a DOS
    program.
    Run from Preferred embodiments can run from a bootable DOS
    DOS or OS environment, or from a supported network operating
    system (NOS).
    Remote and Preferred embodiments can be initiated remotely across a
    unattended network connection and can operate without any user
    intervention.
    Data Stored for Preferably, discovery data is added to a database stored
    Future locally as a file (e.g., text, or binary) on the system,
    Reference or remotely on a dedicated server, depending on
    the Discovery program.
    Validation Preferred embodiments support validation against an
    existing system's hardware/firmware configuration to
    determine whether a system's hardware changed since
    the previous discovery process.
    Local Storage Preferred embodiments of local storage discovery
    Information obtain some or all of the following information:
    Number of physical disk drives.
    Firmware version of each physical disk.
    Capacity of each physical disk drive.
    Number of partitions on each physical disk drive.
    Capacity of each partition.
    Capacity of un-partitioned space on each disk drive.
    File system format on each partition (with support for a
    utility partition from Hewlett-Packard (HP) and/or other
    vendors).
    Physical disk and partition number of the active boot
    partition (MBR).
    Empty/non-empty status of each partition.
    Physical disk and partition number of the NOS drive.
    Whether a partition is exclusively for a page or swap file.
    RAID Storage Preferred embodiments of the invention use discovery to
    Information obtain some or all of the following information about
    RAID storage:
    Drive numbers of logical RAID drives.
    RAID configuration.
    Number of Disk Array Controllers (DAC).
    Vendor for each DAC.
    Vendor specific model for each DAC.
    DAC BIOS and firmware version information.
    System In preferred embodiments, some or all of the following
    Hardware system hardware information is obtained through
    Information discovery:
    System model identification.
    System Basic Input Output Software (BIOS) version.
    System F2 setup configuration (CMOS & related chips,
    random access memory (RAM) information (e.g.,
    capacity, type, speed, number of chips, and error
    correcting capability (ECC)), central processing
    unit (CPU) information, (e.g., vendor, model, & speed)).
    Video card information (e.g., vendor & BIOS/firmware
    version).
    Maximum vertical refresh rate of an attached monitor.
    Network Interface Card (NIC) detection.
    Small Computer Serial Interface (SCSI) controller
    information, such as vendor, model and firmware
    versions.
    Enhanced Integrated Drive Electronics (EIDE/IDE)
    controller information (e.g., current configuration).
    Peripheral Computer Interface (PCI) slot information,
    including the number of PCI slots and the types of
    devices in the slots.
    Intel Standard Architecture (ISA) slot information,
    including the number of ISA slots and the types of
    devices in the slots.
    Advanced Graphics Port (AGP) slot information,
    including the vendor, model, and firmware version of
    the card in the slot.
  • Image Capture [0043]
  • Preferred embodiments of image capture can be used to capture a system's hardware configuration, base software image, and/or incremental software images. Table 2 lists some differences between discovery and image capturing. Table 3 follows Table 2 and lists some preferred image capturing features. [0044]
    TABLE 2
    Discovery and Image Capturing
    Feature Description
    Discovery Discovery preferably automatically runs the
    discovery action to obtain a system's hardware
    and software information.
    Image Capturing Image capture preferably captures the hardware
    Captures Reference configuration, base software image, and/or
    System Configuration incremental software images from a reference
    and Images system. The capturing process is non-
    destructive to the reference system's existing
    configuration.
  • A more preferred embodiment of the invention provides a programming code segment to capture hardware information (e.g., both text data and/or binary data), and to transmit the hardware information (e.g., CPU information, PCI information, BIOS information, and so forth) back to a dedicated server. Third-party utilities (e.g., deployment utility software from vendors like Rembo or PowerQuest) can be used, if necessary, to capture or deploy the data (e.g., software image(s) on the hard drive(s) of reference systems) for Intel-based systems, and can be used to deliver the hardware info capture and configuration program code segments to the data processing systems. Additionally, third-party utilities may be used to capture and deploy software image(s) on non-Intel-based data processing systems. A preferred embodiment provides a database for storing references to software image store(s) after software image(s) are put on the dedicated server. In addition to storing references to software image(s), other value-added information (e.g., hardware info) is stored in the database of the dedicated server that stores the software image(s). [0045]
    TABLE 3
    Some Preferred Image Capture Features
    Feature Description
    Hardware Captures a reference system's profile. To create a system
    Configuration hardware configuration, image capture obtains some of
    the information below:
    System BIOS Vendor, Version, Release Date, ROM
    Size.
    System BIOS configuration (captured text or binary file).
    All PCI (and non-PCI) device BIOS and firmware
    versions & configurations, including Redundant Arrays
    of Inexpensive Disks, SCSI controllers, other disk
    controllers.
    Advanced Graphics Port (AGP) video BIOS & firmware.
    Motherboard-embedded device info, BIOS & firmware.
    System information {e.g., manufacturer, product name,
    version, serial number, universal unique identification
    (UUID), & wake-up mechanism (e.g. LAN Remote,
    Power Switch, PCI, Modem Ring, APM Timer, and
    equivalents)}.
    Processor information (e.g., socket designation, type,
    family, manufacturer, ID, version, voltage, clock
    frequencies).
    Cache information (e.g., internal/external cache
    configuration, maximum cache size, installed cache
    size, & system cache type).
    Memory Devices (e.g., location, use, memory error
    correction, maximum capacity, and number of memory
    devices, memory array handle, total width in bits, data
    width in bits, size, form factor (i.e., type of RAM; e.g.,
    SDRAM, DIMM, SIMM DDR, & so forth), device set,
    device locator (i.e., to identify the physical socket or
    board position), back locator (i.e., to identify the physical
    bank of the device)}.
    Networks (e.g., LAN, WAN, Internet, wireless networks,
    and direct connection).
    Preferred embodiments dynamically create a DOS
    bootable image containing the system profile files and
    utilities. Preferably, the hardware configuration supports
    a unique identifier and a link to the reference system's
    system profile in the database.
    Base Software A preferred embodiment captures a base software image,
    Image typically including a NOS image, of a reference system.
    A base software image is associated with a link to the
    reference system's profile in the database. Preferred
    embodiments support some of the following NOS
    images:
    Windows NT 4.0, Windows 2000 Server, Windows XP
    RedHat Linux, SuSe Linux, Debian Linux
    HP-UX
    and future upgrades and enhancements of the above
    NOS.
    Incremental A preferred embodiment captures incremental software
    Software images by differencing the current software
    Image configuration with an existing base software image.
    Preferably, incremental software images are linked to
    the reference system's system profile and to the base
    software image in the database.
    Multiple Preferably, the image capture process supports imaging
    Drives and multiple partitions on a drive, multiple drives and
    Partitions partitions across one or more physical drives. Preferably,
    the image capture process automatically captures all
    partitions on all drives, and links the images
    together as a base or incremental software image.
    Complete Allows creation of a hardware configuration and base
    (“Zero-Click”) software image without human operator intervention.
    System
    Capture
  • Deployment [0046]
  • Deployment in preferred embodiments of the invention are done remotely without any interaction from the user and can be done in headless systems. FIG. 4 illustrates some deployment options, according to a preferred embodiment of the present invention. The [0047] dedicated server 402 is connected to various data processing systems. Headless Deployment 404 involves a data processing system that is not connected to a monitor 406, keyboard 408, or mouse 410. The data processing system has headless BIOS support and deployment typically is both unattended and remote in this deployment option. Unattended Deployment 412 does not require human interaction. The data processing system may or may not be headless. An alternative embodiment can include a centralized deployment server that is able to control deployment on this system without the need for a GUI on the target data processing system.
  • A more preferred option for data processing system deployment is [0048] Headless Deployment 404, which assumes that the deployment is remote and unattended. Another preferred option is remote-unattended deployment, which appears as a Headless Deployment 404, although the data processing system is physically connected to a console.
  • Preferred embodiments of the present invention can deploy multiple data processing systems, and deploy hardware configurations and software images as specified by the Image Capture process. Table 4 lists a summary of preferred deployment features that can be supported as necessary in various embodiments of the invention. [0049]
    TABLE 4
    Preferred Deployment Options
    Feature Description
    Headless Preferably, the system supports headless operation. Even if
    Deployment the system does not support true headless deployment,
    preferably deployment can done remotely and unattended.
    Preferred embodiments of Zero-Click Deployment will
    deploy to any data processing system as if it were a
    headless or remote, unattended system. This method of
    operation requires no user input.
    Unattended Deployment does not need user interaction. Unattended
    Deployment deployment may or may not be done remotely.
    Group Deployment preferably supports multicast technologies and
    Deployment handles multiple system and images with one deployment
    action.
    Deploy Preferably, deployment of a hardware configuration is done
    Hardware alone, or as part of deploying a complete system. If
    Configura- deployed alone, the hardware configuration should not be
    tion destructive to the target's existing software configuration.
    Preferably, hardware configuration utilities are deployed
    with a bootable DOS image, along with the necessary
    configuration data files created during hardware
    configuration image capture.
    Preferably, the DOS image is used to run the hardware and
    firmware utilities, and it is removed from the target system
    when the utilities are finished. Preferably, in order to
    deploy the hardware configuration, the system profile
    associated with the reference system matches the target's
    system profile.
    Deploy Base Preferably, software images are deployed as specified
    Software by the Image Capture process. The target's system profile
    Image preferably matches the reference system's profile. In
    addition to matching the target and reference system
    profiles, deployment of software or incremental images uses
    some or all of the following database information:
    Logical drive of each partition.
    Number of partitions on each drive.
    Partition size.
    Partition file system format (e.g., HP's utility partition).
    Whether it is a swap partition.
    Disk and partition number of the active boot partition.
    A link to the image associated with each partition.
    In preferred embodiments, deployment creates and formats
    partitions and deploys images as part of base or incremental
    software images. The reference system's profile preferably
    determines how the partitions are created, and how the
    image is restored on each partition.
    Deploy Preferably, incremental images can be deployed alone,
    Incremental with a hardware configuration, or with a base software
    Software image. Preferred embodiments ensure that incremental
    Image images are deployed on top of the base software image
    from which they were created during Image Capture.
    Multiple A preferred embodiment supports deployment to multiple
    Drives and partitions on a single drive, multiple drives, and partitions
    Partitions across multiple physical drives.
  • Preferred embodiments of the invention can update a data processing system's hardware configuration in a non-destructive manner, both before software image deployment, and on a data processing system that has already been configured. In other words, the hardware configuration can be updated at any time without modifying the remaining portion of the configuration of the data processing system. [0050]
  • Re-Deployment [0051]
  • The most preferred embodiment is able to deploy new or additional hardware configuration and/or software image(s) to a system that has already been deployed. Re-deployment could be used to update a systems hardware configuration, deploy additional software components with incremental images, or completely change the configuration of a system by deploying a different base software image. Re-deployment involves regaining control over a system that is currently running a network operating system (NOS). Table 5 lists selectively included re-deployment features. [0052]
    TABLE 5
    Some Preferred Re-Deployment Features
    Feature Description
    Cancel Preferably, a user may cancel the deployment process
    Deployment during any stage. When canceling deployment, the user
    is preferably given a choice to either rollback deployment,
    or to simply cancel the process. Since certain stages of
    deployment are difficult to cancel (e.g., restoring an image),
    cancellation preferably takes place at the earliest possible
    step of deployment.
    Restart Preferably, the deployment process may be restarted after
    Deployment cancellation, or once a deployment error has been corrected.
    Preferably, the deployment process can resume at the last
    uncompleted stage.
    Rollback Preferably, deployment can be used to rollback a system to
    Deployment a previous state (e.g., after canceling a deployment process,
    so that the system can be deployed back to the previous
    deployment state).
    Rules-Based Preferably, it is possible to define a set of rules for
    Deployment automatically deploying configurations and images.
  • Asset Management [0053]
  • In preferred embodiments, asset management includes database operations, administration, and a scheduling utility. Table 6 lists some preferred asset management features. [0054]
    TABLE 6
    Asset Management Features
    Feature Description
    Defined Preferred embodiments can create groups of systems for
    Groups purposes such as deployment or discovery.
    Rule-Based Grouping rules can be maintained in the deployment
    Grouping database and used to automatically place a new system
    in an existing group.
    Rule-Based Deployment rules can be maintained in the database for
    Deployment automatic deployment of hardware configurations or
    images.
    Validation Preferably, asset management supports validation of
    systems, groups, hardware configurations, and images by
    matching system profiles. System profiles preferably
    match some or all of the following:
    System model.
    Number and size of hard drives.
    PCI card data.
    Number and size of partitions (unless the system is a new
    target).
    NOS (unless the system is a new target).
    And other attributes mentioned in the discovery section.
    Utility Preferred embodiments of the invention can add, update, or
    Library delete files in the utility library (for use during discovery,
    image capture, or deployment).
    Unique Preferred embodiments of the invention can insert, modify
    System or delete system information. System information can
    Information include one or more of the following:
    IP address(es) or DHCP.
    Network name.
    Organization name.
    Domain.
    User name and password.
    Time zone and language.
    Regional options.
    Network options.
    Default Preferably, unique system information is automated by
    System using default information for selected systems. Preferred
    Information embodiments use the default information entered to
    automatically create unique information for each of the
    selected systems.
  • Preferred embodiments of the invention will be able to create rules that will apply to all deployments within a group, or across groups, that will automatically affect what is deployed to a data processing system according to whatever knowledge is already known about a target data processing system. [0055]
  • Preferably, the present invention will support data processing system deployments in locations where network connectivity is not available by providing bootable CD or diskette sets. These CDs or diskettes can be used for deploying any data processing system, with the option of letting the user enter computer configuration settings or specific software packages. Furthermore, preferred embodiments of the present invention will separate the base image from the application software package images, so that even if the application software packages are created on a specific platform (the reference computer), they can be deployed to other platforms (other system images) without requiring modifications. [0056]
  • Preferably, the present invention will be capable of deploying different configurations across several data processing systems simultaneously by using a multicast transport protocol. Multicasting makes it possible to optimize network usage, since files that are needed by several data processing systems will only be sent once, instead of being sent to each data processing system individually. Preferably, status reports are sent to a central console to help an administrator monitor the deployment. [0057]
  • FIG. 5A illustrates a process flow chart for one embodiment of the invention that is capable of both one-click deployment and zero-click deployment. The method starts in [0058] operation 502. Operation 504 is next, where a preferred embodiment of the invention includes a program module that will work in the background and listen for new systems that are powered on, and start PXE. Operation 506 is next, where a dedicated server identifies the data processing system {e.g., by the media access control (MAC) address}. Operation 508 is next, where a test is made to determine whether or not there is a task already defined for that data processing system. If the test of operation 508 determines that there is an active task, then operation 510 is next and the active task is started. Operation 512 is next, where the method ends. However, if the test of operation 508 determines there is no active task, then operation 514 is next where the discovery and rules checking process starts. As the flow chart shows, there may be a deployment if certain criteria are met. In operation 516 the next deployment rule is checked. This includes comparing the data processing system attributes to the rule attributes, starting at the first rule and stopping at the first applicable rule. Operation 518 is next, where a test is made to determine if the data processing system matches the rule. If the test of operation 518 determines a match, operation 520 is next, where a test is made to determine if the rule is a one-click or zero-click rule. If the rule is a one-click rule, step AA on FIG. 5B is next. If the rule is a zero-click rule, step BB on FIG. 5B is next. However, if the data processing system does not match the rule, then operation 522 is next, where a test is made to determine if there are more rules. If there are more rules, then operation 516 is repeated. If there are no more rules, then operation 524 is next, where the action is performed, and a user-editable server setting can specify the action. Then operation 526 is next, where the method ends.
  • FIG. 5B continues the process flow chart starting at step AA for one-click deployment and starting at BB for zero-click deployment, as illustrated on FIG. 5A for one embodiment of the invention. The method continues from step AA for a one-click rule in [0059] operation 528, where the pending task is added to the task manager. Operation 530 is next, where the pending task is displayed to a user. Operation 532 is next, where a test is made to determine if the user accepts or deletes the task. If the user chooses deletion, then operation 534 is next, where the pending task is deleted from the scheduler. Operation 536 is next, where the method ends. However, if user accepts the task, then operation 538 is next, where the pending task is set to active and operation 542 is next.
  • The method continues from step BB for a zero-click rule in [0060] operation 540, where the pending task is added to the scheduler. Operation 542 is next, where the task manager starts the task. Operation 544 is next, where the action results are returned to a database (e.g., on a dedicated server). The method ends in operation 546.
  • FIG. 6 illustrates a more detailed flow chart of a method for deploying data processing system(s) in accordance with one embodiment of the invention. The method starts in [0061] operation 602. In operation 604, the deployment process begins by the selection of the type of action needed. In operation 606, a test is made to determine if there is a need for a new rule, to view a rule, enable/disable/delete a rule, or change a rule priority. If a new rule is needed, then operation 608 is next, where the deployment package is selected (e.g., the images of the data processing system). Then operation 616 is next, where the deployment action is set. Operation 618 is next, where the activation settings are set. Operation 620 is next, where the expiration options are set. Then operation 622 is next with a return to the rule menu. If the test of operation 606 determines there is a need to view a rule, then operation 612 is next, where the rule details, rule history, and associated rule information is shown. Then operation 622 is next with a return to the rule menu. If the test of operation 606 determines there is a need to enable a rule, disable a rule, or delete a rule, then operation 614 is next, where a request for confirmation is made to enable the rule, disable the rule, or delete the rule. Then operation 622 is next with a return to the rule menu. If the test of operation 606 determines there is a need to change a rule priority, then operation 610 is next, where a the current list of rule priorities is shown and modifications are allowed. Then operation 622 is next with a return to the rule menu. The method ends in operation 624. Preferably, the rules are active in the background of the deployment center.
  • In a more preferred embodiment, events are added and may be scheduled using the functional area menu item. Then scheduled events may be manipulated using the scheduler options shown in FIG. 7, where the rules listed in FIG. 6 are also seen. [0062]
  • FIG. 7 illustrates a flow chart of the scheduler, in accordance with one preferred embodiment of the invention. The method starts in [0063] operation 702. In operation 704, the user begins by entering a GUI main menu. Operation 706 is next, where the scheduler menu is entered. Operation 708 is next, where all the scheduled tasks are shown (including the one-click or zero-click deployment rules), and indicated by one-click or zero-click deployment rules, sorted by date and time (or by some other convenient characteristic). A test is made to determine if the selection is to view the event details, edit an event, or delete an event. If the test of operation 708 determines the event details are to be viewed, then operation 710 is next, where the event details, event history, and other information are shown. Then operation 718 is next, where there is a return to the top-level menu. If the test of operation 708 determines an event is to be edited, then operation 712 is next, where the event editing functional area of the GUI is entered and all the data for event editing is loaded. Then operation 716 is next, where the data is saved and the scheduler tasks are updated. Then operation 718 is next, where there is a return to the top-level menu. If the test of operation 708 determines that an event is to be deleted, then operation 714 is next, where a confirmation is requested before the event deletion proceeds. Then operation 718 is next, where there is a return to the top-level menu.
  • FIG. 8 illustrates a flow chart involving asset management of one or more data processing systems, in accordance with one preferred embodiment of the invention. The method starts in [0064] operation 802. Operation 804 is next, where edit system information option is selected. Operation 806 is next, where the system information option is selected: default information or individual information. If the test of operation 806 determines a default information option is selected, then operation 808 is next. Then operation 810 is next, where the group and/or system(s) are selected. Then operation 812 is next, where the default information is entered. Then operation 822 is next, where the update is initiated. If the test of operation 806 determines an individual information option is selected, then operation 814 is next. Then operation 816 is next, where the single system is selected. Then operation 818 is next, where the individual system information is displayed. Then operation 820 is next, where the individual system information is entered. Then operation 822 is next, where the update is initiated. Operation 824 is next, where an update confirmation is displayed. The method ends in operation 826.
  • FIG. 9 illustrates the relationship between attribute match criteria and various types of deployment, in accordance with various embodiments of the invention. Three different types of deployment embodiments are shown: one-[0065] click deployment 902, zero-click deployment 904, and multi-click deployment 906. In cases where there is no attribute match criteria specified, deployment involves a “trivial filter” 908. In cases where there is one or more attribute match criteria specified, deployment involves a “match criteria/filter” 910. In the case where the deployment is done through the “trivial filter” 908, the next step is to “allow deployment” 930. In the case where there is a mismatch in attribute matching in the “match criteria/filter” 910, the next step is to “generate error/warning” 920, which is then followed by the step “allow deployment” 930. Preferred embodiments handle an attribute match failure by generating an error or warning before automatically continuing with deployment (e.g., when there is a “minor” mismatch/error in attributes), by generating an error or warning and stopping deployment (e.g., when there is a “major” mismatch/error in attributes), or by generating an error or warning, and suspending deployment until the deployment software decides to continue with deployment (e.g., when there is a mismatch/error in attributes).
  • The exemplary embodiments described herein are for purposes of illustration and are not intended to be limiting. Therefore, those skilled in the art will recognize that other embodiments could be practiced without departing from the scope and spirit of the claims set forth below. [0066]

Claims (20)

What is claimed is:
1. A method to deploy one or more data processing systems, comprising:
capturing deployment information from a reference data processing system to deploy on said one or more data processing systems, wherein said deployment information is stored in a memory;
selecting said one or more data processing systems;
selecting a package of said deployment information to be deployed on said one or more data processing systems; and
intelligently deploying said one or more data processing systems without human intervention, wherein said intelligently deploying is based on said deployment information that was captured, and includes referencing said package of said deployment information that is stored in said memory.
2. The method of claim 1, wherein said deployment information in said memory is stored on a dedicated data processing system connected to a computer network.
3. The method of claim 1, wherein capturing said deployment information includes refreshing said deployment information.
4. The method of claim 1, wherein capturing said deployment information includes referencing deployment information stored from a previous instance of deployment of one or more data processing systems.
5. The method of claim 1, wherein said deployment information includes information selected from the group of information consisting of: disk drive partitions, disk drive settings, firmware settings, fixed code settings, operating system information, application software package information, personalization information, and configuration information.
6. The method of claim 1, wherein said deployment information includes a hardware portion of a configuration and a remaining portion of said configuration, and said intelligently deploying can update said hardware portion of said configuration on a data processing system of said one or more data processing systems before software image deployment, without destructively modifying said remaining portion of said configuration of said one or more data processing systems.
7. The method of claim 1, wherein said deployment information includes a hardware portion of a configuration and a remaining portion of said configuration, and said intelligently deploying can update said hardware portion of said configuration on a data processing system of said one or more data processing systems that has already been configured, without destructively modifying said remaining portion of said configuration of said one or more data processing systems.
8. A computer network to facilitate the intelligent deployment of one or more data processing systems, comprising:
one or more data processing systems to be intelligently deployed;
one or more reference data processing systems containing deployment information;
a means for transmission capable of conveying said deployment information to said one or more data processing systems without human intervention; and
a dedicated data processing system containing deployment information copied from said one or more reference data processing systems, wherein said dedicated data processing system conveys to said one or more data processing systems over said means for transmission a package of deployment information selected from said deployment information, which is based on said deployment information that was captured.
9. The computer network of claim 8, further comprising:
a memory in said dedicated data processing system to store said package of said deployment information.
10. The computer network of claim 8, wherein capturing said deployment information includes referencing deployment information stored from a previous instance of intelligent deployment of one or more data processing systems.
11. The computer network of claim 8, wherein said deployment information includes information selected from the group of information consisting of: disk drive partitions, disk drive settings, firmware settings, fixed code settings, operating system information, application software package information, personalization information, and configuration information.
12. The computer network of claim 8, wherein said deployment information includes a hardware portion of a configuration and a remaining portion of said configuration, and said computer network can update said hardware portion of said configuration on a data processing system of said one or more data processing systems before software image deployment, without destructively modifying said remaining portion of said configuration of said one or more data processing systems.
13. The computer network of claim 8, wherein said deployment information includes a hardware portion of a configuration and a remaining portion of said configuration, and said computer network can update said hardware portion of said configuration on a data processing system of said one or more data processing systems that has already been configured, without destructively modifying said remaining portion of said configuration of said one or more data processing systems.
14. A computer program embodied on electronically-readable media, containing instructions to facilitate the deployment of one or more data processing systems, comprising:
a program code segment to capture deployment information from a reference data processing system to deploy on said one or more data processing systems, wherein said deployment information is stored in a memory;
a program code segment to select said one or more data processing systems;
a program code segment to select a package of said deployment information to be deployed on said one or more data processing systems; and
a program code segment to intelligently deploy said one or more data processing systems without human intervention, including program code to reference said package of said deployment information that is stored in said memory.
15. The computer program of claim 14, wherein said memory that stores said package of said deployment information is included in a dedicated data processing system.
16. The computer program of claim 14, wherein said program code segment to capture deployment information from a reference data processing system to deploy on said one or more data processing systems is executed on a data processing system coupled to a network of data processing systems.
17. The computer program of claim 14, wherein said program code segment to select one or more data processing systems to be included in said one or more data processing systems is executed on a data processing system coupled to a network of data processing systems.
18. The computer program of claim 14, wherein said program code segment to select a package of said deployment information to be deployed on said one or more data processing systems is executed on a data processing system coupled to a network of data processing systems.
19. The computer program of claim 14, wherein said program code segment to intelligently deploy said one or more data processing systems interacts with an Internet server.
20. The computer program of claim 14, wherein said electronically-readable memory is a non-volatile memory selected from the group of non-volatile memories consisting of: a magnetic disk drive, a magneto-optic disk drive, a floppy diskette, a compact disc, and a flash memory.
US09/953,396 2001-08-30 2001-09-14 Zero-click deployment of data processing systems Expired - Fee Related US6944653B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US09/953,396 US6944653B2 (en) 2001-08-30 2001-09-14 Zero-click deployment of data processing systems

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/944,313 US20030055919A1 (en) 2001-08-30 2001-08-30 One-click deployment of data processing systems
US09/953,396 US6944653B2 (en) 2001-08-30 2001-09-14 Zero-click deployment of data processing systems

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US09/944,313 Continuation-In-Part US20030055919A1 (en) 2001-08-30 2001-08-30 One-click deployment of data processing systems

Publications (2)

Publication Number Publication Date
US20030069951A1 true US20030069951A1 (en) 2003-04-10
US6944653B2 US6944653B2 (en) 2005-09-13

Family

ID=46280082

Family Applications (1)

Application Number Title Priority Date Filing Date
US09/953,396 Expired - Fee Related US6944653B2 (en) 2001-08-30 2001-09-14 Zero-click deployment of data processing systems

Country Status (1)

Country Link
US (1) US6944653B2 (en)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040103274A1 (en) * 2002-09-23 2004-05-27 Kuo Shih-Chieh System and method for transferring user system settings between computer systems and storage medium
US20060143362A1 (en) * 2004-12-29 2006-06-29 Cong Li Apparatus and method for incremental package deployment
US20060143137A1 (en) * 2004-12-29 2006-06-29 Howard Herbert Protecting privacy of networked devices containing management subsystems
US20060168196A1 (en) * 2004-12-30 2006-07-27 Howard Herbert Automated provisioning of new networked devices
US20070282983A1 (en) * 2006-06-05 2007-12-06 Manoj Gujarathi System and Method for Information Handling System Management With a Directory Service Tool Box
US20080141015A1 (en) * 2006-12-06 2008-06-12 Glen Edmond Chalemin System and method for operating system deployment in a peer-to-peer computing environment
US20080141235A1 (en) * 2006-12-12 2008-06-12 Russell Woodbury System and Method for Transparent Hard Disk Drive Update
US20080155075A1 (en) * 2003-12-31 2008-06-26 Daryl Carvis Cromer Remote management of boot application
US20080172553A1 (en) * 2007-01-11 2008-07-17 Childress Rhonda L Data center boot order control
US7680957B1 (en) * 2003-05-09 2010-03-16 Symantec Operating Corporation Computer system configuration representation and transfer
US8769059B1 (en) * 2012-05-23 2014-07-01 Amazon Technologies, Inc. Best practice analysis, third-party plug-ins
US8954574B1 (en) 2012-05-23 2015-02-10 Amazon Technologies, Inc. Best practice analysis, migration advisor
CN106341486A (en) * 2016-09-29 2017-01-18 郑州云海信息技术有限公司 Oracle database automatic deployment tool and method
US9626710B1 (en) 2012-05-23 2017-04-18 Amazon Technologies, Inc. Best practice analysis, optimized resource use
US20200097146A1 (en) * 2018-09-21 2020-03-26 Sap Se Configuration Object Deletion Manager
US10705825B2 (en) * 2018-09-20 2020-07-07 Hewlett Packard Enterprise Development Lp Creation of images
US10740765B1 (en) 2012-05-23 2020-08-11 Amazon Technologies, Inc. Best practice analysis as a service

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2003297433A1 (en) * 2002-12-24 2004-07-22 Samrat Vasisht Method, system and device for automatically configuring a communications network
FR2852123A1 (en) * 2003-03-04 2004-09-10 Paul Saravanane Marechal Information system implementing and updating procedure, involves automatically generating information system from specifications related to one status, and deploying version on channels to set production related to another status
US7392324B2 (en) * 2004-08-13 2008-06-24 International Business Machines Corporation Consistent snapshots of dynamic heterogeneously managed data
US7805495B2 (en) 2005-03-31 2010-09-28 Google Inc. Method and system for transferring web browser data between web browsers
US8756298B2 (en) * 2005-12-21 2014-06-17 Cisco Technology, Inc. System for automatic configuration of computers in a server farm
US7886292B2 (en) * 2006-10-05 2011-02-08 International Business Machines Corporation Methodology of individualized software deployment for hardware-independent personal computer mass development
US9251498B2 (en) * 2006-10-23 2016-02-02 Oracle International Corporation Facilitating deployment of customizations of enterprise applications
JP4670907B2 (en) * 2008-06-13 2011-04-13 コニカミノルタビジネステクノロジーズ株式会社 Image processing apparatus, image processing system, and control program for image processing apparatus
US20110145275A1 (en) * 2009-06-19 2011-06-16 Moment Usa, Inc. Systems and methods of contextual user interfaces for display of media items
US8949410B2 (en) 2010-09-10 2015-02-03 Cisco Technology, Inc. Server load balancer scaling for virtual servers
US9154549B2 (en) 2011-10-27 2015-10-06 Cisco Technology, Inc. Dynamic server farms
US10291467B2 (en) 2016-09-16 2019-05-14 Oracle International Corporation Deploying a server stack having a cross-server dependency

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6092169A (en) * 1997-04-02 2000-07-18 Compaq Computer Corporation Apparatus and method for storage subsystem drive movement and volume addition
US6173291B1 (en) * 1997-09-26 2001-01-09 Powerquest Corporation Method and apparatus for recovering data from damaged or corrupted file storage media
US6189108B1 (en) * 1998-02-19 2001-02-13 International Business Machine Corporation Reporting of power states for a network connected PC
US6237020B1 (en) * 1996-10-01 2001-05-22 International Business Machines Corporation Task-oriented automatic distribution of software
US6353927B1 (en) * 1997-10-14 2002-03-05 Lucent Technologies Inc. Data download technique into installed memory
US6405309B1 (en) * 1999-06-18 2002-06-11 Phoenix Technologies Ltd. Method and apparatus for creating and deploying smaller Microsoft Windows applications for automatic configuration of a computing device
US6466972B1 (en) * 1999-03-31 2002-10-15 International Business Machines Corporation Server based configuration of network computers via machine classes
US6782527B1 (en) * 2000-01-28 2004-08-24 Networks Associates, Inc. System and method for efficient distribution of application services to a plurality of computing appliances organized as subnets
US6810364B2 (en) * 2000-02-04 2004-10-26 International Business Machines Corporation Automated testing of computer system components

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6237020B1 (en) * 1996-10-01 2001-05-22 International Business Machines Corporation Task-oriented automatic distribution of software
US6092169A (en) * 1997-04-02 2000-07-18 Compaq Computer Corporation Apparatus and method for storage subsystem drive movement and volume addition
US6173291B1 (en) * 1997-09-26 2001-01-09 Powerquest Corporation Method and apparatus for recovering data from damaged or corrupted file storage media
US6353927B1 (en) * 1997-10-14 2002-03-05 Lucent Technologies Inc. Data download technique into installed memory
US6189108B1 (en) * 1998-02-19 2001-02-13 International Business Machine Corporation Reporting of power states for a network connected PC
US6466972B1 (en) * 1999-03-31 2002-10-15 International Business Machines Corporation Server based configuration of network computers via machine classes
US6405309B1 (en) * 1999-06-18 2002-06-11 Phoenix Technologies Ltd. Method and apparatus for creating and deploying smaller Microsoft Windows applications for automatic configuration of a computing device
US6782527B1 (en) * 2000-01-28 2004-08-24 Networks Associates, Inc. System and method for efficient distribution of application services to a plurality of computing appliances organized as subnets
US6810364B2 (en) * 2000-02-04 2004-10-26 International Business Machines Corporation Automated testing of computer system components

Cited By (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040103274A1 (en) * 2002-09-23 2004-05-27 Kuo Shih-Chieh System and method for transferring user system settings between computer systems and storage medium
US7680957B1 (en) * 2003-05-09 2010-03-16 Symantec Operating Corporation Computer system configuration representation and transfer
US8862709B2 (en) * 2003-12-31 2014-10-14 International Business Machines Corporation Remote management of boot application
US8677117B2 (en) 2003-12-31 2014-03-18 International Business Machines Corporation Remote management of boot application
US20080155075A1 (en) * 2003-12-31 2008-06-26 Daryl Carvis Cromer Remote management of boot application
US7979702B2 (en) 2004-12-29 2011-07-12 Intel Corporation Protecting privacy of networked devices containing management subsystems
US8225037B2 (en) 2004-12-29 2012-07-17 Intel Corporation Apparatus and method for incremental package deployment
US7991950B2 (en) 2004-12-29 2011-08-02 Intel Corporation Apparatus and method for incremental package deployment
US20060143137A1 (en) * 2004-12-29 2006-06-29 Howard Herbert Protecting privacy of networked devices containing management subsystems
US20090254723A1 (en) * 2004-12-29 2009-10-08 Cong Li Apparatus and method for incremental package deployment
US7613875B2 (en) * 2004-12-29 2009-11-03 Intel Corporation Apparatus and method for incremental package deployment
US20060143362A1 (en) * 2004-12-29 2006-06-29 Cong Li Apparatus and method for incremental package deployment
US8799428B2 (en) * 2004-12-30 2014-08-05 Intel Corporation Automated provisioning of new networked devices
US20060168196A1 (en) * 2004-12-30 2006-07-27 Howard Herbert Automated provisioning of new networked devices
US20070282983A1 (en) * 2006-06-05 2007-12-06 Manoj Gujarathi System and Method for Information Handling System Management With a Directory Service Tool Box
US20080141015A1 (en) * 2006-12-06 2008-06-12 Glen Edmond Chalemin System and method for operating system deployment in a peer-to-peer computing environment
US20080141235A1 (en) * 2006-12-12 2008-06-12 Russell Woodbury System and Method for Transparent Hard Disk Drive Update
US8271968B2 (en) * 2006-12-12 2012-09-18 Dell Products L.P. System and method for transparent hard disk drive update
US20080172553A1 (en) * 2007-01-11 2008-07-17 Childress Rhonda L Data center boot order control
US7818621B2 (en) 2007-01-11 2010-10-19 International Business Machines Corporation Data center boot order control
US10740765B1 (en) 2012-05-23 2020-08-11 Amazon Technologies, Inc. Best practice analysis as a service
US8954574B1 (en) 2012-05-23 2015-02-10 Amazon Technologies, Inc. Best practice analysis, migration advisor
US9197502B1 (en) 2012-05-23 2015-11-24 Amazon Technologies, Inc. Best practice analysis, migration advisor
US9219648B1 (en) 2012-05-23 2015-12-22 Amazon Technologies, Inc. Best practice analysis, automatic remediation
US9455871B1 (en) 2012-05-23 2016-09-27 Amazon Technologies, Inc. Best practice analysis, migration advisor
US8769059B1 (en) * 2012-05-23 2014-07-01 Amazon Technologies, Inc. Best practice analysis, third-party plug-ins
US9626710B1 (en) 2012-05-23 2017-04-18 Amazon Technologies, Inc. Best practice analysis, optimized resource use
US11030669B1 (en) 2012-05-23 2021-06-08 Amazon Technologies, Inc. Best practice analysis, optimized resource use
CN106341486A (en) * 2016-09-29 2017-01-18 郑州云海信息技术有限公司 Oracle database automatic deployment tool and method
US10705825B2 (en) * 2018-09-20 2020-07-07 Hewlett Packard Enterprise Development Lp Creation of images
US20200097146A1 (en) * 2018-09-21 2020-03-26 Sap Se Configuration Object Deletion Manager
US11175802B2 (en) * 2018-09-21 2021-11-16 Sap Se Configuration object deletion manager

Also Published As

Publication number Publication date
US6944653B2 (en) 2005-09-13

Similar Documents

Publication Publication Date Title
US6944653B2 (en) Zero-click deployment of data processing systems
US20030055919A1 (en) One-click deployment of data processing systems
US7703091B1 (en) Methods and apparatus for installing agents in a managed network
US7788350B2 (en) Software distribution application supporting operating system installations
US6816964B1 (en) System, method and medium storing a program controlling a computer, to install a program remotely and automatically into a client by pre-downloaded agent using managing record recording an install execution state of the client and execution control information
US7584349B2 (en) Method and system for receiving a software image from a customer for installation into a computer system
JP4716637B2 (en) System and method for automating management of computer services and programmable devices
US7448034B2 (en) Build time determination and installation of drivers on cloned systems
US7120684B2 (en) Method and system for central management of a computer network
US6857011B2 (en) Method of remote imaging
US7216200B2 (en) System and method for remote RAID configuration
US8060542B2 (en) Template-based development of servers
US9465625B2 (en) Provisioning of operating environments on a server in a networked environment
US20040025155A1 (en) Method, computer program product, and system for configuring a software image for installation into a computer system
US7680957B1 (en) Computer system configuration representation and transfer
US8010513B2 (en) Use of server instances and processing elements to define a server
US20120262466A1 (en) System and method for remotely re-imaging a computer system
JP2009110505A (en) System and method for patching computer program
EP2008400A1 (en) Method, system and computer program for the centralized system management on endpoints of a distributed data processing system
US7228344B2 (en) High availability enhancement for servers using structured query language (SQL)
CN1834912B (en) ISCSI bootstrap driving system and method for expandable internet engine
JP2003099146A (en) System for controlling start of computer system
KR20150134704A (en) Client PC using a network drive system and control method
Alliance Reference Model and Use Cases
JP2007233940A (en) Patch application control method

Legal Events

Date Code Title Description
AS Assignment

Owner name: HEWLETT-PACKARD COMPANY, COLORADO

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:FONG, RYAN PATRICK;HU, DAVID J.;REEL/FRAME:012921/0740

Effective date: 20010914

AS Assignment

Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY L.P., TEXAS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEWLETT-PACKARD COMPANY;REEL/FRAME:014061/0492

Effective date: 20030926

Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY L.P.,TEXAS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEWLETT-PACKARD COMPANY;REEL/FRAME:014061/0492

Effective date: 20030926

FPAY Fee payment

Year of fee payment: 4

REMI Maintenance fee reminder mailed
LAPS Lapse for failure to pay maintenance fees
STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20130913