Patent ID: 8438559

Claim:
A method for platform-agnostic software installation, comprising: obtaining a first knowledge package, wherein the first knowledge package comprises guidelines for obtaining and installing a first plurality of software deliverables, wherein the first knowledge package defines the order in which the first plurality of software deliverables should be installed on at least one of a plurality of managed hosts and wherein the first knowledge package is platform-specific to a first operating system platform; obtaining a second knowledge package, wherein the second knowledge package comprises guidelines for obtaining and installing a second plurality of software deliverables, wherein the second knowledge package defines the order in which the second plurality of software deliverables should be installed on at least one of a plurality of managed hosts, wherein the second knowledge package is platform-specific to a second operating system platform, wherein the first operating system platform and the second operating system platform are different, and wherein the first knowledge package and the second knowledge package are different; obtaining a profile, wherein the profile is platform-agnostic, wherein the profile comprises data indicating a desired system state for a managed host, and wherein the profile comprises a first plurality of platform-specific components and a second plurality of platform-specific components; distributing the first knowledge package and the profile to a first managed host of the plurality of managed hosts, wherein the first managed host has the first operating system platform; distributing the second knowledge package and the profile to a second managed host of the plurality of managed hosts, wherein the second managed host has the second operating system platform; after distributing: filtering, by a first job agent executing on the first managed host, the profile based on the first knowledge package to obtain a first platform-specific profile for the first managed host, wherein the first platform-specific profile comprises the first plurality of platform-specific components; and filtering, by a second job agent executing on the second managed host, the profile based on the second knowledge package to obtain a second platform-specific profile for the second managed host, wherein the second platform-specific profile comprises the second plurality of platform-specific components, and wherein the first plurality of platform-specific components and the second plurality of platform-specific components are different; updating the first managed host to the desired system state using the first platform-specific profile; and updating the second managed host to the desired system state using the second platform-specific profile.