--- - hosts: ome connection: local name: Dell OpenManage Ansible device Template service. gather_facts: False collections: - dellemc.openmanage tasks: - name: "Create a template from a reference device." ome_template: hostname: "{{hostname}}" username: "{{username}}" password: "{{password}}" ca_path: "/path/to/ca_cert.pem" device_id: 25123 attributes: Name: "New Template" Description: "New Template description" - name: "Modify template name, description, and attribute value." ome_template: hostname: "{{hostname}}" username: "{{username}}" password: "{{password}}" ca_path: "/path/to/ca_cert.pem" 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: Modify template name, description, and attribute using detailed view ome_template: hostname: "{{hostname}}" username: "{{username}}" password: "{{password}}" ca_path: "/path/to/ca_cert.pem" command: "modify" template_id: 12 attributes: Name: "New Custom Template" Description: "Custom Template Description" Attributes: # Enter the comma separated string as appearing in the Detailed view on GUI # NIC -> NIC.Integrated.1-1-1 -> NIC Configuration -> Wake On LAN1 - DisplayName: 'NIC, NIC.Integrated.1-1-1, NIC Configuration, Wake On LAN' Value: Enabled IsIgnored: false # System -> LCD Configuration -> LCD 1 User Defined String for LCD - DisplayName: 'System, LCD Configuration, LCD 1 User Defined String for LCD' Value: LCD str by OMAM IsIgnored: false - name: "Deploy template on multiple devices " ome_template: hostname: "192.168.0.1" username: "username" password: "password" ca_path: "/path/to/ca_cert.pem" command: "deploy" template_id: 12 device_id: - 12765 - 10173 device_service_tag: - 'SVTG123' - 'SVTG456' - name: Deploy template on groups ome_template: hostname: "{{hostname}}" username: "{{username}}" password: "{{password}}" ca_path: "/path/to/ca_cert.pem" command: "deploy" template_id: 12 device_group_names: - server_group_1 - server_group_2 - name: "Deploy template on multiple devices along attributes modification for target device" ome_template: hostname: "{{hostname}}" username: "{{username}}" password: "{{password}}" ca_path: "/path/to/ca_cert.pem" 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" ome_template: hostname: "{{hostname}}" username: "{{username}}" password: "{{password}}" ca_path: "/path/to/ca_cert.pem" 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." ome_template: hostname: "{{hostname}}" username: "{{username}}" password: "{{password}}" ca_path: "/path/to/ca_cert.pem" 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" ome_template: hostname: "{{hostname}}" username: "{{username}}" password: "{{password}}" ca_path: "/path/to/ca_cert.pem" command: "delete" template_id: 12 - name: "export a template" ome_template: hostname: "{{hostname}}" username: "{{username}}" password: "{{password}}" ca_path: "/path/to/ca_cert.pem" command: "export" template_id: 12 # Start of example to export template to a local xml file - name: "export template to a local xml file" ome_template: hostname: "{{hostname}}" username: "{{username}}" password: "{{password}}" ca_path: "/path/to/ca_cert.pem" command: "export" template_name: "my_template" register: result tags: - export_xml_to_file - ansible.builtin.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" ome_template: hostname: "{{hostname}}" username: "{{username}}" password: "{{password}}" ca_path: "/path/to/ca_cert.pem" command: "clone" template_id: 12 attributes: Name: "New Cloned Template Name" - name: "import template from XML content" ome_template: hostname: "{{hostname}}" username: "{{username}}" password: "{{password}}" ca_path: "/path/to/ca_cert.pem" command: "import" attributes: Name: "Imported Template Name" # Template Type from TemplateService/TemplateTypes Type: 2 # xml string content Content: "\n\nTrue\nClear\n \n\nReady \nNo\n\n \nReady\n No\n\n\n" - name: "import template from local XML file" ome_template: hostname: "{{hostname}}" username: "{{username}}" password: "{{password}}" ca_path: "/path/to/ca_cert.pem" command: "import" attributes: Name: "Imported Template Name" Type: 2 Content: "{{ lookup('ansible.builtin.file', '/path/to/xmlfile') }}" - name: "Deploy template and Operating System (OS) on multiple devices." ome_template: hostname: "{{hostname}}" username: "{{username}}" password: "{{password}}" ca_path: "/path/to/ca_cert.pem" 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: "CIFS" 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: Create a compliance template from reference device ome_template: hostname: "{{hostname}}" username: "{{username}}" password: "{{password}}" ca_path: "/path/to/ca_cert.pem" command: "create" device_service_tag: "SVTG123" template_view_type: "Compliance" attributes: Name: "Configuration Compliance" Description: "Configuration Compliance Template" Fqdds: "BIOS" - name: Import a compliance template from XML file ome_template: hostname: "{{hostname}}" username: "{{username}}" password: "{{password}}" ca_path: "/path/to/ca_cert.pem" command: "import" template_view_type: "Compliance" attributes: Name: "Configuration Compliance" Content: "{{ lookup('ansible.builtin.file', './test.xml') }}" Type: 2