dellemc / dellemc.openmanage / 2.1.5 / module / ome_template Create, modify, deploy, delete, export, import and clone a template on OpenManage Enterprise. | "added in version" 2.9.10 of dellemc.openmanage" Authors: Jagadeesh N V (@jagadeeshnv) preview | supported by communitydellemc.openmanage.ome_template (2.1.5) — module
Install with ansible-galaxy collection install dellemc.openmanage:==2.1.5
collections: - name: dellemc.openmanage version: 2.1.5
This module creates, modifies, deploys, deletes, exports, imports and clones a template on OpenManage Enterprise.
--- - name: "Create a template from a reference device." dellemc.openmanage.ome_template: hostname: "192.168.0.1" username: "username" password: "password" device_id: 25123 attributes: Name: "New Template" Description: "New Template description"
- name: "Modify template name, description, and attribute value." dellemc.openmanage.ome_template: hostname: "192.168.0.1" username: "username" password: "password" command: "modify" template_id: 12 attributes: Name: "New Custom Template" Description: "Custom Template Description" # Attributes to be modified in the template. # For information on any attribute id, use API /TemplateService/Templates(Id)/Views(Id)/AttributeViewDetails # This section is optional Attributes: - Id: 1234 Value: "Test Attribute" IsIgnored: false
- name: "Deploy template on multiple devices " dellemc.openmanage.ome_template: hostname: "192.168.0.1" username: "username" password: "password" command: "deploy" template_id: 12 device_id: - 12765 - 10173 device_service_tag: - 'SVTG123' - 'SVTG456'
- name: "Deploy template on multiple devices along with the attributes values to be modified on the target devices." dellemc.openmanage.ome_template: hostname: "192.168.0.1" username: "username" password: "password" command: "deploy" template_id: 12 device_id: - 12765 - 10173 device_service_tag: - 'SVTG123' attributes: # Device specific attributes to be modified during deployment. # For information on any attribute id, use API /TemplateService/Templates(Id)/Views(Id)/AttributeViewDetails # This section is optional Attributes: # specific device where attribute to be modified at deployment run-time. # The DeviceId should be mentioned above in the 'device_id' section. # Service tags not allowed. - DeviceId: 12765 Attributes: - Id : 15645 Value : "0.0.0.0" IsIgnored : false - DeviceId: 10173 Attributes: - Id : 18968, Value : "hostname-1" IsIgnored : false
- name: "Deploy template and Operating System (OS) on multiple devices" dellemc.openmanage.ome_template: hostname: "192.168.0.1" username: "username" password: "password" command: "deploy" template_id: 12 device_id: - 12765 device_service_tag: - 'SVTG123' attributes: # Include this to install OS on the devices. # This section is optional NetworkBootIsoModel: BootToNetwork: true ShareType: "NFS" IsoTimeout: 1 # allowable values(1,2,4,8,16) in hours IsoPath: "/home/iso_path/filename.iso" ShareDetail: IpAddress: "192.168.0.2" ShareName: "sharename" User: "share_user" Password: "share_password" Options: EndHostPowerState: 1 ShutdownType: 0 TimeToWaitBeforeShutdown: 300 Schedule: RunLater: true RunNow: false
- name: "Deploy template on multiple devices and changes the device-level attributes. After the template is deployed, install OS using its image." dellemc.openmanage.ome_template: hostname: "192.168.0.1" username: "username" password: "password" command: "deploy" template_id: 12 device_id: - 12765 - 10173 device_service_tag: - 'SVTG123' - 'SVTG456' attributes: Attributes: - DeviceId: 12765 Attributes: - Id : 15645 Value : "0.0.0.0" IsIgnored : false - DeviceId: 10173 Attributes: - Id : 18968, Value : "hostname-1" IsIgnored : false NetworkBootIsoModel: BootToNetwork: true ShareType: "NFS" IsoTimeout: 1 # allowable values(1,2,4,8,16) in hours IsoPath: "/home/iso_path/filename.iso" ShareDetail: IpAddress: "192.168.0.2" ShareName: "sharename" User: "share_user" Password: "share_password" Options: EndHostPowerState: 1 ShutdownType: 0 TimeToWaitBeforeShutdown: 300 Schedule: RunLater: true RunNow: false
- name: "delete template" dellemc.openmanage.ome_template: hostname: "192.168.0.1" username: "username" password: "password" command: "delete" template_id: 12
- name: "export a template" dellemc.openmanage.ome_template: hostname: "192.168.0.1" username: "username" password: "password" command: "export" template_id: 12
# Start of example to export template to a local xml file - name: "export template to a local xml file" dellemc.openmanage.ome_template: hostname: "192.168.0.1" username: "username" password: "password" command: "export" template_name: "my_template" register: result tags: - export_xml_to_file
- copy: content: "{{ result.Content}}" dest: "/path/to/exported_template.xml" tags: - export_xml_to_file
# End of example to export template to a local xml file - name: "clone a template" dellemc.openmanage.ome_template: hostname: "192.168.0.1" username: "username" password: "password" command: "clone" template_id: 12 attributes: Name: "New Cloned Template Name"
- name: "import template from XML content" dellemc.openmanage.ome_template: hostname: "192.168.0.1" username: "username" password: "password" command: "import" attributes: Name: "Imported Template Name" # Template Type from TemplateService/TemplateTypes Type: 2 # xml string content Content: "<SystemConfiguration Model=\"PowerEdge R940\" ServiceTag=\"SVCTAG1\" TimeStamp=\"Tue Sep 24 09:20:57.872551 2019\">\n<Component FQDD=\"AHCI.Slot.6-1\">\n<Attribute Name=\"RAIDresetConfig\">True</Attribute>\n<Attribute Name=\"RAIDforeignConfig\">Clear</Attribute>\n </Component>\n<Component FQDD=\"Disk.Direct.0-0:AHCI.Slot.6-1\">\n<Attribute Name=\"RAIDPDState\">Ready </Attribute>\n<Attribute Name=\"RAIDHotSpareStatus\">No</Attribute>\n</Component>\n <Component FQDD=\"Disk.Direct.1-1:AHCI.Slot.6-1\">\n<Attribute Name=\"RAIDPDState\">Ready</Attribute>\n <Attribute Name=\"RAIDHotSpareStatus\">No</Attribute>\n</Component>\n</SystemConfiguration>\n"
- name: "import template from local XML file" dellemc.openmanage.ome_template: hostname: "192.168.0.1" username: "username" password: "password" command: "import" attributes: Name: "Imported Template Name" Type: 2 Content: "{{ lookup('file', '/path/to/xmlfile') }}"
port: default: 443 description: Target HTTPS port. type: int command: aliases: - state choices: - create - modify - deploy - delete - export - import - clone default: create description: - C(create) creates a new template. - C(modify) modifies an existing template. - C(deploy) creates a template-deployment job. - C(delete) deletes an existing template. - C(export) exports an existing template. - C(import) creates a template from a specified configuration text in SCP XML format. - C(clone) creates a clone of a existing template. type: str hostname: description: Target IP address or hostname. required: true type: str password: description: Target user password. required: true type: str username: description: Target username. required: true type: str device_id: default: [] description: - Specify the list of targeted device ID(s) when I(command) is C(deploy). When I (Command) is C(create), specify the ID of a single device. - Either I(device_id) or I(device_service_tag) is mandatory or both can be applicable. elements: int type: list attributes: default: {} description: - Payload data for the template operations. All the variables in this option are added as payload for C(create), C(modify), C(deploy), C(import), and C(clone) operations. It takes the following attributes. - 'Attributes: List of dictionaries of attributes (if any) to be modified in the deployment template. This is applicable when I(command) is C(deploy) and C(modify.' - 'Name: Name of the template. This is mandatory when I(command) is C(create), C(import), C(clone), and optional when I(command) is C(modify).' - 'Description: Description for the template. This is applicable when I(command) is C(create) or C(modify).' - 'Fqdds: This allows to create a template using components from a specified reference server. One or more, of the following values must be specified in a comma-separated string: iDRAC, System, BIOS, NIC, LifeCycleController, RAID, and EventFilters. If none of the values are specified, the default value ''All'' is selected. This is applicable when I (command) is C(create).' - 'Options: Options to control device shutdown or end power state post template deployment. This is applicable for C(deploy) operation.' - 'Schedule: Provides options to schedule the deployment task immediately, or at a specified time. This is applicable when I(command) is C(deploy).' - 'NetworkBootIsoModel: Payload to specify the ISO deployment details. This is applicable when I(command) is C(deploy).' - 'Content: The XML content of template. This is applicable when I(command) is C(import).' - 'Type: Template type ID, indicating the type of device for which configuration is supported, such as chassis and servers. This is applicable when I(command) is C(import).' - 'TypeId: Template type ID, indicating the type of device for which configuration is supported, such as chassis and servers. This is applicable when I(command) is C(create).' - Refer OpenManage Enterprise API Reference Guide for more details. type: dict template_id: description: - ID of the existing template. - This option is applicable when I(command) is C(modify), C(deploy), C(delete) and C(export). - This option is mutually exclusive with I(template_name). type: int template_name: description: - Name of the existing template. - This option is applicable when I(command) is C(modify), C(deploy), C(delete) and C(export). - This option is mutually exclusive with I(template_id). type: str device_service_tag: default: [] description: - Specify the list of targeted device service tags when I (command) is C(deploy). When I(Command) is C(create), specify the service tag of a single device - Either I(device_id) or I(device_service_tag) is mandatory or both can be applicable. elements: str type: list template_view_type: choices: - Deployment - Compliance - Inventory - Sample - None default: Deployment description: - Select the type of view of the OME template. - This is applicable when I(command) is C(create),C(clone) and C(import). type: str
Content: description: XML content of the exported template. This content can be written to a xml file. returned: success, when I(command) is C(export) sample: "<SystemConfiguration Model=\"PowerEdge R940\" ServiceTag=\"DG22TR2\" TimeStamp=\"\ Tue Sep 24 09:20:57.872551 2019\">\n<Component FQDD=\"AHCI.Slot.6-1\">\n<Attribute\ \ Name=\"RAIDresetConfig\">True</Attribute>\n<Attribute Name=\"RAIDforeignConfig\"\ >Clear</Attribute>\n</Component>\n<Component FQDD=\"Disk.Direct.0-0:AHCI.Slot.6-1\"\ >\n <Attribute Name=\"RAIDPDState\">Ready</Attribute>\n<Attribute Name=\"RAIDHotSpareStatus\"\ >No</Attribute>\n </Component>\n<Component FQDD=\"Disk.Direct.1-1:AHCI.Slot.6-1\"\ >\n<Attribute Name=\"RAIDPDState\">Ready </Attribute>\n<Attribute Name=\"RAIDHotSpareStatus\"\ >No</Attribute>\n</Component>\n</SystemConfiguration>\n" type: str TemplateId: description: ID of the template for C(export). returned: success, when I(command) is C(export) sample: 13 type: int error_info: description: Details of the HTTP Error. returned: on HTTP error sample: error: '@Message.ExtendedInfo': - Message: Unable to process the request because an error occurred. MessageArgs: [] MessageId: GEN1234 RelatedProperties: [] Resolution: Retry the operation. If the issue persists, contact your system administrator. Severity: Critical code: Base.1.0.GeneralError message: A general error has occurred. See ExtendedInfo for more information. type: dict msg: description: Overall status of the template operation. returned: always sample: Successfully created a template with ID 23 type: str return_id: description: ID of the template for C(create), C(modify), C(import) and C(clone) or task created in case of C(deploy) returned: success, when I(command) is C(create), C(modify), C(import), C(clone) and C(deploy) sample: 12 type: int