def main(): module = AnsibleModule( argument_spec=dict( # iDRAC credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_pwd=dict(required=True, type='str', no_log=True), idrac_port=dict(required=False, default=443, type='int'), # Share Details share_name=dict(required=True, type='str'), share_pwd=dict(required=False, type='str', no_log=True), share_user=dict(required=False, type='str'), share_mnt=dict(required=False, type='str'), lockdown_mode=dict(required=True, choices=['Enabled', 'Disabled'])), supports_check_mode=False) try: with iDRACConnection(module.params) as idrac: msg, err = run_system_lockdown_mode(idrac, module) except (ImportError, ValueError, RuntimeError) as e: module.fail_json(msg=str(e)) if err: module.fail_json(**msg) module.exit_json(**msg)
def main(): module = AnsibleModule( argument_spec=dict( # iDRAC credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_password=dict(required=True, type='str', aliases=['idrac_pwd'], no_log=True), idrac_port=dict(required=False, default=443)), supports_check_mode=False) try: with iDRACConnection(module.params) as idrac: msg, err = run_get_system_inventory(idrac, module) except (ImportError, ValueError, RuntimeError) as e: module.fail_json(msg=str(e)) if err: module.fail_json(**msg) module.exit_json( ansible_facts={idrac.ipaddr: { 'SystemInventory': msg['msg'] }})
def main(): module = AnsibleModule( argument_spec=dict( # iDRAC Credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_password=dict(required=True, type='str', aliases=['idrac_pwd'], no_log=True), idrac_port=dict(required=False, default=443, type='int'), # Network File Share share_name=dict(required=True, type='str'), share_user=dict(required=False, type='str'), share_password=dict(required=False, type='str', aliases=['share_pwd'], no_log=True), # ISO Image relative to Network File Share iso_image=dict(required=True, type='str'), ), supports_check_mode=False) module.deprecate("The 'dellemc_boot_to_network_iso' module has been deprecated. " "Use 'idrac_os_deployment' instead", version=3.3) try: with iDRACConnection(module.params) as idrac: msg, err = run_boot_to_network_iso(idrac, module) except (ImportError, ValueError, RuntimeError) as e: module.fail_json(msg=str(e)) if err: module.fail_json(**msg) module.exit_json(**msg)
def main(): module = AnsibleModule( argument_spec=dict( # iDRAC credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_password=dict(required=True, type='str', aliases=['idrac_pwd'], no_log=True), idrac_port=dict(required=False, default=443, type='int'), # Export Destination share_name=dict(required=True, type='str'), share_password=dict(required=False, type='str', aliases=['share_pwd'], no_log=True), share_user=dict(required=False, type='str'), share_mnt=dict(required=False, type='str'), csior=dict(required=False, choices=['Enabled', 'Disabled'], default='Enabled')), supports_check_mode=True) try: with iDRACConnection(module.params) as idrac: msg, err = run_setup_idrac_csior(idrac, module) except (ImportError, ValueError, RuntimeError) as e: module.fail_json(msg=str(e)) if err: module.fail_json(**msg) module.exit_json(**msg)
def main(): module = AnsibleModule( argument_spec=dict( # iDRAC credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_pwd=dict(required=True, type='str', no_log=True), idrac_port=dict(required=False, default=443, type='int'), # Export Destination share_name=dict(required=True, type='str'), share_pwd=dict(required=False, type='str', no_log=True), share_user=dict(required=False, type='str'), share_mnt=dict(required=False, type='str'), # setup Webserver enable_web_server=dict(required=False, choices=['Enabled', 'Disabled'], default=None), http_port=dict(required=False, default=None, type='int'), https_port=dict(required=False, default=None, type='int'), ssl_encryption=dict(required=False, choices=[ 'Auto_Negotiate', 'T_128_Bit_or_higher', 'T_168_Bit_or_higher', 'T_256_Bit_or_higher' ], default=None), tls_protocol=dict(required=False, choices=[ 'TLS_1_0_and_Higher', 'TLS_1_1_and_Higher', 'TLS_1_2_Only' ], default=None), timeout=dict(required=False, default=None, type="str"), # set up SNMP snmp_enable=dict(required=False, choices=['Enabled', 'Disabled'], default=None), community_name=dict(required=False, type='str'), snmp_protocol=dict(required=False, choices=['All', 'SNMPv3'], default=None), alert_port=dict(required=False), discovery_port=dict(required=False, type="int", default=162), trap_format=dict(required=False, ), ), supports_check_mode=True) try: with iDRACConnection(module.params) as idrac: msg, err = run_idrac_services_config(idrac, module) except (ImportError, ValueError, RuntimeError) as e: module.fail_json(msg=str(e)) if err: module.fail_json(**msg) module.exit_json(**msg)
def main(): module = AnsibleModule( argument_spec=dict( # iDRAC Credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_pwd=dict(required=True, type='str', no_log=True), idrac_port=dict(required=False, default=443, type='int'), # JOB ID job_id=dict(required=True, type='str') ), supports_check_mode=False) try: with iDRACConnection(module.params) as idrac: msg, err = run_get_lc_job_status(idrac, module) except (ImportError, ValueError, RuntimeError) as e: module.fail_json(msg=str(e)) if err: module.fail_json(**msg) module.exit_json(**msg)
def main(): module = AnsibleModule( argument_spec={ "idrac_ip": {"required": True, "type": 'str'}, "idrac_user": {"required": True, "type": 'str'}, "idrac_pwd": {"required": True, "type": 'str', "no_log": True}, "idrac_port": {"required": False, "default": 443, "type": 'int'}, "share_name": {"required": True, "type": 'str'}, "share_user": {"required": False, "type": 'str'}, "share_pwd": {"required": False, "type": 'str', "no_log": True}, "share_mnt": {"required": True, "type": 'str'}, "catalog_file_name": {"required": False, "type": 'str', "default": "Catalog.xml"}, "reboot": {"required": False, "type": 'bool', "default": False}, "job_wait": {"required": False, "type": 'bool', "default": True}, }, supports_check_mode=False) try: # Validate the catalog file _validate_catalog_file(module.params['catalog_file_name']) # Connect to iDRAC and update firmware with iDRACConnection(module.params) as idrac: update_status = update_firmware(idrac, module) except (ImportError, ValueError, RuntimeError) as e: module.fail_json(msg=str(e)) module.exit_json(msg='Successfully updated the firmware.', update_status=update_status)
def main(): module = AnsibleModule( argument_spec=dict( # iDRAC credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_password=dict(required=True, type='str', aliases=['idrac_pwd'], no_log=True), idrac_port=dict(required=False, default=443, type='int'), # Network File Share share_name=dict(required=True, type='str'), share_user=dict(required=False, type='str'), share_password=dict(required=False, type='str', aliases=['share_pwd'], no_log=True), job_wait=dict(required=True, type='bool')), supports_check_mode=False) try: with iDRACConnection(module.params) as idrac: msg, err = run_export_lc_logs(idrac, module) except (ImportError, ValueError, RuntimeError) as e: module.fail_json(msg=str(e)) if err: module.fail_json(**msg) module.exit_json(**msg)
def main(): module = AnsibleModule( argument_spec=dict( # iDRAC credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_password=dict(required=True, type='str', aliases=['idrac_pwd'], no_log=True), idrac_port=dict(required=False, default=443, type='int'), change_power=dict(required=True, choices=[ "On", "ForceOff", "GracefulRestart", "GracefulShutdown", "PushPowerButton", "Nmi" ])), supports_check_mode=True) try: with iDRACConnection(module.params) as idrac: msg, err = run_change_power_state(idrac, module) except (ImportError, ValueError, RuntimeError) as e: module.fail_json(msg=str(e)) if err: module.fail_json(**msg) module.exit_json(**msg)
def main(): module = AnsibleModule( argument_spec=dict( # iDRAC Credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_pwd=dict(required=True, type='str', no_log=True), idrac_port=dict(required=False, default=443, type='int'), # Network File Share share_name=dict(required=True, type='str'), share_user=dict(required=False, type='str'), share_pwd=dict(required=False, type='str', no_log=True), # ISO Image relative to Network File Share iso_image=dict(required=True, type='str'), ), supports_check_mode=False) try: with iDRACConnection(module.params) as idrac: msg, err = run_boot_to_network_iso(idrac, module) except (ImportError, ValueError, RuntimeError) as e: module.fail_json(msg=str(e)) if err: module.fail_json(**msg) module.exit_json(**msg)
def main(): mutual_exclusive_args = [['boot_sources', 'attributes'], ['boot_sources', 'secure_boot_mode'], ['boot_sources', 'boot_mode'], ['boot_sources', 'boot_sequence'], ['boot_sources', 'nvme_mode'], ['boot_sources', 'onetime_boot_mode']] module = AnsibleModule( argument_spec=dict( # iDRAC credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_pwd=dict(required=True, type='str', no_log=True), idrac_port=dict(required=False, default=443, type='int'), # Export Destination share_name=dict(required=False, type='str'), share_pwd=dict(required=False, type='str', no_log=True), share_user=dict(required=False, type='str'), share_mnt=dict(required=False, type='str'), # Bios configuration Attributes boot_mode=dict(required=False, choices=['Bios', 'Uefi'], default=None), nvme_mode=dict(required=False, choices=['NonRaid', 'Raid'], default=None), secure_boot_mode=dict( required=False, choices=['AuditMode', 'DeployedMode', 'SetupMode', 'UserMode'], default=None), onetime_boot_mode=dict(required=False, choices=[ 'Disabled', 'OneTimeBootSeq', 'OneTimeCustomBootSeqStr', 'OneTimeCustomHddSeqStr', 'OneTimeCustomUefiBootSeqStr', 'OneTimeHddSeq', 'OneTimeUefiBootSeq' ], default=None), # Bios Boot Sequence boot_sequence=dict(required=False, type="str", default=None), attributes=dict(required=False, type='dict'), boot_sources=dict(required=False, type='list')), mutually_exclusive=mutual_exclusive_args, supports_check_mode=True) try: with iDRACConnection(module.params) as idrac: msg, err = run_server_bios_config(idrac, module) except (ImportError, ValueError, RuntimeError) as e: module.fail_json(msg=str(e)) if err: module.fail_json(**msg) module.exit_json(**msg)
def main(): module = AnsibleModule( argument_spec=dict( # iDRAC credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_pwd=dict(required=True, type='str', no_log=True), idrac_port=dict(required=False, default=443, type='int'), # Export Destination share_name=dict(required=True, type='str'), share_pwd=dict(required=False, type='str', no_log=True), share_user=dict(required=False, type='str'), share_mnt=dict(required=False, type='str'), # setup SNMP Trap Destination destination_number=dict(required=False, type="int"), destination=dict(required=False, type="str"), snmp_v3_username=dict(required=False, type="str"), snmp_trap_state=dict(required=False, choices=["Enabled", "Disabled"], default=None), # setup Email Alerts alert_number=dict(required=False, type="int"), address=dict(required=False, default=None, type="str"), custom_message=dict(required=False, default=None, type="str"), email_alert_state=dict(required=False, choices=["Enabled", "Disabled"], default=None), # setup iDRAC Alerts enable_alerts=dict(required=False, choices=["Enabled", "Disabled"], default=None), # setup SMTP authentication=dict(required=False, choices=['Enabled', 'Disabled'], default=None), smtp_ip_address=dict(required=False, default=None, type='str'), smtp_port=dict(required=False, type='str'), username=dict(required=False, type="str"), password=dict(required=False, type="str", no_log=True), ), supports_check_mode=True) try: with iDRACConnection(module.params) as idrac: msg, err = run_idrac_eventing_config(idrac, module) except (ImportError, ValueError, RuntimeError) as e: module.fail_json(msg=str(e)) if err: module.fail_json(**msg) module.exit_json(**msg)
def main(): module = AnsibleModule( argument_spec={ "idrac_ip": {"required": True, "type": 'str'}, "idrac_user": {"required": True, "type": 'str'}, "idrac_password": {"required": True, "type": 'str', "aliases": ["idrac_pwd"], "no_log": True}, "idrac_port": {"required": False, "default": 443, "type": 'int'}, "state": {"required": False, "choices": ['create', 'delete', 'view'], "default": 'view'}, "volume_id": {"required": False, "type": 'str'}, "volumes": {"required": False, "type": 'list'}, "span_depth": {"required": False, "type": 'int', "default": 1}, "span_length": {"required": False, "type": 'int', "default": 1}, "number_dedicated_hot_spare": {"required": False, "type": 'int', "default": 0}, "volume_type": {"required": False, "choices": ['RAID 0', 'RAID 1', 'RAID 5', 'RAID 6', 'RAID 10', 'RAID 50', 'RAID 60'], "default": 'RAID 0'}, "disk_cache_policy": {"required": False, "choices": ["Default", "Enabled", "Disabled"], "default": "Default"}, "write_cache_policy": {"required": False, "choices": ["WriteThrough", "WriteBack", "WriteBackForce"], "default": "WriteThrough"}, "read_cache_policy": {"required": False, "choices": ["NoReadAhead", "ReadAhead", "AdaptiveReadAhead"], "default": "NoReadAhead"}, "stripe_size": {"required": False, "type": 'int', "default": 64 * 1024}, "capacity": {"required": False, "type": 'float'}, "controller_id": {"required": False, "type": 'str'}, "media_type": {"required": False, "choices": ['HDD', 'SSD']}, "protocol": {"required": False, "choices": ['SAS', 'SATA']}, "raid_reset_config": {"required": False, "choices": ['True', 'False'], "default": 'False'}, "raid_init_operation": {"required": False, "choices": ['None', 'Fast']} }, supports_check_mode=True) try: _validate_options(module.params) with iDRACConnection(module.params) as idrac: storage_status = run_server_raid_config(idrac, module) changed = False if 'changes_applicable' in storage_status: changed = storage_status['changes_applicable'] elif module.params['state'] != 'view': if storage_status.get("Status", "") == "Success": changed = True if storage_status.get("Message", "") == "No changes found to commit!" \ or storage_status.get("Message", "") == "Unable to find the virtual disk": changed = False module.exit_json(msg=storage_status.get('Message', ""), changed=changed, storage_status=storage_status) else: module.fail_json(msg="Failed to perform storage operation: %s" % storage_status.get("Message", "")) except (ImportError, ValueError, RuntimeError, TypeError) as e: module.fail_json(msg=str(e)) msg = "Successfully completed the {0} storage volume operation".format(module.params['state']) if module.check_mode and module.params['state'] != 'view': msg = storage_status.get("Message", "") module.exit_json(msg=msg, changed=changed, storage_status=storage_status)
def main(): module = AnsibleModule( argument_spec={ "idrac_ip": {"required": True, "type": 'str'}, "idrac_user": {"required": True, "type": 'str'}, "idrac_pwd": {"required": True, "type": 'str', "no_log": True}, "idrac_port": {"required": False, "default": 443, "type": 'int'}, "command": {"required": False, "type": 'str', "choices": ['export', 'import'], "default": 'export'}, "job_wait": {"required": True, "type": 'bool'}, "share_name": {"required": True, "type": 'str'}, "share_user": {"required": False, "type": 'str'}, "share_pwd": {"required": False, "type": 'str', "no_log": True}, "scp_components": {"required": False, "choices": ['ALL', 'IDRAC', 'BIOS', 'NIC', 'RAID'], "default": 'ALL'}, "scp_file": {"required": False, "type": 'str'}, "shutdown_type": {"required": False, "choices": ['Graceful', 'Forced', 'NoReboot'], "default": 'Graceful'}, "end_host_power_state": {"required": False, "choices": ['On', 'Off'], "default": 'On'}, "export_format": {"required": False, "type": 'str', "choices": ['JSON', 'XML'], "default": 'XML'}, "export_use": {"required": False, "type": 'str', "choices": ['Default', 'Clone', 'Replace'], "default": 'Default'} }, required_if=[ ["command", "import", ["scp_file"]] ], supports_check_mode=False) module.deprecate("The 'dellemc_server_config_profile' module has been deprecated. " "Use 'idrac_server_config_profile' instead", version=2.12) try: changed = False with iDRACConnection(module.params) as idrac: command = module.params['command'] if command == 'import': scp_status = run_import_server_config_profile(idrac, module) if "No changes were applied" not in scp_status.get('Message', ""): changed = True else: scp_status = run_export_server_config_profile(idrac, module) module.exit_json(changed=changed, msg="Successfully {0}ed the Server Configuration Profile.".format(command), scp_status=scp_status) except (ImportError, ValueError, RuntimeError) as e: module.fail_json(msg=str(e))
def main(): module = AnsibleModule( argument_spec=dict( # iDRAC credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_password=dict(required=True, type='str', aliases=['idrac_pwd'], no_log=True), idrac_port=dict(required=False, default=443, type='int'), # Export Destination share_name=dict(required=True, type='str'), share_password=dict(required=False, type='str', aliases=['share_pwd'], no_log=True), share_user=dict(required=False, type='str'), share_mnt=dict(required=False, type='str'), # change idrac user action=dict(required=False, choices=['create', 'delete', 'modify'], default='create'), user_name=dict(required=False, default=None, type='str'), user_password=dict(required=False, default=None, type='str', no_log=True), privilege_users=dict(required=False, choices=['Administrator', 'NoAccess', 'Readonly', 'Operator'], default=None), ipmilanprivilege_users=dict(required=False, choices=['Administrator', 'No_Access', 'Operator', 'User'], default=None), ipmiserialprivilege_users=dict(required=False, choices=['Administrator', 'No_Access', 'Operator', 'User'], default=None), enable_users=dict(required=False, choices=['Enabled', 'Disabled']), solenable_users=dict(required=False, choices=['Enabled', 'Disabled']), protocolenable_users=dict(required=False, choices=['Enabled', 'Disabled']), authenticationprotocol_users=dict(required=False, choices=['T_None', 'SHA', 'MD5'], default=None), privacyprotocol_users=dict(required=False, choices=['T_None', 'DES', 'AES'], default=None), ), supports_check_mode=True) try: with iDRACConnection(module.params) as idrac: msg, err = run_idrac_users_config(idrac, module) except (ImportError, ValueError, RuntimeError) as e: module.fail_json(msg=str(e)) if err: module.fail_json(**msg) module.exit_json(**msg)
def dellemc_get_system_inventory(idrac_ip,idrac_user,idrac_passwd,idrac_port): try: ANSIBALLZ_PARAMS = { "idrac_ip": idrac_ip, "idrac_user": idrac_user, "idrac_password": idrac_passwd, "idrac_port": idrac_port, } with iDRACConnection(ANSIBALLZ_PARAMS) as idrac: data, err = run_get_system_inventory(idrac) return data['msg'] except: raise Exception('ERROR')
def main(): module = AnsibleModule( argument_spec=dict( # iDRAC credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_pwd=dict(required=True, type='str', no_log=True), idrac_port=dict(required=False, default=443, type='int'), # Export Destination share_name=dict(required=True, type='str'), share_pwd=dict(required=False, type='str', no_log=True), share_user=dict(required=False, type='str'), scp_components=dict( required=False, choices=['ALL', 'IDRAC', 'BIOS', 'NIC', 'RAID'], default='ALL'), job_wait=dict(required=True, type='bool'), export_format=dict(required=False, type='str', choices=['JSON', 'XML'], default='XML'), export_use=dict(required=False, type='str', choices=['Default', 'Clone', 'Replace'], default='Default')), supports_check_mode=False) module.deprecate( "The 'dellemc_export_server_config_profile' module has been deprecated. " "Use 'dellemc_idrac_server_config_profile' instead", version=2.11) try: with iDRACConnection(module.params) as idrac: msg, err = run_export_server_config_profile(idrac, module) except (ImportError, ValueError, RuntimeError) as e: module.fail_json(msg=str(e)) if err: module.fail_json(**msg) module.exit_json(**msg)
def main(): module = AnsibleModule( argument_spec=dict( # iDRAC Credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_pwd=dict(required=True, type='str', no_log=True), idrac_port=dict(required=False, default=443, type='int'), # Network File Share share_name=dict(required=True, type='str'), share_user=dict(required=False, type='str'), share_pwd=dict(required=False, type='str', no_log=True), scp_file=dict(required=True, type='str'), scp_components=dict(required=False, choices=['ALL', 'IDRAC', 'BIOS', 'NIC', 'RAID'], default='ALL'), shutdown_type=dict(required=False, choices=['Graceful', 'Forced', 'NoReboot'], default='Graceful'), end_host_power_state=dict(required=False, choices=['On', 'Off'], default='On'), job_wait=dict(required=True, type='bool') ), supports_check_mode=False) module.deprecate("The 'dellemc_import_server_config_profile' module has been deprecated. " "Use 'dellemc_idrac_server_config_profile' instead", version=3.1) try: with iDRACConnection(module.params) as idrac: msg, err = run_import_server_config_profile(idrac, module) except (ImportError, ValueError, RuntimeError) as e: module.fail_json(msg=str(e)) if err: module.fail_json(**msg) module.exit_json(**msg)
def main(): module = AnsibleModule( argument_spec=dict( # iDRAC credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_pwd=dict(required=True, type='str', no_log=True), idrac_port=dict(required=False, default=443, type='int'), # Export Destination share_name=dict(required=True, type='str'), share_pwd=dict(required=False, type='str', no_log=True), share_user=dict(required=False, type='str'), share_mnt=dict(required=False, type='str'), # setup NTP enable_ntp=dict(required=False, choices=['Enabled', 'Disabled'], default=None), ntp_server_1=dict(required=False, default=None), ntp_server_2=dict(required=False, default=None), ntp_server_3=dict(required=False, default=None), # set up timezone setup_idrac_timezone=dict(required=False, type='str', default=None), ), supports_check_mode=True) try: with iDRACConnection(module.params) as idrac: msg, err = run_idrac_timezone_config(idrac, module) except (ImportError, ValueError, RuntimeError) as e: module.fail_json(msg=str(e)) if err: module.fail_json(**msg) module.exit_json(**msg)
def main(): module = AnsibleModule( argument_spec=dict( # iDRAC Credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_pwd=dict(required=True, type='str', no_log=True), idrac_port=dict(required=False, default=443, type='int'), # Network File Share share_name=dict(required=True, type='str'), share_user=dict(required=False, type='str'), share_pwd=dict(required=False, type='str', no_log=True), share_mnt=dict(required=True, type='str'), # Firmware update parameters catalog_file_name=dict(required=False, type='str', default='Catalog.xml'), reboot=dict(required=False, default=False, type='bool'), job_wait=dict(required=False, default=True, type='bool')), supports_check_mode=False) module.deprecate( "The 'dellemc_install_firmware' module has been deprecated. " "Use 'dellemc_idrac_firmware' instead", version=2.11) try: with iDRACConnection(module.params) as idrac: msg, err = run_update_fw_from_nw_share(idrac, module) except (ImportError, ValueError, RuntimeError) as e: module.fail_json(msg=str(e)) if err: module.fail_json(**msg) module.exit_json(**msg)
def main(): module = AnsibleModule( argument_spec={ "idrac_ip": {"required": True, "type": 'str'}, "idrac_user": {"required": True, "type": 'str'}, "idrac_password": {"required": True, "type": 'str', "aliases": ['idrac_pwd'], "no_log": True}, "idrac_port": {"required": False, "default": 443, "type": 'int'}, "share_name": {"required": True, "type": 'str'}, "share_user": {"required": False, "type": 'str'}, "share_password": {"required": False, "type": 'str', "aliases": ['share_pwd'], "no_log": True}, "share_mnt": {"required": False, "type": 'str'}, "catalog_file_name": {"required": False, "type": 'str', "default": "Catalog.xml"}, "reboot": {"required": False, "type": 'bool', "default": False}, "job_wait": {"required": False, "type": 'bool', "default": True}, "ignore_cert_warning": {"required": False, "type": 'bool', "default": True}, "apply_update": {"required": False, "type": 'bool', "default": True}, }, supports_check_mode=False) try: # Validate the catalog file _validate_catalog_file(module.params['catalog_file_name']) # Connect to iDRAC and update firmware with iDRACConnection(module.params) as idrac: status = update_firmware(idrac, module) except HTTPError as err: module.fail_json(msg=str(err), update_status=json.load(err)) except (RuntimeError, URLError, SSLValidationError, ConnectionError, KeyError, ImportError, ValueError, TypeError) as e: module.fail_json(msg=str(e)) module.exit_json(msg=status['update_msg'], update_status=status['update_status'], changed=status['changed'])
def main(): module = AnsibleModule( argument_spec=dict( # iDRAC Handle idrac=dict(required=False, type='dict'), # iDRAC credentials idrac_ip=dict(required=True, default=None, type='str'), idrac_user=dict(required=True, default=None, type='str'), idrac_pwd=dict(required=True, default=None, type='str', no_log=True), idrac_port=dict(required=False, default=443, type='int'), # Export Destination share_name=dict(required=True, type='str'), share_pwd=dict(required=False, type='str', no_log=True), share_user=dict(required=False, type='str'), share_mnt=dict(required=False, type='str'), # conditional variable for create or remove. state=dict(required=True, choices=['present', 'absent'], default=None), # Raid configuration Attributes vd_name=dict(required=False, type='str', default=None), span_depth=dict(required=False, type='int', default=1), span_length=dict(required=False, type='int', default=2), number_dedicated_hot_spare=dict(required=False, type='int', default=0), number_global_hot_spare=dict(required=False, type='int', default=0), raid_level=dict(required=False, type='str', choices=[ 'RAID 0', 'RAID 1', 'RAID 5', 'RAID 6', 'RAID 10', 'RAID 50', 'RAID 60' ], default="RAID 0"), disk_cache_policy=dict(required=False, type='str', choices=["Default", "Enabled", "Disabled"], default="Default"), write_cache_policy=dict( required=False, type='str', choices=["WriteThrough", "WriteBack", "WriteBackForce"], default="WriteThrough"), read_cache_policy=dict( required=False, type='str', choices=["NoReadAhead", "ReadAhead", "Adaptive"], default="NoReadAhead"), stripe_size=dict(required=False, type='int', default=64 * 1024), # pd_filter parameter controller_fqdd=dict(required=True, type='str'), media_type=dict(required=False, choices=['HDD', 'SSD'], default='HDD', type='str'), bus_protocol=dict(required=False, choices=['SAS', 'SATA'], default='SATA', type='str'), ), supports_check_mode=True) module.deprecate( "The 'dellemc_configure_raid' module has been deprecated. " "Use 'dellemc_idrac_storage_volume' instead", version=2.4) try: with iDRACConnection(module.params) as idrac: msg, err = run_server_raid_config(idrac, module) except (ImportError, ValueError, RuntimeError) as e: module.fail_json(msg=str(e)) if err: module.fail_json(**msg) module.exit_json(**msg)
def main(): module = AnsibleModule( argument_spec=dict( # iDRAC credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_pwd=dict(required=True, type='str', no_log=True), idrac_port=dict(required=False, default=443, type='int'), # Export Destination share_name=dict(required=True, type='str'), share_pwd=dict(required=False, type='str', no_log=True), share_user=dict(required=False, type='str'), share_mnt=dict(required=False, type='str'), # setup DNS register_idrac_on_dns=dict(required=False, choices=['Enabled', 'Disabled'], default=None), dns_idrac_name=dict(required=False, default=None, type='str'), auto_config=dict(required=False, choices=['Enabled', 'Disabled'], default=None, type='str'), static_dns=dict(required=False, default=None, type="str"), # set up idrac vlan setup_idrac_nic_vlan=dict(required=False, choices=['Enabled', 'Disabled']), vlan_id=dict(required=False, type='int'), vlan_priority=dict(required=False, type='int'), # set up NIC enable_nic=dict(required=False, choices=['Enabled', 'Disabled'], default=None), nic_selection=dict( required=False, choices=['Dedicated', 'LOM1', 'LOM2', 'LOM3', 'LOM4'], default=None), failover_network=dict( required=False, choices=['ALL', 'LOM1', 'LOM2', 'LOM3', 'LOM4', 'T_None'], default=None), auto_detect=dict(required=False, choices=['Enabled', 'Disabled'], default=None), auto_negotiation=dict(required=False, choices=['Enabled', 'Disabled'], default=None), network_speed=dict(required=False, choices=['T_10', 'T_100', 'T_1000'], default=None), duplex_mode=dict(required=False, choices=['Full', 'Half'], default=None), nic_mtu=dict(required=False, type='int'), # setup iDRAC IPV4 ip_address=dict(required=False, default=None, type="str"), enable_dhcp=dict(required=False, choices=["Enabled", "Disabled"], default=None), enable_ipv4=dict(required=False, choices=["Enabled", "Disabled"], default=None), # setup iDRAC Static IPv4 dns_from_dhcp=dict(required=False, choices=["Enabled", "Disabled"], default=None), static_dns_1=dict(required=False, default=None, type="str"), static_dns_2=dict(required=False, default=None, type="str"), static_gateway=dict(required=False, type="str"), static_net_mask=dict(required=False, type="str"), ), supports_check_mode=True) try: with iDRACConnection(module.params) as idrac: msg, err = run_idrac_network_config(idrac, module) except (ImportError, ValueError, RuntimeError) as e: module.fail_json(msg=str(e)) if err: module.fail_json(**msg) module.exit_json(**msg)