Hello,
Created a simple playbook to add Dell iDRACs into OME (Open Manage Enterprise). The playbook runs successfully. By that I mean the device is added to OME every time I’ve tested the code. My issue is the playbook’s outcome when ran always comes back as failed. The playbook uses a Dell defined API, first tested in Postman and then added into Ansible so I know the API is fine. I’m doing something wrong in ansible but can’t work out where. Any help appreciated!
code:
‘’’
- name: Add server into OME
hosts: localhost
connection: local
gather_facts: ‘no’
tasks:- name: Add device into OME for fresh discovery
uri:
url: >-
REMOVEDHTTPTOGETPOSTTOPUBLISH://{{ dell_ome_server
}}/api/DiscoveryConfigService/DiscoveryConfigGroups
user: ‘{{ dell_ome_user }}@email.com’
password: ‘{{ dell_ome_password }}’
method: POST
body_format: json
body:
DiscoveryConfigGroupName: Discovery-2017033110553636
DiscoveryConfigGroupDescription: ‘null’
DiscoveryStatusEmailRecipient: email@email.com
DiscoveryConfigModels:
- DiscoveryConfigId: 331105536
DiscoveryConfigDescription: ‘’
DiscoveryConfigStatus: ‘’
DiscoveryConfigTargets:
- DiscoveryConfigTargetId: 0
NetworkAddressDetail: 10.20.254.11
AddressType: 30
Disabled: false
Exclude: false
ConnectionProfileId: 0
ConnectionProfile: >-
{“profileName”:“”,“profileDescription”:“”,“type”:“DISCOVERY”,“credentials”:[{“id”:0,“type”:“WSMAN”,“authType”:“Basic”,“modified”:false,“credentials”:{“username”:“root”,“password”:“FakePassword”,“caCheck”:false,“cnCheck”:false,“port”:443,“retries”:3,“timeout”:60,“isHttp”:false,“keepAlive”:false}}]}
DeviceType:
- 1000
Schedule:
RunNow: true
RunLater: false
Cron: startnow
StartTime: ‘’
EndTime: ‘’
CreateGroup: true
TrapDestination: false
use_proxy: ‘no’
status_code: 204
return_content: ‘yes’
validate_certs: ‘no’
force_basic_auth: ‘yes’
headers:
Content-Type: application/json
Accept: application/json
register: ome_template_device_delete_response
‘’’
playbook output:
‘’’
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match ‘all’
- name: Add device into OME for fresh discovery
PLAY [Add server into OME] ***********************************************************************************************************************************************************************************************************
TASK [Add device into OME for fresh discovery] ***************************************************************************************************************************************************************************************
fatal: [localhost]: FAILED! => {“access_control_allow_origin”: “*”, “changed”: false, “connection”: “close”, “content”: “{"DiscoveryConfigGroupId":109,"DiscoveryConfigGroupName":"Discovery-2017033110553636","DiscoveryConfigGroupDescription":"Discovery-2017033110553636","DiscoveryStatusEmailRecipient":"email@email.com","DiscoveryConfigParentGroupId":0,"CreateGroup":true,"DiscoveryConfigModels":[{"DiscoveryConfigId":331105536,"DiscoveryConfigDescription":"","DiscoveryConfigStatus":"","DiscoveryConfigTargets":[{"DiscoveryConfigTargetId":0,"NetworkAddressDetail":"10.20.254.11","SubnetMask":null,"AddressType":3,"Disabled":false,"Exclude":false}],"ConnectionProfileId":0,"ConnectionProfile":"{\"profileName\":\"\",\"profileDescription\":\"\",\"type\":\"DISCOVERY\",\"credentials\":[{\"id\":0,\"type\":\"WSMAN\",\"authType\":\"Basic\",\"modified\":false,\"credentials\":{\"username\":\"root\",\"password\":\"FakePassword\",\"caCheck\":false,\"cnCheck\":false,\"port\":443,\"retries\":3,\"timeout\":60,\"isHttp\":false,\"keepAlive\":false}}]}","DeviceType":[1000],"DiscoveryConfigVendorPlatforms":}],"DiscoveryConfigTaskParam":[{"TaskId":16266,"TaskTypeId":0,"ExecutionSequence":0}],"DiscoveryConfigTasks":,"Schedule":{"RunNow":false,"RunLater":false,"Recurring":null,"Cron":"startnow","StartTime":null,"EndTime":null},"TrapDestination":false,"CommunityString":false,"ChassisIdentifier":null,"UseAllProfiles":null}”, “content_length”: “1305”, “content_security_policy”: “default-src ‘self’ ‘unsafe-eval’; connect-src *; style-src ‘self’ ‘unsafe-inline’ blob:; script-src ‘self’ ‘unsafe-inline’ ‘unsafe-eval’; img-src ‘self’ blob: data:”, “content_type”: “application/json;odata.metadata=minimal”, “cookies”: {}, “cookies_string”: “”, “date”: “Thu, 25 Apr 2024 09:58:40 GMT”, “elapsed”: 19, “json”: {“ChassisIdentifier”: null, “CommunityString”: false, “CreateGroup”: true, “DiscoveryConfigGroupDescription”: “Discovery-2017033110553636”, “DiscoveryConfigGroupId”: 109, “DiscoveryConfigGroupName”: “Discovery-2017033110553636”, “DiscoveryConfigModels”: [{“ConnectionProfile”: “{"profileName":"","profileDescription":"","type":"DISCOVERY","credentials":[{"id":0,"type":"WSMAN","authType":"Basic","modified":false,"credentials":{"username":"root","password":"FakePassword","caCheck":false,"cnCheck":false,"port":443,"retries":3,"timeout":60,"isHttp":false,"keepAlive":false}}]}”, “ConnectionProfileId”: 0, “DeviceType”: [1000], “DiscoveryConfigDescription”: “”, “DiscoveryConfigId”: 331105536, “DiscoveryConfigStatus”: “”, “DiscoveryConfigTargets”: [{“AddressType”: 3, “Disabled”: false, “DiscoveryConfigTargetId”: 0, “Exclude”: false, “NetworkAddressDetail”: “10.20.254.11”, “SubnetMask”: null}], “DiscoveryConfigVendorPlatforms”: }], “DiscoveryConfigParentGroupId”: 0, “DiscoveryConfigTaskParam”: [{“ExecutionSequence”: 0, “TaskId”: 16266, “TaskTypeId”: 0}], “DiscoveryConfigTasks”: , “DiscoveryStatusEmailRecipient”: “email@email.com”, “Schedule”: {“Cron”: “startnow”, “EndTime”: null, “Recurring”: null, “RunLater”: false, “RunNow”: false, “StartTime”: null}, “TrapDestination”: false, “UseAllProfiles”: null}, “location”: “REMOVEDHTTPTOGETPOSTTOPUBLISH://omelab/api/DiscoveryConfigService/DiscoveryConfigGroups(109)”, “msg”: “Status code was 201 and not [204]: OK (1305 bytes)”, “odata_version”: “4.0”, “redirected”: false, “server”: “Apache”, “set_cookie”: “rememberMe=deleteMe; Path=/api; Max-Age=0; Expires=Wed, 24-Apr-2024 09:58:59 GMT; SameSite=lax”, “status”: 201, “strict_transport_security”: “max-age=31536000; includeSubDomains”, “url”: “HADTOREMOVEHTTPomelab/api/DiscoveryConfigService/DiscoveryConfigGroups”, “x_content_type_options”: “nosniff”, “x_frame_options”: “SAMEORIGIN”, “x_xss_protection”: “1; mode=block”}
PLAY RECAP ***************************************************************************************************************************************************************************************************************************
localhost : ok=0 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
‘’’