Active System Manager Release 8.
Notes, cautions, and warnings NOTE: A NOTE indicates important information that helps you make better use of your computer. CAUTION: A CAUTION indicates either potential damage to hardware or loss of data and tells you how to avoid the problem. WARNING: A WARNING indicates a potential for property damage, personal injury, or death. © 2016 Dell Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws.
Contents 1 Overview......................................................................................................................... 4 Other Documents You May Need....................................................................................................................................... 4 2 Uploading an Application Module.................................................................................... 5 3 Content of an Application Module................................................
1 Overview ASM is intended to automate the processes involved in provisioning, configuring, and managing bare metal hardware: chassis, servers, switches, and networked storage devices. ASM helps in automating processes related to hardware discovery, operating system installation, virtual network creation, and firmware management. At the highest level of the deployment stack, ASM has the ability to install certain applications on a provisioned machine as part of the deployment process.
2 Uploading an Application Module Application modules are uploaded to ASM from the Settings → Add-On Modules page. Supported formats for module uploads are .zip files. NOTE: If you attempt to upload a standard Puppet module, you receive an error message that the required file asm_input.json is missing.
3 Content of an Application Module An Application Module is typically a Puppet module plus one additional metadata file called asm_input.json. Technically, the minimal Application module could include only an asm_input.json file with nothing else, acting simply as a manifest or partial manifest. In that case, any required classes should already have been included in another application module or modules. Here is an example layout of the application module directory for the more typical case.
4 Structure of ASM_INPUT.JSON A basic example of asm_input.json with the fields, classes, and types. A detailed explanation of this follows in the next subsection. { } "name": "my_module", "version": "0.1.0", "operatingSystemSupport": [ { "operatingSystem": "RedHat", "releaseVersions": [ "5", "6", "7" ] }, ], "requirements": [ { "name": "pe", "versionRequirement": ">= 3.0.0 & 2015.3.0" }, { "name": "puppet", "versionRequirement": ">= 3.0.0 & 5.0.0" } ], "classes": [ ... ], "types": [ ...
NOTE: Because of the semantic version of library used, the puppet intersection expression, >=3.4.0<5.0.0, should be expressed differently as, >=3.4.0 & 5.0.0. • classes: A list of Puppet classes that the Application Module wants to instantiate and expose through the ASM UI. The format is discussed in more detail following. Classes in Puppet are singletons, so only one instance of any class component can be attached to a given ASM server or VM component.
5 Class and Type Structure Here is an example of a class or type element inside the classes or tyes arrays: { } "id": "component-linux_postinstall-1", "componentValid": { "valid": true }, "name": "linux_postinstall", "type": "SERVICE", "teardown": false, "resources": [ { "id": "linux_postinstall", "displayName": "Application Settings", "parameters": [ { "id": "install_packages", "type": "STRING", "displayName": "Install Packages", "required": true, "requiredAtDeployment": false, "hideFromTemplate": false,
} 10 yum_proxy => ''
6 Module Dependencies Access to the ASM appliance could allow one to load Puppet modules on the Puppet master. But barring login access, any Puppet module dependencies must be uploaded to ASM in the same way as the application module that depends on them. That is to say, for each dependency module we must add an asm_input.json file to the Puppet module, zip it, and then upload it to ASM in order to satisfy the dependency. For example, puppetlabs-apache depends on the module puppetlabs-concat.
A Appendix A Example code { 12 "requirements": [ { "name": "pe", "versionRequirement": ">= 3.0.0 & < 2015.4.0" }, { "name": "puppet", "versionRequirement": ">= 3.0.0 & < 5.0.0" } ], "operatingSystemSupport": [ { "operatingSystem": "RedHat", "releaseVersions": [ "6", "7" ] }, { "operatingSystem": "Debian", "releaseVersions": [ "7.8", "8" ] }, { "operatingSystem": "Ubuntu", "releaseVersions": [ "12.04", "14.
{ ] } ] } "id": "say_something", "displayName": "say_something", "parameters": [ { "id": "title", "type": "STRING", "displayName": "Content", "required": true }, { "id": "ensure", "type": "STRING", "value": "present", "displayName": "Ensure", "required": true } ] }, 13